ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

マシン環境で結果が変わってくるSDx 2016.3

今日はSDx 2016.3を2台のマシンで動作確認してみた。

ひとつはしょぼいCore2DuoのノートPC、もうひとつは16スレッドぐらいいけるそこそこミドルエンドなPCだ。

この2つの環境で、ZYBOをターゲットとしてRGBtoHSVのサンプルをビルドした。 も一つおまけにSDSoC 2016.2で作成したRGBtoHSVもプロジェクトをアップデートして確認してみた。

ミドルレンジPC

Synthesisでエラーがでた。

はっきり言ってこんなの論外だ。

SDxのような高位合成ツールの場合、次の2つのエラーは問題ない。

  • Synthesis前に高位合成でエラー
  • Implimentでエラー

前者はどちらかと言えば文法ミス、後者は容量ミスだから発生してもいいのである。

絶対にあってはならないのはSynthesisのエラーである。

そもそも、SDxはコンパイルから先は全てブラックボックスである。 そのインプットとアウトプットでエラーになるのはいいのだが、ブラックボックスの中身でエラーになるのは絶対にあってはならない。

それって、gccだとアセンブラ出力でエラーでしただよ。

そんなの誰が直せるの?

しかも、エラーが出たのはXilinx純正のIPだった。

高位合成も自ら宣伝しながら、高位合成という文化を自らぶち壊しに行ってるよね。

Vivadoもそうだけど2016.3のバージョンを見る限り、何を焦ってリリースしてんの?

あまりにも粗悪品すぎる。

このまま2016.4が出たとしても全く期待できない。

そんなにIntel+Alteraや、Qualcom+NXP+Freescale、ARM+softbankにビビってるんだったら、もっとちゃんとしたものを出さなきゃいけないだろう。

このままのでき具合いだったらツールはオープンソース化してXilinxはツール作るの止めたほうがいいよ。

そのほうがツールを開発するコストを抑えて、デバイス売れるんじゃないの?

Core2DuoノートPC

新規作成のRGBtoHSVは問題なく、SDイメージもできた。

これが当たり前だ。

サンプルなんだからできて当たり前。

できなかったら糞だ。

ここでひとつ気になることが・・・

古いマシンだったら比較的問題ないんだけど、高スペックマシンになるほど不具合が多くなる傾向にあるんだなぁ。

そう、高スペックマシンほど並列実行させようするよね。

FPGAや高位合成とかパイプラインや並列化を謳っておきながら肝心なツールの並列化は弱いとみた。

と、なると高位合成の並列化もパイプラインも期待してはいけないのではないかと感じ始めた。

遊ぶためのツールとしてはいいけど、業務のためのツールとしてはダメなんだろうな。

凄い開発費がかかっているホビーツールだね。

SDSoC 2016.2からアップデート

Vivadoと同じでCソースのELFファイルしかできなかった。

つまり、Synthesisすら進んでいない状態。

まぁ、Vivado 2016.3と同じで期待通りの結果だった。

プロジェクトのバージョンアップは基本NGだ。

ソフトのコンパイルをツールのバージョン固定なんて、こんなに使えないツールは無いね。

少なくとも仕事には一切使えない。

もし、今、仕事を2016.3で作り始めたとしよう。

来年は2016.4で仕事をしたとしよう。

2016.4のバージョンには簡単に持っていけないんだ。

一度作ったら古いバージョンでメンテナンスしていかなければいけないんだ。

あぁ、JetsonのSDKみたい。

仕事向けでそんなツール使えないよ。

Jetsonはお高いホービーユース、バージョン固定でいいんだよ。

新しいバージョンにするなら新規プロジェクト作成だ。

make叩き直せばいいってことではないらしい。

総括

今回の2016.3バージョンには頭が上がらない。

逆にここまでどうやったらサンプルやアプリケーションノート通りにできないたくさんのバグの仕込めるか伝授して欲しいぐらい。

ここまで来たらバグ仕込みのプロだよ。

バグ仕込みの職人芸。

バグマイスター。

バグマエストロ。