如何验证双打是否已启用并在 cuda 内工作?
我想知道我的 CUDA 设备是否启用了双精度,因为它是具有 CUDA 运行时 4.0(SDK 和工具包、最新驱动程序)的计算能力 2.0 设备。
如何验证双精度是否已激活?另外,我在编译 CUDA 代码时收到警告: 当 2.0 设备明显支持双精度时,“不支持双精度,降级为浮动”。那为什么会有这个警告呢?任何人都可以帮忙了解这里发生了什么吗? 出现此警告是否是因为默认 Makefile 会针对所有可能的体系结构进行编译,并且此输出来自较低体系结构的编译?
I was looking to find out if double precision is enabled on my CUDA device or not since it is a Compute Capability 2.0 device with CUDA runtime 4.0(SDK & toolkit, latest driver).
How can I verify if double precision is activated or not? Also, I am getting warnings while compiling my CUDA code:
"double precision not supported, demoting to float" when clearly 2.0 devices support double precision natively. Why is this warning there then? Can anyone help as to what is going on here?
Is this warning coming because the default Makefile compiles for all possible architectures and this output is coming from compilation for lower architectures?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
出现警告的原因是
nvcc
默认为不支持双精度的计算能力 1.0 设备生成代码。如果将-arch=sm_20
添加到编译语句中,nvcc
将为计算 2.0 设备生成代码,其中包括本机双精度浮点运算。The warning occurs because
nvcc
defaults to generating code for compute capability 1.0 devices which do not support double precision. If you add-arch=sm_20
to your compile statements,nvcc
will generate code for compute 2.0 devices, which includes native double precision floating point operations.