RISC-V公測平臺Stream程序路徑:/public/benchmark/stream/5.10
前言
"Stream" 是一種基準測試工具,用于評估計算機系統的內存帶寬性能。它通過模擬內存訪問模式,測試系統在讀取和寫入連續內存塊時的速度,衡量系統的內存性能和數據傳輸效率。
平臺環境
[硬件參數] | |
處理器: | 算能SG2042 X1 |
DDR | 128G,3200HZ |
[芯片參數] | |
主頻 | 2.0GHz |
核心數: | 64核 |
L1 Cache: | I:64KB and D:64KB(Per Core) |
L2 Cache: | 1MB/Cluster(Per Cluster,X16 Cluster) |
L3 Cache: | 64MB System Cache |
[軟件環境] | |
linux版本: | Ubuntu 22.10 |
gcc版本: | 12.2.0(GNU) |
參數含義
我們先來了解下測試參數的具體用法。
1. ARRAY_SIZE:
用于指定測試期間使用的數組大小。該參數定義了測試中要操作的內存塊的大小,通常以字節為單位。通過更改 array_size 的值,可以評估系統在不同內存工作負載下的性能表現,關于設置的大小,我們可以從官網上查看到說明:
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:
也就是我們需要設置為最后一級緩存總和的 4 倍。
2. OpenMP :
-gcc編譯器添加“-fopenmp” 選項多線程支持。
單線程Stream測試
我們的L3 Cache大小是64M,參考官方文檔的建議,為了測試的準確性,選取了4倍大小的數據,也就是數組大小33554432作為基準,以2621440為梯度,依次增加數組大小,考察數組大小對測試結果的影響。選用的是gcc編譯器。
單線程測試命令:
ubuntu@perfxlab:~/STREAM$ gcc -O3 -DSTREAM_ARRAY_SIZE=【ARRAY_SIZE】 stream.c
測試結果如下表:
單線程 gcc -o3
多線程Stream測試
和單線程Stream測試一樣,同樣可以做不同數組大小的多線程Stream 測試,選取的數組大小和單線程一樣。
ubuntu@perfxlab:~/STREAM$ gcc -O3 -fopenmp -DSTREAM_ARRAY_SIZE=【ARRAY_SIZE】 stream.c
測試結果如下表:
多線程 gcc -o3結論
單核vs多核 gcc -o3從結果可以看出,多核測試的結果明顯高于單核測試的結果。多核測試利用了多個處理核心并行執行任務,從而表現出更大的數據帶寬。在多核測試中,Copy操作的性能是單核測試的大約5倍,Scale操作的性能約為單核測試的6倍。
綜上所述,多核測試在Copy和Scale操作中顯示出了明顯的性能優勢,而在Add和Triad操作中的性能提升較小。這與多核處理器的并行處理能力和數據依賴性有關。多核測試結果顯示出了多核處理器在并行計算和數據處理方面的優勢。
-
帶寬
+關注
關注
3文章
937瀏覽量
40943 -
計算機
+關注
關注
19文章
7507瀏覽量
88066 -
Stream
+關注
關注
0文章
20瀏覽量
7993 -
RISC-V
+關注
關注
45文章
2291瀏覽量
46193
發布評論請先 登錄
相關推薦
評論