August 03, 2006

TMS320C6000用行列ライブラリ

Texas Instrumentsの浮動小数点DSP TMS320C6713を使ってみようかと考えています。以前からSH4もやっているのですが、やはり汎用プロセッサだと色々とシステムが煩雑になりつつあるので、用途を特化した上でDSPもいいのではないかと考えている今日この頃です。
ということでこのDSPの開発環境や関連書籍を集めていたりしたのですが、ようやく実際にプログラムを走らせたりできるようになってきたので、その一部を紹介したいと思います。なお利用しているのは開発環境として純正のDSK(DSP Starter Kit)のTMS320C6713 DSKを、参考書籍としてCQ出版のインターフェイスの2006年増刊号『C++活用DSPプログラミング TechI vol.33』を活用しています。

このDSPですが、開発環境(Code Composer Studio)についてくるコンパイラがC++をサポートしているので、コーディング効率はなかなか良好です。ISO C++のフルサポートではないので、Expression Templateなどの高度な機能の利用や、iostream等のストリームサポートがないなど、一般的なC++に比べると見劣りしますが、基本的な部分はだいたい抑えられているのでDSPでできることは一通りC++で実装できると思います。

とりあえずDSP事始として、PCで利用している自作行列ライブラリを移植してみることにしました。この行列ライブラリ、uBlasなどの高度なパッケージに比べると低速で機能的にも見劣りしますが、なかなか移植性が高いので気に入って使っています。
移植は簡単に完了しました。exceptionがないのでassertを利用したり、複素数ライブラリの移植が未完なので固有値・固有ベクトル等の計算がまだできませんが、基本的な転置や逆行列、分解はできているので使い出はあると思います。動作は開発環境付属のシミュレータと実機の両方で確認しました。ソースを公開します。(バグフィックス版があります)

使い方ですが、

#include "matrix.cpp"
すれば、すべての定義が利用できます。また、TIから6700用のサポートライブラリが提供されているので、これらのヘッダを今回のコード以前にincludeすれば若干かなり性能があがると思います。

最後に。利用される方がいましたら、是非感想をお聞かせ願いたく思います。

※その後、恒例になりつつある基板設計をはじめました。

※※その後、バグが確認されましたm(_ _)m バグフィックス版をリリースしました。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/505
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。