CUDA运行时版本与CUDA驱动程序版本 - 有什么区别?

ein*_*ica 18 cuda version nvidia

CUDA Runtime API公开了这些功能

  • cudaRuntimeGetVersion()
  • cudaDriverGetVersion()

(见这里的详细说明).我有点期待第一个给我"8.0"(对于CUDA 8.0),第二个给我一个字符串,就像我从检查nVIDIA的GPU驱动程序内核模块得到的那样,例如

modinfo nvidia | grep "^version:" | sed 's/^version: *//;'
Run Code Online (Sandbox Code Playgroud)

在我的系统上367.57.

现在,第一个电话给了我8000- 很好,只是一个奇怪的方式说8.0我猜; 但第二个API调用也给了我8000.那么这两个意味着什么?

我链接到的Runtime API文档似乎没有解释这一点.

Rob*_*lla 13

CUDA运行时版本指示与已安装的cudart(CUDA运行时)库相关的CUDA兼容性(即版本).

CUDA驱动程序版本(如此处所报告)报告与驱动程序相同的信息.

这与CUDA中的驱动程序兼容性模型有关.我相信您知道,特定的CUDA工具包版本(即CUDA运行时库版本,nvcc编译器版本等)需要特定的最低驱动程序级别才能正确使用使用该工具包编译的代码.

CUDA驱动程序版本(如此处所述)有效地报告了特定安装的驱动程序可以支持CUDA版本.

正如您已经发现的那样,它不会报告实际编号的驱动程序版本.

  • 1.有GPU驱动版本。使用 `nvidia-smi` 查询它。2.有一个与驱动相关的CUDA兼容版本(但特定GPU驱动版本与其相关的CUDA兼容版本之间存在1:1的对应关系)。与最新驱动程序捆绑在一起的 `nvidia-smi` 工具将显示它们拥有的 CUDA 兼容版本。3. 有一个 CUDA 运行时版本,它将与您用于构建特定运行时 API 代码的运行时 API 相关联。例如,您可以使用 `nvcc -v` 查询,或者使用 `deviceQuery` 示例代码查询最后两件事。 (3认同)
  • 研究`deviceQuery` cuda示例代码以获得解释提示.这里没有子版本.8000 = CUDA 8 (2认同)