GPU效能衡量指標
GPU加速優化之前,我們先看看GPU的效能衡量。
- FLOPS
- Occupancy
FLOPS(Floating-point-operations-per-second)
每秒浮點運算量,是衡量GPU硬體計算能力的指標。
Occupancy
佔有率,每個SM的活動執行緒束(possible active warps)數量與實際的活動執行緒束(active warps)數量的比值。它是衡量CUDA硬體執行效率的指標。CUDA上的執行緒指令是序列執行的。因此,在某些warp被暫停或者阻塞的時候,啟動另外的warp來保持硬體的busy,對於提升硬體執行效率來說非常重要。
儘管更高的佔有率並不總是意味著更高的效率,但是低的佔有率卻會影響掩蓋記憶體延遲的能力,進而引起效率的退化。當佔有率達到50%後,我們不會再尋求通過提高佔有率來提升效率。
影響Occupancy的因素有3個:
暫存器資源(register availability, thread私有)
Register 儲存了執行緒中的區域性變數,具有最低的存取延遲。但是能分配給SM上每個block以及每個thread的暫存器數量是有限的。Registers是一次性被分給一個block。如果每個thread擁有太多暫存器,則能駐存與SM上的block數量就會減少,從而降低Occupancy。因此每個thread能擁有的暫存器數目設定非常關鍵,這個值可以在編譯時通過maxrregcount或者__lauch_bounds_手動設定。nvcc --ptxas options=v 可以檢視每個kernel的每個執行緒的可用暫存器數量。
共享記憶體資源(shared memory,block內的thread共享)
通常,一個kernel要求的shared memeory是和block size有關的。每個block的thread是共享shared memory。分配給單個block的shared memory越多,則SM上能駐存的block越少,則Occupancy就會下降。
SM最大併發threads數量,SM最大併發warps數量,SM最大併發blocks數量
SM對於最大併發thread數,最大併發warps數,最大併發blocks數都是有限制的。如果這些數量超過了限制值,則多出的thread和warp和block就會等待,直到輪到自己的時候才開始工作。這樣的話SM是無法到達Occupancy的理論最大值的,且效能也會降低。
相關文章
- 【IO】IO系統效能之一:衡量效能的幾個指標指標
- 從哪些指標衡量客服的工作情況指標
- 如何衡量研發效能?阿里資深技術專家提出了5組指標阿里指標
- 【高併發】面試官:效能優化有哪些衡量指標?需要注意什麼?面試優化指標
- 衡量資料管理價值的指標如何定義指標
- 效能測試指標指標
- 如何使用預測性指標衡量敏捷轉型的成功?指標敏捷
- 效能之nmon(硬體指標)指標
- 肖sir___效能之nmon(效能硬體指標)指標
- 效能測試指標演算法指標演算法
- MYSQL和SQLServer效能監控指標MySqlServer指標
- 計算機效能評價指標計算機指標
- 效能測試之測試指標指標
- 如何衡量前端基建的效能價值?前端
- DevOps|研發效能價值如何衡量dev
- 軟體效能測試常見指標指標
- DSP晶片效能引數有哪些重要指標?晶片指標
- 肖sir__ 效能之軟硬體指標指標
- 肖sir___效能之外掛(軟體指標)指標
- 效能測試有哪些指標需要測試?指標
- react中useCallback是否使用的衡量標準React
- 高效能運算GPU解決方案系列教程二–高效能運算叢集效能指標GPU指標
- 軟體研發效能的一些指標指標
- 軟體效能測試主要看什麼指標指標
- 效能測試各個指標之間關係指標
- 【效能調優】Oracle AWR報告指標全解析Oracle指標
- 大話效能測試系列(1)- 效能測試概念與主要指標指標
- 機器學習中的效能度量指標彙總機器學習指標
- 機器學習筆記之效能評估指標機器學習筆記指標
- 詳解c++指標的指標和指標的引用C++指標
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- 陣列指標,指標陣列陣列指標
- 指標指標
- P95、P99.9百分位數值——服務響應時間的重要衡量指標指標
- Unity效能分析(二)CPU/GPU分析UnityGPU
- GPU.js助您改善JavaScript效能GPUJSJavaScript
- 指標陣列與陣列指標指標陣列
- 指標函式 和 函式指標指標函式