簡體   English   中英

CUDA Profiler 中“flop_count_sp”和“inst_fp_32”指標的含義

[英]Meaning of the “flop_count_sp” and “inst_fp_32” metric in CUDA Profiler

根據分析器用戶指南

flop_count_sp:由非謂詞線程(加法、乘法和乘法累加)執行的單精度浮點運算數 每個乘加運算對計數貢獻 2。 計數不包括特殊操作。

inst_fp_32:非謂詞線程(算術、比較等)執行的單精度浮點指令

我有一個帶有分析器輸出的內核,可以添加到以下內容中:

flop_count_sp = flop_count_sp_add + flop_count_sp_mul + 2 * flop_count_sp_fma
inst_fp_32 = flop_count_sp_add + flop_count_sp_mul + flop_count_sp_fma

鑒於這些指標中的數字,我想知道什么是操作,什么是指令 似乎fma是一個指令,但有兩個操作。 addmul是一個指令和一個操作。 由於 SASS 程序集由分析器計算。 是否有任何指令不算作操作? 或相反亦然。 我只想在 nvprof 和 nvvp 指標的上下文中知道。

另外,當我們談論 TFLOP/s 的峰值性能時,我猜這里的OP對應於操作? 如果我想估計計算到全局內存訪問 (CGMA) 之類的東西,我應該使用flop_count_sp而不是inst_fp_32作為計算部分嗎? 提前致謝。

我想知道什么是操作,這里的指令是什么? 似乎fma是一個指令,但有兩個操作。 addmul是一個指令和一個操作。

是,對的。 Fused-Multiply-Add 指令算作 2 次運算(乘法加加法)。 乘法或加法指令算作一次運算。

是否有任何指令不算作操作?

是的,任何不使用 SM 內的單精度(或雙精度,例如flop_count_dp )功能單元的flop_count_dp都不會對這些度量(inst 或 op)提供任何操作。 例如,整數指令或加載或存儲指令不會影響這些指標。 我不相信任何可能具有某種浮點性質(例如轉換為/從浮點)但不包含加法或乘法運算的指令都不會對操作指標做出貢獻。

另外,當我們談論 TFLOP/s 的峰值性能時,我猜這里的 OP 對應於操作?

是的

如果我想估計計算到全局內存訪問 (CGMA) 之類的東西,我應該使用 flop_count_sp 而不是 inst_fp_32 作為計算部分嗎?

我想這可能是一個見仁見智的問題。 我會使用說明。 如前所述,融合乘加指令計為 2 個操作,但它不會“加倍”浮點單元的壓力。 因此,在比較代碼以查看全局內存加載/存儲活動與計算“壓力”之間的平衡時,我會使用指令。 再次,可能是意見問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM