在 Maxwell GPU 上使用为计算能力 3.7 编译的 CUDA?
Using CUDA compiled for compute capability 3.7 on Maxwell GPUs?
我的开发工作站目前有 NVIDIA Quadro K2200 和 K620。两者都具有 CUDA 计算能力 5.0。然而,最终的生产系统具有 Tesla K80,其 CUDA 计算能力为 3.7。
是否可以在我的 Quadro GPU 上安装和开发计算能力 3.7 的 CUDA 程序,然后将它们移动到 K80 而无需进行重大更改?
是的,这是可能的。请确保不要在您的代码中使用任何 计算能力 5.0+ 特定功能,并且您应该能够 运行 您的代码在 cc3.7 设备或 cc5 上正确运行.0 设备。
编译您的代码时, 计算能力,例如
-gencode arch=compute_50,code=sm_50 -gencode arch=compute_37,code=sm_37
这样的编译方法应该可以在任何一个平台上使用,以创建可用的二进制文件。此外,以这种方式编译将导致编译器标记您可能无意中使用了 cc5.0+ 特定功能的任何情况。
我认为您不太可能无意中使用了 cc5.0+ 的特定功能;它们不会成为常见 CUDA 用法的一部分。例如,如果您 ,那将无法在 cc3.7 设备上运行(并且使用上述编译开关,编译器会为您标记它。)
我的开发工作站目前有 NVIDIA Quadro K2200 和 K620。两者都具有 CUDA 计算能力 5.0。然而,最终的生产系统具有 Tesla K80,其 CUDA 计算能力为 3.7。
是否可以在我的 Quadro GPU 上安装和开发计算能力 3.7 的 CUDA 程序,然后将它们移动到 K80 而无需进行重大更改?
是的,这是可能的。请确保不要在您的代码中使用任何 计算能力 5.0+ 特定功能,并且您应该能够 运行 您的代码在 cc3.7 设备或 cc5 上正确运行.0 设备。
编译您的代码时,
-gencode arch=compute_50,code=sm_50 -gencode arch=compute_37,code=sm_37
这样的编译方法应该可以在任何一个平台上使用,以创建可用的二进制文件。此外,以这种方式编译将导致编译器标记您可能无意中使用了 cc5.0+ 特定功能的任何情况。
我认为您不太可能无意中使用了 cc5.0+ 的特定功能;它们不会成为常见 CUDA 用法的一部分。例如,如果您