【问题标题】:Using CUDA compiled for compute capability 3.7 on Maxwell GPUs?在 Maxwell GPU 上使用为计算能力 3.7 编译的 CUDA?
【发布时间】:2016-05-19 14:02:52
【问题描述】:

我的开发工作站目前有 NVIDIA Quadro K2200 和 K620。两者都具有 CUDA 计算能力 5.0。然而,最终的生产系统有一个 CUDA 计算能力为 3.7 的 Tesla K80。

是否可以在我的 Quadro GPU 上安装和开发计算能力 3.7 的 CUDA 程序,然后将它们移至 K80 而无需进行重大更改?

【问题讨论】:

  • 没有 CUDA 3.7 版这样的东西。您是否混淆了 CUDA 版本和计算能力?

标签: cuda nvidia tesla


【解决方案1】:

是的,这是可能的。确保不要在您的代码中使用任何 计算能力 5.0+ 特定功能,并且您应该能够在 cc3.7 设备或 cc5.0 设备上正确运行您的代码。

编译代码时,specify target architectures 用于两种计算能力,例如

-gencode arch=compute_50,code=sm_50 -gencode arch=compute_37,code=sm_37

并且这样的编译方法应该可以在任一平台上使用以创建可用的二进制文件。此外,以这种方式编译将导致编译器标记您可能无意中使用了 cc5.0+ 特定功能的任何情况。

我认为您不太可能无意中使用 cc5.0+ 特定功能;它们不会成为常见 CUDA 使用的一部分。例如,如果您attempted to use the lop3.b32 instruction in inline PTX,那将无法在 cc3.7 设备上运行(并且使用上述编译开关,编译器会为您标记。)

【讨论】:

  • 值得一提的是,包含多种架构的机器代码的二进制文件被称为 fat 二进制文件,并且在 CUDA 环境中非常常见,因为 NVIDIA GPU 架构是一般不兼容二进制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2023-02-24
  • 2011-08-28
  • 1970-01-01
  • 2013-08-30
  • 2016-09-29
  • 1970-01-01
相关资源
最近更新 更多