【发布时间】:2010-12-08 21:06:00
【问题描述】:
我有一些 CUDA 代码,nvcc(嗯,技术上是ptxas)喜欢花费 10 分钟以上的时间来编译。虽然它不小,但它肯定不是很大。 (约 5000 行)。
CUDA 版本更新之间的延迟似乎来来去去,但以前只需要一分钟左右而不是 10 分钟。
当我使用-v 选项时,显示以下内容后似乎卡住了:
ptxas --key="09ae2a85bb2d44b6" -arch=sm_13 "/tmp/tmpxft_00002ab1_00000000-2_trip3dgpu_kernel.ptx" -o "/tmp/tmpxft_00002ab1_00000000-9_trip3dgpu_kernel.sm_13.cubin"
内核确实有一个相当大的参数列表,并且传递了一个包含大量指针的结构,但我知道至少有一个时间点,几乎完全相同的代码只编译了一个几秒钟。
如果有帮助,我正在运行 64 位 Ubuntu 9.04。
有什么想法吗?
【问题讨论】:
-
可能是编译器中的错误?编译器是否占用了大量内存并导致系统崩溃?
-
鉴于问题的性质,我不会感到惊讶。特别是当我使用 --device-emulation 编译时,它编译得很快。当然,即使它是编译器中的一个错误,我仍然希望能够对此做点什么。
-
如果禁用优化会怎样?
-
禁用优化也会出现同样的问题。
-
您使用的是什么版本的工具包和驱动程序? 3.0 测试版使用更新的后端。