TB-RX65N/TB-RX231/TB-RX130+CC-RX/GNURXでCoreMark®ベンチマークを動かせるようにしてみようと思います

こんにちは。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-rx100

GitHub上でEEMBCが公開しているCoreMarkベンチマークのソース
github.com/eembc/coremark


TB-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です。




Parents
  • こんにちは。NoMaYです。#3連投の1つ目です。

    GitHub上でEEMBCが公開しているCoreMarkベンチマークのソースを使用して、RX-TB 3種類+CC-RX/GNURXでCoreMark値とCoreMark/MHz値を計測してみました。ボード依存部にはRXスマートコンフィグレータV2.3.0(2019/11リリース)が生成したソースを使用して、CS+ V8.02/e2 studio V7.6.0でビルドしました。結果は以下の通りでした。(小数点以下3桁目以降は切り捨てです。)

      CC-RX V2.03 GNURX 2019q2(4.8.4.201902) 公称値
    コンパイル最適化オプション -optimize=max -speed -goptimize -O3 -flto
    リンク最適化オプション -optimize=speed
      CoreMark CoreMark/MHz CoreMark CoreMark/MHz CoreMark/MHz
    TB-RX130 (RX130 32MHz) 91.32 2.85 61.38 1.91 3.08
    TB-RX231 (RX231 54MHz) 197.65 3.66 137.11 2.53 4.16
    TB-RX65N (RX65N 120MHz) 472.27 3.93 326.61 2.72 4.34

    プロジェクトのファイル一式 (CC-RX V2.03/GNURX 2019q2(4.8.4.201902)でビルド、zipファイルをe2 studioに直接インポート可)
    japan.renesasrulz.com/cafe_rene/m/sample_program/437
    tb_rx65n_rx231_rx130_coremark_20191110.zip    2.45MB

    含まれるプロジェクト (*1,*2,*3)
    tb_rx130_scfg_ccrx_c/{tb_rx130_ccrx_c.mtpj, .project}
    tb_rx231_scfg_ccrx_c/{tb_rx231_ccrx_c.mtpj, .project}
    tb_rx65n_scfg_ccrx_c/{tb_rx65n_ccrx_c.mtpj, .project}
    tb_rx130_scfg_gnurx_c/.project
    tb_rx231_scfg_gnurx_c/.project
    tb_rx65n_scfg_gnurx_c/.project

    *1:以前に別スレッド『RenesasさんからRXマイコンの低価格Target Boardが出たのでサンプルプログラムをCSplus projectへ変換してみようと思います』に投稿したプロジェクトと同じIDコードを設定しています。

    *2:実機用のデバッガプロパティ設定(CS+)や.launchファイル設定(e2 studio)は当方特有の事情でオンボードエミュレータが使えない為に未確認です。(ひと通りは設定してあります。)

    *3:BSPモジュールのPDFドキュメントは除外してあります。(zipファイルのサイズを小さく抑える為です。)

    ちなみに、CoreMark値やCoreMark/MHz値は、そもそもそういうものなのですが、最適化オプションにより値が変化します。一例として、かふぇルネへ投稿する時に今まで私が使用していた最適化オプションでは、以下の通りとなりました。(なお、以下の値ですが、CC-RXではサイズ優先最適化となっているのに対し、GNURXでは(最適化オプションの考え方が異なるので1対1に対比させることは出来ないが近い感覚として)スピード優先最適化となっている、という点に留意しておいて下さい。後日、サイズも比較してみようと思っています。)

      CC-RX V2.03 GNURX 2019q2(4.8.4.201902) 公称値
    コンパイル最適化オプション -optimize=2 -size (共にデフォルト) -O2
    リンク最適化オプション
      CoreMark CoreMark/MHz CoreMark CoreMark/MHz CoreMark/MHz
    TB-RX130 (RX130 32MHz) 51.56 1.61 59.54 1.86 3.08
    TB-RX231 (RX231 54MHz) 113.36  2.09 131.51 2.43 4.16
    TB-RX65N (RX65N 120MHz) 274.45  2.28 324.12 2.70 4.34

    この後、2投目、3投目は以下の通りです。

    2投目

    ・プロジェクト構造とCC-RX/GNURXの最適化オプション設定
    ・GitHub上でEEMBCが公開しているCoreMarkベンチマークのソースからの変更箇所
    ・RXスマートコンフィグレータが生成したソースのStart user code~End user code内に追加したコード

    3投目

    ・実行結果を、SCI1経由でTeraTermへ表示させるのでは無く、デバッグコンソールへ表示させる設定(ただし未確認ですが)
    ・RXスマートコンフィグレータでGNURX向けコードを再生成する場合のリンカスクリプトの注意点

    以下、画面コピーと写真です。

    CC-RXでビルドした場合の実行結果


    GNURXでビルドした場合の実行結果


    実行結果はSCI1経由で出力


    EEMBCのウェブサイトに掲載されているCoreMark値とCoreMark/MHz値
    www.eembc.org/coremark/scores.php

     

Reply
  • こんにちは。NoMaYです。#3連投の1つ目です。

    GitHub上でEEMBCが公開しているCoreMarkベンチマークのソースを使用して、RX-TB 3種類+CC-RX/GNURXでCoreMark値とCoreMark/MHz値を計測してみました。ボード依存部にはRXスマートコンフィグレータV2.3.0(2019/11リリース)が生成したソースを使用して、CS+ V8.02/e2 studio V7.6.0でビルドしました。結果は以下の通りでした。(小数点以下3桁目以降は切り捨てです。)

      CC-RX V2.03 GNURX 2019q2(4.8.4.201902) 公称値
    コンパイル最適化オプション -optimize=max -speed -goptimize -O3 -flto
    リンク最適化オプション -optimize=speed
      CoreMark CoreMark/MHz CoreMark CoreMark/MHz CoreMark/MHz
    TB-RX130 (RX130 32MHz) 91.32 2.85 61.38 1.91 3.08
    TB-RX231 (RX231 54MHz) 197.65 3.66 137.11 2.53 4.16
    TB-RX65N (RX65N 120MHz) 472.27 3.93 326.61 2.72 4.34

    プロジェクトのファイル一式 (CC-RX V2.03/GNURX 2019q2(4.8.4.201902)でビルド、zipファイルをe2 studioに直接インポート可)
    japan.renesasrulz.com/cafe_rene/m/sample_program/437
    tb_rx65n_rx231_rx130_coremark_20191110.zip    2.45MB

    含まれるプロジェクト (*1,*2,*3)
    tb_rx130_scfg_ccrx_c/{tb_rx130_ccrx_c.mtpj, .project}
    tb_rx231_scfg_ccrx_c/{tb_rx231_ccrx_c.mtpj, .project}
    tb_rx65n_scfg_ccrx_c/{tb_rx65n_ccrx_c.mtpj, .project}
    tb_rx130_scfg_gnurx_c/.project
    tb_rx231_scfg_gnurx_c/.project
    tb_rx65n_scfg_gnurx_c/.project

    *1:以前に別スレッド『RenesasさんからRXマイコンの低価格Target Boardが出たのでサンプルプログラムをCSplus projectへ変換してみようと思います』に投稿したプロジェクトと同じIDコードを設定しています。

    *2:実機用のデバッガプロパティ設定(CS+)や.launchファイル設定(e2 studio)は当方特有の事情でオンボードエミュレータが使えない為に未確認です。(ひと通りは設定してあります。)

    *3:BSPモジュールのPDFドキュメントは除外してあります。(zipファイルのサイズを小さく抑える為です。)

    ちなみに、CoreMark値やCoreMark/MHz値は、そもそもそういうものなのですが、最適化オプションにより値が変化します。一例として、かふぇルネへ投稿する時に今まで私が使用していた最適化オプションでは、以下の通りとなりました。(なお、以下の値ですが、CC-RXではサイズ優先最適化となっているのに対し、GNURXでは(最適化オプションの考え方が異なるので1対1に対比させることは出来ないが近い感覚として)スピード優先最適化となっている、という点に留意しておいて下さい。後日、サイズも比較してみようと思っています。)

      CC-RX V2.03 GNURX 2019q2(4.8.4.201902) 公称値
    コンパイル最適化オプション -optimize=2 -size (共にデフォルト) -O2
    リンク最適化オプション
      CoreMark CoreMark/MHz CoreMark CoreMark/MHz CoreMark/MHz
    TB-RX130 (RX130 32MHz) 51.56 1.61 59.54 1.86 3.08
    TB-RX231 (RX231 54MHz) 113.36  2.09 131.51 2.43 4.16
    TB-RX65N (RX65N 120MHz) 274.45  2.28 324.12 2.70 4.34

    この後、2投目、3投目は以下の通りです。

    2投目

    ・プロジェクト構造とCC-RX/GNURXの最適化オプション設定
    ・GitHub上でEEMBCが公開しているCoreMarkベンチマークのソースからの変更箇所
    ・RXスマートコンフィグレータが生成したソースのStart user code~End user code内に追加したコード

    3投目

    ・実行結果を、SCI1経由でTeraTermへ表示させるのでは無く、デバッグコンソールへ表示させる設定(ただし未確認ですが)
    ・RXスマートコンフィグレータでGNURX向けコードを再生成する場合のリンカスクリプトの注意点

    以下、画面コピーと写真です。

    CC-RXでビルドした場合の実行結果


    GNURXでビルドした場合の実行結果


    実行結果はSCI1経由で出力


    EEMBCのウェブサイトに掲載されているCoreMark値とCoreMark/MHz値
    www.eembc.org/coremark/scores.php

     

Children
No Data