帰らざるMOS回路(71) Xilinx Vitis、今度はDhrystoneに手こずる

Joseph Halfmoon

FPGA上のRISC-Vコア(MicroBlaze V)を使って、「Hello World」に「Lチカ」と成功、次は何かベンチマークをと思い至りました。前回の目論見では後は以下同文。しかし、そうは問屋が卸しませぬ。Xilinxのソフト開発環境VitisのExample、Dhrystoneを走らせるだけなんだが。

※かえらざるMOS回路 投稿順 INDEX

※実習にはWindows11上の AMD社 (Xilinx) Vivado 2024.1 および Viris 2024.1 を使用させていただいております。

※ターゲットボードは、Digilent製 Cmod S7ボードです。お求めやすい? Spartan-7搭載の超小型開発ボードです。

Dhrystoneベンチマーク

Dhrystoneベンチマークは遥か太古の時代に遡る「知らない子はモグリ」的な「ベンチマークプログラム」です。整数型オンリね。浮動小数用にはお仲間のWetstoneというものも居たのだけれど、こいつは最近聞きませぬ。朧気な記憶によれば、Dhrystoneはドイツ人がAdaで書いたのがオリジナルだと。その後はC言語版が標準でないかと。知らんけど。なお、これまた「知らない子はモグリ」的な太古のベストセラーミニコン、DEC社のVAX-11/780が「1Mips」の業界標準機になったのはこのベンチマークの結果によります。

しかしま、登場初期からベンチマークが小さくて「簡単に最適化」できるというご指摘があり(一部のコンパイラなど、Dhrystoneの数字をよくするだけの最適化オプションがあったくらい)、まあその後、複雑で高等なベンチマークのあれこれが主流となり、Dhrystoneは影に隠れて今にいたります。

されど、Dhrystoneが死なないのは、その小ささ故。FPGA上のプロセッサ・システムのようなメモリ量が不自由なシステムにもフィットさせて走らせることが可能。そして、故意に最適化などかけなければ「だいたいの性能目安」には使えるだろ~と。まあ、コンピュータの上の本格的ベンチマークではなく、組み込み世界で今だに生き延びている感じです。

さて、このDhrystone、Xilinx(AMD)社Vitis IDE環境に Exampleとして含まれております。「プラットフォーム」が出来上がっているのであれば、即ビルドして実行できそうな感じ(実際にはそうでもなかったが。)

まずはメモリ量でプロジェクト作成を拒否られる

前回、前々回とHello WorldやLチカをやってきた「実績」のあるプラットフォームがあるので、これを使ってDhrystoneのプロジェクトを作製しようと試みました。ExampleからDhrystoneを選択すれば、以下のようにRISC-Vコアもサポートされとります。Dhrystone

しかし、以下のようにプロジェクト作成を拒否られました。DhrystoneErrorPlatform

0x7800ほどメモリが無いと許してくれないようです。前回、前々回つかったシステムは16KB(0x3FFF)しかメモリを搭載してません。これはハードウエアに戻ってやり直さないとダメだ。

あたふたとVivadoを立ち上げ直してメモリを32KB(0x7FFF)に拡張し、ハードウエア・プラットフォームを再生成。これでどうよ。

Dhrystoneのプロジェクトの生成には成功。喜び勇んでビルドをかけると以下のように文句を言われました。DhrystoneErrorAXITIMER

上記のエラーメッセージを読み、ExampleのソースをみるにAXI-TIMERというハードウエアが無いためのエラーみたい。ドライストーンの速度を図るのにタイマーがいりそうだけれども、どうしているのか疑問に思っていたら、そういうことだったのね。天網恢恢疎にして漏らさず、ハードウエアにはAXI-TIMERというIPを含めておけということみたい。

再々度Vivadoに戻ってハード作り直し

そういうことで作り直した回路が以下に。AXI-TIMERが左肩にありますぞ。PlatformV3T

そしてメモリマップが以下に。AddressMapメモリは32KB積んでおるでよ。

再々、Vitisでビルドかけるもあえなく撃沈

上記のハード設計を引っ提げて、VitisのDhrystone「アプリ」プロジェクトのビルドに挑むもあえなく撃沈。こんな感じ。ErrorAgainU

最後の最後で、メモリがまだ4672バイト足らんと。トホホ。。。今回はここまで、老人は疲れました。再々々挑戦はまた今度だな。

帰らざるMOS回路(70) Xilinx Vitis、RISC-Vから吉例Lチカ へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です