2013年3月17日日曜日

妄想族の憂鬱とHLSとOpenCL


妄想族という言葉は埼玉のFM放送局の番組が発祥のように思うが私もそれに当たるかも知れない。よく妄想をする。っていうか、昔々、3つ4つの毛色の違うモジュールの設計を同時に行っていたことがあり、その時は波形ツールを3つ4つ開いて同時というか時分割的にデバッグ・検証をするという滅茶苦茶なことをやっていた。それ以来のような気がしているが、一つの事に集中できなくなってしまい、何かをやっていても頭は別のことを考える癖がついてしまった。それが仕事でない場合は妄想的なものになったりする訳だ。その上、悪いことに私は考えていることが顔に出るようだ。これの何が問題かというと、例えば電車なんかにのっていてうっかり変な事を妄想しちゃったりすると、それが自分でも気づかない内に表情に現れてしまう。私の場合、妄想といっても大抵は下らないギャグとかだから、自分でも気づかない内に顔がニヤけていたりすることになり、周囲に怪訝な顔をされたりすることになる訳だ。そんなときに限って前方に若い女性とかいたりしたらもうバツが悪いことこの上ない。 お、お、オジサンは変態じゃねー!! ワシゃノーマルじゃー!、、、と心の中でそっと呟いたりして。。。 あーん、普通のオジサンに戻りたーい。

それはさておき、

Electric Engineering Journal (旧 FPGA Journal)というサイトをたまに見るが、久しぶりにみたら 3/12日の記事に興味深いのがあった。

HLS versus OpenCL
Xilinx and Altera Square Off on the Future

http://www.eejournal.com/archives/articles/20130312-highlevel/

この記事によるとXilinxはHLS(高位合成)を推していて、ALTERAはOpenCLを推しているようだ。
へー、そうなのか。 記事では、抽象レベルというキーワードで回路図、そして言語記述(ゲートレベル、RTLレベル、Behaviorレベル、…)への変遷を説明してもいる(と読めた)。 うん、そう、抽象化なんだよね。 進化の方向としては、RTL記述からBehavior記述、そして機能記述へと向かうんだろうが、つまんねーだろうなー、そんな未来。 しかし、本当に高位合成とかCベース開発っていうのが主流になるのかね将来は。 記事に有るようにデータパスへの適用は可能かも知れないが、コントロールパス系は・・・。 結局はCがHDLの仲間入りしただけっていうことになったりして。

死んだ爺ちゃんが言ってた。
「いいか○坊、よーく考えるんじゃぞ。
 アヒルはな、喋らないんじゃ。 ふぉっ、ふぉっ、ふぉっ、ふぉっ、・・・」 って

よーく考えよー、アヒルは喋らないー、グァー!
ア*%÷×***・・・自主規制・・・

嘘です。すべて私の妄想です。
ハイ。 -_-);


2013年3月9日土曜日

fpga_story


F男:たしかに僕は回路情報がなければ只の石さ。
        でもね、それは君も同じだ。プログラムが無ければ只の石だ。
        ねっ!、ぼくたちうまくいくって!!

~ 手を取り互いに見つめ合うF男とA子であった。~

M子:F男さんったら。大丈夫よN子、私たちには分身の術があるわ。
         リソースさえあれば10個でも20個でも何個でも分身できるのよ。
         それにN子にはCustom Instructionだってあるじゃない。
         あんな融通の聞かないA子なんかに負けやしないわ。

A子:はんっ!、このソフトマクロ風情が!!
        貴方達に800MHzで動作することができるのかしら?

D  : 要は適材適所なんじゃね?

M,N子:あなたはDS...P子先輩!

A子:はんっ!、アンタなんか只の乗算器と加算器の集合体じゃないのよ!
         DSPなんて名乗ってるけど、コードフェッチとか出来るのかしら?
         この、名前倒れがっ!!
         おーほっほっほっほ・・・

~ 勝ち誇ったように高笑いをするA子であった。~

つづく。たららてぃららららん…(渡鬼のテーマ)

そんな妄想をする春の夜であった。

な~んてな。

はぁ~~、だりぃ orz

2013年3月8日金曜日

3Dレンダリングパイプライン 3

以前はこのブログを検索エンジンで検索出来る設定にしていたのだが、2ヶ月位前に検索できない設定に変更した。そうしたのにはとくに理由はないが、別にアフィリエイトで稼ぎたいわけでもないのでこのブログの存在を知ってる人だけみればいいかな見たいな感じだ。
設定変更したら毎日のページビューの数も見事に減少した。まぁ、もともと多くなかったが。
本当はページビューは殆ど0になるかとも思っていたのだが、数人(数件?)が参照しているようだ。
固定客がついたか?

さて、レンダリングパイプラインIPの作成に挑戦しようとしていたが、以下の理由により一旦中止することにした。

・  昨年の年末から年明けにかけてDFT IPの作成を行っていたが、頑張りすぎたせいかburnout気味で、中々レンダリングパイプラインIPに集中できなくなってしまった。(歳はとりたくないもんじゃ)
 ジオメトリエンジンの方は、やることは行列演算で、基本的にはメモリ上にあるモデルの頂点リストを読込み、変換行列を掛け算すればいいんだと思う。変換行列の値はグローバル座標に配置するモデル毎に異なるので、頂点リストの上位にコマンドリストのようなものがあり、(それをメモリ上に配置し、)そこに変換行列の値と頂点リストのアドレス、長さの情報を書く。それを専用のDMACで処理するというイメージになると思う。 ここまでは、難易度としてもそれほど高くなく、動作的にもレイテンシーは一定のものが作れそうな気がする。 が、難しいのはその後のレンダリングパイプラインだ。レンダリングパイプラインではジオメトリパイプラインで算出した頂点座標で構成される平面(群)に対してテクスチャを貼ったり、色を塗ったりしなければならない。その際には光源とオブジェクトの光の反射率などから明るさも計算しなければならないし、ピクセルの補間演算も必要になるだろう。最終的に描画する対象(VRAM)の解像度が低い場合は、簡略化できるかも知れないがせっかくやるからにはdvi_encで出力できるXGA(1024x768)を対象にしたいが、そうすると恐らく1年位の時間をかけてじっくり取り組まなければ出来そうに無い気がする。趣味でやるというよりは業務としてやるべきレベルのような気がする。

・  とある事情で、知り合いのシステム開発をちょっと手伝う(というか相談にのるというか)ことになり、マイコンについて調査する必要がでてきた。仕様次第ではFPGAの方が良いという結論になる可能性もあるが、現状聞いている限りではマイコンでも実現可能だしその方がコストも断然安くすみそうだ。この件に関しては今後このブログに書くつもりはないが、3~4月はこれに注力することになりそうだ。

以上の理由で、レンダリングパイプラインIPは一旦中止させて頂く。
匿名の方には、「ダメ元で」とこたえたのであまり期待はしていないと思うが、以上の理由なのでご了承願いたい。

最近、このブログの更新も滞りがちだが、しばらくこの状態が続きそうだ。
気が向いたら下らない話とか書くかも知れないし、小規模なIPの作成に着手するかも知れない。


2013年3月3日日曜日

3月

うかうかしてたら3月になってしまった。 早いなー
前にも書いたが、よく、fpgaを検索ワードにしてそれに引っかかる Twitter の呟きを眺めている。2月は2名の新キャラクター登場といった感じだった。もしかすると以前からもfpga関連の呟きをされていたのかも知れないが私が気づいたのは2月からだ。お一人はアイコンがドランクドラゴンの塚地さん似の方で、もう一方はアイコンがアンガールズの山根さん似の方だ。Twitterでfpgaに関して呟く方のアイコンは何故か多くが少女趣味なアニメ風なのだが、その二方は写真を使われている。お二人とも、かなり聡明な方のようで、呟く文章から聡明さがひしひしと伝わってくる感じがする。で、その内の御一方の呟きが発端となりワサワサと呟きが広がる様を興味深く見ていた。また、色々と考えさせられたりもしたが、そんなこんなしていたら3月になってしまった。

さぁー、いい加減サボってないで私は私の課題に取り組むことにしよう。
人は人、自分は自分だ。




TE0720 No.4 (BNN-PYNQを動かしてみる 2)

TE0720でBNN-PYNQを動かすことが出来た。 以下は前回に続いてBNN-PYNQが動くまでの記録。 gdb (GNU debugger)で例外が出る原因を調べてみた。 例外が発生しているのはシェアードライブラリ(python_hw-cnv-pynq.so)の中であ...