2013-02-15 50 views
4

我有一個在CC 3.0(開普勒)上表現不佳的內核,而不是CC 2.0(費米)。在Nsight分析器中,Warp Issue Efficiency圖表顯示,有60%的時間沒有合格的扭曲,圖表顯示其中60%是由於「其他」造成的。什麼是「其他」問題Nsight Profiler顯示的問題原因?

我想知道其他問題的原因是什麼,我可能會做什麼來減少它們。

CUDA 5.0。/Nsight 3.0。 RC/CC 3.0。

Issue Stall Reasons

+0

謝謝你的信息。內核是一個PBKDF2-HMAC-SHA1密鑰擴展器。因此,它會運行大量的整數加法和按位運算。特別是,有許多32位整數移位,其開普勒上的吞吐量較低。沒有FP操作。我想,在這種情況下,Other是由於低吞吐量的整數操作,所以沒有太多的事情要做。 – 2013-02-15 23:52:42

回答

7

在Nsight的Visual Studio 3.0版CUDA探查問題效率顯示的翹曲失速的原因的餅圖。停頓的原因是取指令,執行依賴,數據請求,紋理,同步和其他。

對於計算能力3. *器件的其它類別是活性經紗由於停滯以下原因的時間的百分比:

  • 執行單元忙(減少使用低吞吐量整數操作)
  • 寄存器組衝突(編譯器的問題是有時可通過大量使用矢量數據類型進行最差)每調度
  • 太少經線

計算能力5. *和6 *設備的其他類是主動經紗由於停滯以下原因的時間百分比:

  • 寄存器組衝突(編譯器的問題,可有時沉重作出最壞利用矢量數據類型的)
  • 經紗等待解決分支
  • 經線是低優先級和沒有被考慮用於調度

對於5. *和6 *,特別是GP100,最後如果內核到達,原因可能非常高(〜75%)每個warp調度程序有32個warp。

由於很難確定開發人員可以採取哪些措施來解決這些問題,因此將這些攤位原因歸入其他類別。

+0

...第三個原因似乎對我很有效:「增加塊尺寸」。我錯了嗎? – einpoklum 2017-04-13 15:48:33

+0

工作流首先要看問題的效率。如果60%的週期沒有合格的經線,那麼增加入住率往往是首先要調查的事情之一。調度程序停頓的原因可以更深入地瞭解執行問題。增加佔用並不一定意味着增加區塊尺寸。通常每塊更小的經紗是增加每根紗線的經紗的更好方法。 – 2017-04-13 21:20:49

+0

(1)您能舉一個最後一句的具體例子,其中「每個調度程序太少的經紗」是失速原因的主導因素(〜50%或更多)?如果是這樣,我會提出另一個問題,你可以回答它。 (2)這個列表有三個原因詳盡嗎? – einpoklum 2017-04-13 21:34:21

相關問題