2012-09-25 31 views

回答

8

正如您已經注意到的,cuPrintf()(和printf()計算能力> = 2.0),只需在內核運行時將字符串添加到緩衝區,並在內核結束後打印出緩衝區。

我不認爲有一種方法可以從內核獲得實時printf。但是,爲了減少延遲,您可以每次使用更少的線程運行內核。由於__device__ printf()只是一個診斷或調試工具,因此性能的任何損失都無關緊要。

也許最好的事情是在CUDA調試器中運行代碼並以這種方式獲得即時反饋。

+3

sm_20上的printf通常需要在輸出準備就緒之前進行設備同步,因此「按時」打印輸出當前是不可能的。 – harrism

相關問題