2012-12-15 34 views
2

我得到一個非常令人沮喪的錯誤,其中代碼中的變量「沒有值」。 下面是我的代碼的圖片,底部有調試器信息。CUDA調試:「目標位置沒有值」,我清楚地設置了一個值

我原來的代碼只有紅色的正方形,但我在藍色方塊「Xmax = 40」中添加,看看我是否可以強制一個值進入變量。顯然你可以看到還有一個問題。任何洞察爲什麼我得到這個錯誤?

enter image description here

+0

如果您想要解決編譯器的生命週期優化問題,您可以_read_變量作爲內核的結束(以編譯器無法優化的方式,例如修改全局變量)而不是_writing_來讀取它。 – tera

回答

4

您所遇到的問題很可能是由於變量的生存區間。大多數編譯器在編譯調試代碼時會將變量的生存範圍擴展爲等於變量的範圍。

NVCC編譯器不擴展變量的生存範圍。此外,即使未指定優化標誌,NVCC編譯器也會執行一些優化。這可能導致消除用戶指定的變量。擴展變量的生存範圍是CUDA調試器功能請求列表中的首要項目之一,但我無法告訴您此問題將在哪個版本中得到解決。

我建議您通過CUDA註冊開發者計劃解決該問題的一個錯誤submit

相關問題