RISC-V公測平臺Stream程序路徑:/public/benchmark/stream/5.10
前言
"Stream" 是一種基準(zhǔn)測試工具,用于評估計算機(jī)系統(tǒng)的內(nèi)存帶寬性能。它通過模擬內(nèi)存訪問模式,測試系統(tǒng)在讀取和寫入連續(xù)內(nèi)存塊時的速度,衡量系統(tǒng)的內(nèi)存性能和數(shù)據(jù)傳輸效率。
平臺環(huán)境
[硬件參數(shù)] | |
處理器: | 算能SG2042 X1 |
DDR | 128G,3200HZ |
[芯片參數(shù)] | |
主頻 | 2.0GHz |
核心數(shù): | 64核 |
L1 Cache: | I:64KB and D:64KB(Per Core) |
L2 Cache: | 1MB/Cluster(Per Cluster,X16 Cluster) |
L3 Cache: | 64MB System Cache |
[軟件環(huán)境] | |
linux版本: | Ubuntu 22.10 |
gcc版本: | 12.2.0(GNU) |
參數(shù)含義
我們先來了解下測試參數(shù)的具體用法。
1. ARRAY_SIZE:
用于指定測試期間使用的數(shù)組大小。該參數(shù)定義了測試中要操作的內(nèi)存塊的大小,通常以字節(jié)為單位。通過更改 array_size 的值,可以評估系統(tǒng)在不同內(nèi)存工作負(fù)載下的性能表現(xiàn),關(guān)于設(shè)置的大小,我們可以從官網(wǎng)上查看到說明:
The general rule for STREAM is that each array must be at least 4x the size of the sum of all the last-level caches used in the run.
Useful links:
也就是我們需要設(shè)置為最后一級緩存總和的 4 倍。
2. OpenMP :
-gcc編譯器添加“-fopenmp” 選項多線程支持。
單線程Stream測試
我們的L3 Cache大小是64M,參考官方文檔的建議,為了測試的準(zhǔn)確性,選取了4倍大小的數(shù)據(jù),也就是數(shù)組大小33554432作為基準(zhǔn),以2621440為梯度,依次增加數(shù)組大小,考察數(shù)組大小對測試結(jié)果的影響。選用的是gcc編譯器。
單線程測試命令:
ubuntu@perfxlab:~/STREAM$ gcc -O3 -DSTREAM_ARRAY_SIZE=【ARRAY_SIZE】 stream.c
測試結(jié)果如下表:
單線程 gcc -o3
多線程Stream測試
和單線程Stream測試一樣,同樣可以做不同數(shù)組大小的多線程Stream 測試,選取的數(shù)組大小和單線程一樣。
ubuntu@perfxlab:~/STREAM$ gcc -O3 -fopenmp -DSTREAM_ARRAY_SIZE=【ARRAY_SIZE】 stream.c
測試結(jié)果如下表:
多線程 gcc -o3結(jié)論
單核vs多核 gcc -o3從結(jié)果可以看出,多核測試的結(jié)果明顯高于單核測試的結(jié)果。多核測試?yán)昧硕鄠€處理核心并行執(zhí)行任務(wù),從而表現(xiàn)出更大的數(shù)據(jù)帶寬。在多核測試中,Copy操作的性能是單核測試的大約5倍,Scale操作的性能約為單核測試的6倍。
綜上所述,多核測試在Copy和Scale操作中顯示出了明顯的性能優(yōu)勢,而在Add和Triad操作中的性能提升較小。這與多核處理器的并行處理能力和數(shù)據(jù)依賴性有關(guān)。多核測試結(jié)果顯示出了多核處理器在并行計算和數(shù)據(jù)處理方面的優(yōu)勢。
-
帶寬
+關(guān)注
關(guān)注
3文章
926瀏覽量
40913 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7488瀏覽量
87849 -
Stream
+關(guān)注
關(guān)注
0文章
20瀏覽量
7968 -
RISC-V
+關(guān)注
關(guān)注
45文章
2270瀏覽量
46129
發(fā)布評論請先 登錄
相關(guān)推薦
評論