Jetpack4.6で追加された20WのNVPMODELでのCPUパフォーマンス

# はじめに
Jetpack4.6では、XavierNXで新たにNVPMODEL7とNVPMODEL8が追加されました。
NVIDIAの
[Supported Modes and Power Efficiency](https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/power_management_jetson_xavier.html#wwpID0E04O0HA)
によると、CPUに関連したMODEL2とMODE8(どちらも6COREのモデル）の違いはMemory maximal frequency (MHz)だけのようです。

# やったこと
自分の環境では、実際にMLモデルを動かしている時間より、そのための環境を構築、デバッグする時間のほうが長いため、主にCPUのみのパフォーマンスが重要です。このため、ここでは6COREのモデルで、GPUを使わない状態のMODE2とMODE8でのパフォーマンスをUNIXBENCHを使って計測しました。

# MODE2
15W 6CORE
UNIXBENCHを -c 6でとった結果です。



6 CPUs in system; running 6 parallel copies of tests

Dhrystone 2 using register variables      123621223.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    11821.3 MWIPS (9.9 s, 7 samples)
Execl Throughput                               4533.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        285260.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           84509.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        974405.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2708252.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 194820.6 lps   (10.0 s, 7 samples)
Process Creation                               7512.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8134.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1082.8 lpm   (60.2 s, 2 samples)
System Call Overhead                        1063813.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  123621223.6  10593.1
Double-Precision Whetstone                       55.0      11821.3   2149.3
Execl Throughput                                 43.0       4533.5   1054.3
File Copy 1024 bufsize 2000 maxblocks          3960.0     285260.1    720.4
File Copy 256 bufsize 500 maxblocks            1655.0      84509.3    510.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     974405.5   1680.0
Pipe Throughput                               12440.0    2708252.9   2177.1
Pipe-based Context Switching                   4000.0     194820.6    487.1
Process Creation                                126.0       7512.1    596.2
Shell Scripts (1 concurrent)                     42.4       8134.5   1918.5
Shell Scripts (8 concurrent)                      6.0       1082.8   1804.7
System Call Overhead                          15000.0    1063813.4    709.2
                                                                   ========
System Benchmarks Index Score                                        1298.7

# MODE8
20W 6CORE
UNIXBENCHを -c 6でとった結果です。

Benchmark Run: 木  9月 02 2021 15:12:58 - 15:40:56
6 CPUs in system; running 6 parallel copies of tests

Dhrystone 2 using register variables      122753010.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    11733.2 MWIPS (9.8 s, 7 samples)
Execl Throughput                               4462.1 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        316559.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           85933.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1004190.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2719020.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 192583.1 lps   (10.0 s, 7 samples)
Process Creation                               7611.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8077.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1079.9 lpm   (60.1 s, 2 samples)
System Call Overhead                        1067103.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  122753010.5  10518.7
Double-Precision Whetstone                       55.0      11733.2   2133.3
Execl Throughput                                 43.0       4462.1   1037.7
File Copy 1024 bufsize 2000 maxblocks          3960.0     316559.9    799.4
File Copy 256 bufsize 500 maxblocks            1655.0      85933.8    519.2
File Copy 4096 bufsize 8000 maxblocks          5800.0    1004190.0   1731.4
Pipe Throughput                               12440.0    2719020.3   2185.7
Pipe-based Context Switching                   4000.0     192583.1    481.5
Process Creation                                126.0       7611.8    604.1
Shell Scripts (1 concurrent)                     42.4       8077.4   1905.1
Shell Scripts (8 concurrent)                      6.0       1079.9   1799.8
System Call Overhead                          15000.0    1067103.3    711.4
                                                                   ========
System Benchmarks Index Score                                        1311.7

# 最後に
MAXのメモリクロックが10％変わるだけで、かつUNIXBENCHでの結果なので、あまり期待はしてませんでしたが、2％程度しか違いませんでした。１度しか測ってないので誤差かもしれない。
一応、FileCopy、Pipeのスループット、などのデータが大きく動くものではMODE8が早くなってるので効いてるように見えています。
計測時の消費電力については、ほぼCPUしか動かないのでどちらもTOTALで7.5W ( JTOPでみただけです）程度
そもそもJTOPで見るとMODE8にしてもEMCのクロックは1.6GHz（ここがメモリクロックだとおもってるんですが。。違うのか？　それともGPUが動かないとメモリをフル帯域で使わない？）で変わらない結果でした。まあ常時電源いれていても、IDLEの消費電力だとMODE2でもMODE8でも、ほぼ違いが無いので私は、MODE8で常時動かしておくことにします。