個々のコアをベンチマークするにはどうすればよいですか?それらがすべて同じ速度で動作しているかどうかを見たいです。 Cortex A53デバイスに big.LITTLE が含まれているかどうかわからない場合、インターネット上で競合する情報を読んでいるので、自分でテストしたいと思います。
@ doug-smythiesによるこのコメントが質問に答えていると思います。
ただし、すべてのCPUが同じレベルで実行されているかどうかを確認するだけで、これを実現できました。
root@amlogic:~# stress-ng --cpu 1 --cpu-method matrixprod --metrics-brief --perf -t 10
stress-ng: info: [5921] dispatching hogs: 1 cpu
stress-ng: info: [5921] cache allocate: using built-in defaults as unable to determine cache details
stress-ng: info: [5921] cache allocate: default cache size: 2048K
stress-ng: info: [5921] successful run completed in 10.94s
stress-ng: info: [5921] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [5921] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [5921] cpu 21 10.93 10.02 0.02 1.92 2.09
stress-ng: info: [5921] cpu:
stress-ng: info: [5921] 14,108,856,703 CPU Cycles 1.29 B/sec
stress-ng: info: [5921] 13,710,373,770 Instructions 1.25 B/sec (0.972 instr. per cycle)
stress-ng: info: [5921] 927,478,656 Cache References 84.76 M/sec
stress-ng: info: [5921] 43,400,148 Cache Misses 3.97 M/sec ( 4.68%)
stress-ng: info: [5921] 36,225,340 Branch Misses 3.31 M/sec ( 0.00%)
root@amlogic:~# stress-ng --cpu 4 --cpu-method matrixprod --metrics-brief --perf -t 10
stress-ng: info: [5867] dispatching hogs: 4 cpu
stress-ng: info: [5867] cache allocate: using built-in defaults as unable to determine cache details
stress-ng: info: [5867] cache allocate: default cache size: 2048K
stress-ng: info: [5867] successful run completed in 11.56s
stress-ng: info: [5867] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [5867] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [5867] cpu 51 10.80 41.05 0.47 4.72 1.23
stress-ng: info: [5867] cpu:
stress-ng: info: [5867] 59,953,532,588 CPU Cycles 5.19 B/sec
stress-ng: info: [5867] 31,357,210,848 Instructions 2.71 B/sec (0.523 instr. per cycle)
stress-ng: info: [5867] 2,127,678,244 Cache References 0.18 B/sec
stress-ng: info: [5867] 101,073,952 Cache Misses 8.75 M/sec ( 4.75%)
stress-ng: info: [5867] 82,805,524 Branch Misses 7.17 M/sec ( 0.00%)
root@amlogic:~# stress-ng --cpu 8 --cpu-method matrixprod --metrics-brief --perf -t 10
stress-ng: info: [5892] dispatching hogs: 8 cpu
stress-ng: info: [5892] cache allocate: using built-in defaults as unable to determine cache details
stress-ng: info: [5892] cache allocate: default cache size: 2048K
stress-ng: info: [5892] successful run completed in 11.53s
stress-ng: info: [5892] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s
stress-ng: info: [5892] (secs) (secs) (secs) (real time) (usr+sys time)
stress-ng: info: [5892] cpu 126 10.50 81.49 0.58 12.00 1.54
stress-ng: info: [5892] cpu:
stress-ng: info: [5892] 118,145,351,216 CPU Cycles 10.24 B/sec
stress-ng: info: [5892] 94,066,812,704 Instructions 8.16 B/sec (0.796 instr. per cycle)
stress-ng: info: [5892] 6,383,299,240 Cache References 0.55 B/sec
stress-ng: info: [5892] 304,757,784 Cache Misses 26.43 M/sec ( 4.77%)
stress-ng: info: [5892] 248,569,352 Branch Misses 21.55 M/sec ( 0.00%)
(私はあなたがそれぞれ複数のスレッドを持つ複数のコアを持つCPUを持っていると仮定しています)
Sysbenchという名前のツールを使用できます。
Sudo apt-get install sysbench
でインストールします
デフォルトでは、これは単一のスレッドをテストします。
sysbench --test=cpu run
または
sysbench --test=threads --num-threads=1 --thread-locks=1 run
しかし、特定のスレッドにロックする方法がわからないようです。誰か?
マニュアルページを読むことで、自分で試すことができます。
man sysbench