我想知道我的CUDA设备是否启用了双精度,因为它是带有CUDA运行版4.0的Compute Capability 2.0设备(SDK& toolkit,最新驱动程序)。
如何验证是否激活了双精度?此外,我在编译CUDA代码时收到警告: 当显然2.0设备本身支持双精度时,“双精度不支持,降级为浮动”。为什么会出现这种警告呢?任何人都可以帮忙解决这里发生的事情吗? 是否会出现此警告,因为默认的Makefile会编译所有可能的体系结构,并且此输出来自较低体系结构的编译?
答案 0 :(得分:2)
出现警告是因为nvcc
默认为生成不支持双精度的计算能力1.0设备的代码。如果将-arch=sm_20
添加到编译语句中,nvcc
将为compute 2.0设备生成代码,其中包括本机双精度浮点运算。