こんにちは。NoMaYです。#2連投の1つ目です。ルネサスさんのアプリケーションノートに以下の『RX100シリーズ RX100上でCoreMarkを実行する方法』というRSK-RX111+IAR EW統合開発環境でEEMBCのCoreMarkベンチマークを実行するものがあったのですが、これをRX-TB 3種類+CC-RX/GNURXへ移植してみようと思います。まず、手始めにTB-RX130+CC-RX+CS+で試してみました。(後日、他のTBボードやGNURXでも動かしてみようと思います。さらに、e2 studioでも動かせるようにしてみようと思います。なお、その時は、GitHub上でEEMBCが公開しているCoreMarkベンチマークの以下のリポジトリのソースに差し替え、かつ、RXスマートコンフィグレータが生成したソースを出来るだけ使うような作りに変更しよう、と思っています。)プロジェクトのファイル一式tb_rx130_coremark_ccrx_c_csplus_20191026.zip 384KBアプリケーションノート: RX100シリーズ RX100上でCoreMarkを実行する方法www.renesas.com/jp/ja/search?keywords=CoreMark&f[0]=content_type:documentドキュメントwww.renesas.com/jp/ja/document/apn/rx100-series-running-coremark-rx100サンプルプログラムwww.renesas.com/jp/ja/document/scd/rx100-series-running-coremark-rx100GitHub上でEEMBCが公開しているCoreMarkベンチマークのソースgithub.com/eembc/coremarkTB-RX130+CC-RX V2.03で試した結果と試した時のCC-RXの最適化オプションは、以下の画面コピーの通りです。得られたCoreMark値が91.5、動作周波数が32MHz、よって、CoreMark/MHzは2.86、となりました。(ちなみに、CoreMark値やCoreMark/MHzは、そもそもそういうものなのですが、最適化オプションによりかなり値が変わります。) なお、以下の画面コピーの通り、RSK-RX111+EWRX V2.41.1でのCoreMark/MHzは3.073のようでした。また、ルネサスさんの製品ページでのRX130(やRX111)のCoreMark/MHzは3.08です。
こんにちは。NoMaYです。ルネサスさんのブログに以下が投稿されてました。(投稿されたのは、しばらく前のことになります、ね。) なお、RXv2 ですらですよ。光陰矢のごとし、RXv2コアのCoremark/MHzが5.0を超えた!その理由(わけ)は?Sugako OtaniRX CPU Chief Architectwww.renesas.com/jp/ja/blogs/time-flies-flash-light-renesas-rxv2-core-has-exceeded-coremark-50-how-does-it-achieve-result以下、EEMBCのサイトのRXマイコンのスコアの画面コピーです。RX65Nとか更新されてないですね、、、
こんばんは。尭です。
NoMaY said:光陰矢のごとし、RXv2コアのCoremark/MHzが5.0を超えた!その理由(わけ)は?Sugako OtaniRX CPU Chief Architectwww.renesas.com/jp/ja/blogs/time-flies-flash-light-renesas-rxv2-core-has-exceeded-coremark-50-how-does-it-achieve-result
今年4月の記事のようですが>RXv2のデュアル・イシューのパイプライン構造がこの性能を実現しています。と書いてありRXv2がスーパースカラであったことを示しています。これは周知の内容なんでしょうか。RXv2はCortex-M7より10ヶ月ほど早い発表でしたが、当時のプレスリリース等やRXv2コア搭載マイコンのマニュアルを見てもそれらしい説明は見あたらないように思います。プレスリリースで“スーパースカラ”の文言を見るようになったのはRXv3の発表からで、発表時に「スーパースカラになりました!5.04CoreMarks/MHzを達成しました!」と謳っていたCortex-M7とは対照的です。
尭さん、こんにちは。NoMaYです。> RXv2がスーパースカラであったことを示しています。これは周知の内容なんでしょうか。そこまで、RXv2やRXv3の広報や先日のRXの開発者さんのブログを、読みこんでは無かったです、、、RXv2から既にそうなっていたのですね。でも、記憶を掘り起こすと、そういえば、fujitaさんがRXv2で性能改善に寄与しそうな命令が追加されていたわけでもないのに何故性能向上しているのだろう?と、かふぇルネで訝しんでいたのを思い出しました。そういうカラクリだったのですね、、、
こんばんは。尭です。自分もその記事を読んで知ったわけではないです。最近Cortex-M7コア搭載のSTM32が載ったSTさんのNUCLEOボードを買ったのでアセンブラで命令を並べてRX65Nと比較していたところ、RX65Nの実行時間がおかしいんですよね。その原因を考えていく中でスーパースカラであると仮定すると説明できることに気が付きました。ネットで検索してみると関連する記事を2件見つかりまして、1件目がNoMaYさんが上で紹介されているブログ、もう1件がRX v2: Renesas's New-Generation MCU Processorwww.jstage.jst.go.jp/.../en>Enhanced instructions such as DSP function and floating point operation and a five-stage dual-issue pipeline synergistically boost the performance of digital signal applications.これでした。RXv2、RXv3コア搭載マイコンのマニュアルに書いてあるサイクル数は間違っているとは言えずとも正確ではなく、依存関係を持たないADDやMULなどはスループット0.5~1/レイテンシ1と思われます。ちなみにもう一つネタがありまして単精度FPUの加算や乗算のサイクル数を比較するとRXv2 スループット1/レイテンシ2Cortex-M7 スループット1/レイテンシ3となります。個人的にはマーケティング的にも実装的にも結構重要なポイントだと思うのですがRenesasさんの認識はそうではないのでしょうか。かふぇルネはともかく何となくRXv2よりCortex-M7の方が優れていると思っている人は少なくないような気もしますが・・・(自分も実験してみるまでM7と比べるならRXv3かぁ・・・とか思っていました)それとも今のご時世その辺を気にする人は少ないのかな。