こんにちは。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です。今回、e2 studioの最適化アシスタントという機能を試してみました。CC-RXではサイズ優先とスピード優先の両方に関して、GNURXではサイズ優先に関して、それぞれ「やや強め」「強い」「とても強い」の3レベルでの最適化に関する情報をe2 studioが収集してくれるという機能です。それで、あくまで今回のCoreMarkベンチマークでの結果論ということになってしまうのかな、と思いますが、あまり有益な情報は得られなかったな、という感じではありました。(今回のプログラムは、そういうプログラムだったということなのかな、と思いました。) ですが、この際なので、後日、もっと素朴に「弱い」「普通」「強い」の3レベルに設定を改変してやり直してみようかな、と思います。得られた情報
CC-RXの場合(1) サイズ優先最適化に関して「やや強め」「強い」「とても強い」で大きなサイズの違いは無い(2) スピード優先最適化に関して「やや強め」は明らかにCoreMark値が小さいが「強い」「とても強い」では大きな違いは無い(3) .ABSファイル→.Xファイル変換のrenesas_cc_converter.exeの実行時間が「やや強め」「とても強い」で異様に長いGNURXの場合(1) サイズ優先最適化に関して「やや強め」「強い」の2つのMOTファイルは同一だった(今回のプログラムに特有?)(2) サイズ優先最適化に関して「とても強い」は明らかにサイズが小さいが暴走してしまった
最適化アシスタントの結果 (私のPCのCPUが古過ぎてコンパイル+リンクの時間はもともと遅いです)
CC-RX V2.03+TB-RX65N (RX65N 120MHz)の場合
GNURX 2019q4(8.3.0.201904)+TB-RX65N (RX65N 120MHz)の場合
CC-RX V2.03+TB-RX65N (RX65N 120MHz)の場合の画面コピー(一部分)GNURX 2019q4(8.3.0.201904)+TB-RX65N (RX65N 120MHz)の場合の画面コピー(一部分)以下、最適化アシスタントが作成する構成に適用される最適化オプションの一覧(ヘルプの画面コピー)です。(なお、最適化アシスタントでは「やや強め」「強い」「とても強い」の順に画面表示されますが、ヘルプでは逆の「とても強い」「強い」「やや強め」の順に説明が記述されていますので注意して下さい。)CC-RXのサイズ優先の構成に適用される最適化オプションの一覧CC-RXのスピード優先の構成に適用される最適化オプションの一覧GNURXのサイズ優先の構成に適用される最適化オプションの一覧以下、最適化アシスタントの結果の画面コピーの全体です。(なお、ビルドオプションの表示は右端が切れて全て表示しきれていませんでした。)CC-RX V2.03+TB-RX65N (RX65N 120MHz)の場合 GNURX 2019q4(8.3.0.201904)+TB-RX65N (RX65N 120MHz)の場合
こんにちは。NoMaYです。別スレッドで調べ物をしていて、たまたま目に入ったのですが、Renesasさんの、こんなRH850(32ビット汎用レジスタ32本(V850のレジスタ構成を踏襲していると思うので内1本は常に値が0のレジスタの筈))のCoreMark/MHz/core値は幾つなんだろうなぁ、とか思ってしまいました、、、(ちなみに、ロックステップ対応のコアが4コアというのは、回路的にはコアが8コア分入っているのかな?それとも、ロックステップ動作時にはペアになれるコアが4コアで、ペアとして使ったらユーザ見えは2コアなのかな?マニュアルが一般ユーザ非公開ですので分からないですけど、、、)RH850/U2A16www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rh850/rh850u2x/rh850u2a16.html「RH850/U2A16は、400MHzのCPUを最大4コア(ロックステップ対応)搭載しています。各CPUには、ハードウェアの仮想化支援機構を搭載。」「RH850/U2A16マイクロコントローラには、16MBの内蔵フラッシュROM、及び3.6MBのSRAMが搭載されており、将来の機能拡張を柔軟に行えます。」「RH850/U2A16には、サイバー攻撃に対する保護能力強化を目指し、Evita Light からEvita Full(注)までをサポートするセキュリティー機能が組み込まれています。」
こんにちは。NoMaYです。> ところでこれ RXv2 コア搭載の製品にそれ用のオプション付けてないんですか?GNURXでのRXv2コアでのアーキテクチャ系のオプションは以下になっています。(e2 studioのGUIから設定しているので、もしかしたら-mcpuと-misaの2つでは重複設定なのかも知れませんが、、、)RX65Nの場合: -mcpu=rx64m -misa=v2 -mlittle-endian-dataRX231の場合: -mcpu=rx230 -misa=v2 -mlittle-endian-data
こんにちは。NoMaYです。以前のCoreMarkベンチマークのソースを見直し、サンプルプログラム置き場に置き直し、GitHubにも置きました。また、RX72N+CC-RX/GNURX/ICCRXでCoreMark値とCoreMark/MHz値を計測しました。[追記] 2020/12/03 計測に使用したICCRXをV4.14.1→V4.20.1と変更して計測結果を差し替えました。japan.renesasrulz.com/cafe_rene/m/sample_program/437github.com/NoMaY-jp/CoreMark-Renesas-RX/tree/cafe_rene/barebones_renesas_rx計測結果 (小数点以下3桁目以降は切り捨てです)
コンパイル最適化オプション
計測時の画面コピーCC-RXICCRXGNURX
こんにちは。NoMaYです。先日は見直したCoreMarkベンチマークのソースを使用して計測したRX72N+CC-RX/ICCRX/GNURXの結果しか書きませんでしたので、今回はRX130/RX231/RX65N+CC-RX/ICCRX/GNURXの結果も書き加えました。(今回使用したCC-RX V3.02では最適化能力が以前に使用したCC-RX V2.03より向上しているせいだと思いますが、公称値がひょいっと出てますね、、、『それでいいのかコアマーク?』という感もありますが、そういうもの(コンパイラの最適化能力依存のCPUコア性能/CPUコア出来具合の指標)ですね、、、) [追記] 2020/12/03 計測に使用したICCRXをV4.14.1→V4.20.1と変更して計測結果を差し替えました。計測結果 (小数点以下3桁目以降は切り捨てです)
100.20
こんにちは。NoMaYです。1つ前と2つ前の投稿のICCRXでの計測結果をV4.20.1のものへと差し替えました。(ただ、若干の向上傾向はあるかな、といった程度で、殆ど同じでした。)
こんにちは。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です。私は今まで、GNURXでデバッグ最適化(-Ogオプション)を指定すれば、充分なデバッグ性とそこそこの最適化が両立しているのだと思い込んでましたが、単に私の思い込みだったようです。-O0オプション(最適化無し)でCoreMarkベンチマークを計り直した方が良いかも知れないと思い始めました。(普段はズボラして -O3 とか -Os とか普段の最適化のままデバッグしていたので、そういうものだったとは、今まで気付きませんでした。)以下、GNURX+e2 studioの画面コピーです。デバッグ最適化 -Og では思い込んでいたほどには充分に変数内容が表示されるわけではなかった最適化無し -O0 であれば思い込んでいたような充分な変数内容が表示されるのであった