簡體   English   中英

CUDA nvvp提供的報告中的“已發出指令”是什么意思?

[英]What does “Instruction Issued” mean in the report provided by CUDA nvvp?

我使用Nvidia Visual Profiler(nvvp)在cublas內核上執行內核配置文件。 此鏈接等待時間分布是等待時間分布結果。

該文檔以這種方式解釋了“發出的指令”一詞-“發出的指令-已發出翹曲”,這使我感到困惑。 這到底是什么意思?

首先介紹CUDA執行模型的背景知識。

CUDA 扭曲是CUDA GPU上調度和執行的基本單位。 扭曲是一起執行的32個線程的固定集合。

因此,在任何給定的時鍾周期內,經線中一個線程執行的指令始終由經線中的所有其他線程執行(盡管它們可能被斷言或被屏蔽為不活動,而忽略了Volta的討論)。

CUDA流式多處理器(SM)具有調度程序,該調度程序查看屬於可用扭曲的各種執行線程,並從准備就緒的那些執行線程中選擇指令,以在SM內的各種執行單元上調度這些指令。

然后發出的指令意味着,warp調度程序選擇了一條指令,並將其發出(調度)到一組執行單元上以進行處理。 由於CUDA執行模型的原因,說“發出指令”實際上意味着該指令是在整個warp范圍內發出的,這意味着該指令已調度到32個相關的執行單元上,以便為warp中的所有32個線程提供該指令。 我們可以說“發出了warp”,這意味着已為warp中的所有32個線程發出了指令。

現在,關於分發餅圖,您可能需要參考這里

探查器正在使用PC采樣來確定采樣點處的翹曲狀態 ,然后將如此采樣的翹曲狀態放入餅圖分布圖中,以顯示采樣特定狀態的時間百分比。

翹曲可能處於多種狀態,我不會嘗試定義和總結所有狀態。 但是許多狀態將對應於“停頓”狀態,這意味着該狀態下的扭曲無法從其發出指令(例如,因為下一條指令對之前未完成的指令具有執行依賴性 )然而)。 “未停止”狀態是“發出指令”。 這里定義翹曲狀態。從技術上講,“未選中”是“停滯”狀態,但我將在下面進行討論)。

從經紗的角度來看,“發出的指令”可能是“最佳”狀態。 在對經線進行采樣的時鍾周期中,它有一條准備好進行調度的指令,實際上,實際上是從該經線發出了一個或多個指令

相比之下,“未選中”(技術上也是“停滯”狀態)是“准備就緒”要發出的warp,但是出於某種原因,warp調度程序選擇從另一個warp中選擇要在時鍾中發出的指令采樣的周期。

暫無
暫無

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

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