2014-02-24 98 views
0
  1. 我可以通過nvcc使用cuPrintf成功編譯我的代碼,但無法在Visual Studio 2012環境中編譯它。它說「volatile char *」不能在「cudaMemcpyToSymbol」函數中改爲「const void *」。關於CUDA和cuPrintf的幾個問題

  2. cuPrintf似乎不起作用,在內核代碼中沒有執行cuPrintf函數。

  3. 如何使nvcc導出pdb文件?

  4. 在內核函數中有沒有其他方便調試的方法?我只有一臺筆記本電腦。

+0

你可以張貼在MSVC使用NVCC編譯行?代碼也可以 –

+0

你可以把編譯標誌放到更高的體系結構並嘗試使用普通的printf嗎? – jmpyle771

回答

1

月1日,cuPrinft被棄用(據我所知,它從來沒有被釋放)可以打印使用打印命令從內核中的數據,但是這是調試內核的一個非常不推薦的方式。你正在使用CUDA nvcc編譯器進行編譯,CUDA中沒有這樣的pdb文件,雖然看着'g'和'G'標誌,但這些可能會顯着增加你的運行時間。

3, The best way to debug kernels is using visual Nsight

+0

我需要pdb文件來調試主機代碼,並使用VS編譯可以生成pdb文件。我從來沒有成功使用Visual Nsight,這就是爲什麼我找到cuPrint。不過謝謝你。 – Cccmm002

+1

cuPrintf仍然是當前(cuda 5.5)發佈的工具包中示例代碼的cuda示例[simple printf](http://docs.nvidia.com/cuda/cuda-samples/index.html#simpleprintf)的一部分。當cc <2.0時,cuPrintf用於該示例中。我不確定在這種情況下什麼廢棄的手段。這是一個示例代碼。 –

+0

嘗試運行nsight,這是一個非常好的調試工具,值得努力,關於cuprinf,我會推薦使用cc»20,比舊的設備和缺乏編程選項更舊的版本。 – TripleS