CUDA运行时版本与CUDA驱动程序版本有什么区别?
问题描述:
CUDA具有功能cudaRuntimeGetVersion()
和cudaDriverGetVersion()
(请参阅详细说明here)。我有点花费第一个给我“8.0”(对于CUDA 8.0),第二个给我的字符串与我检查nVIDIA的GPU驱动程序内核模块时得到的字符串相同,例如,CUDA运行时版本与CUDA驱动程序版本有什么区别?
modinfo nvidia | grep "^version:" | sed 's/^version: *//;'
这在我的系统上是367.57
。现在,第一个电话给我8000
- 很好,只是一个奇怪的方式来说我猜8.0;但第二个API调用也给我8000
。那么这两者是什么意思呢?也就是说,CUDA不是由独立的“运行时”和“驱动程序”包组成的,对吧?
我链接到的运行时API文档似乎没有解释这一点。
答
CUDA运行时版本指示与已安装的cudart(CUDA运行时)库有关的CUDA兼容性(即版本)。
CUDA驱动程序版本(如此处所报告)报告与驱动程序相关的相同的信息。
这与CUDA中的驱动程序兼容性模型有关。我相信您知道,使用该工具包编译的代码的特定CUDA工具包版本(即CUDA运行时库版本,nvcc编译器版本等)requires a particular minimum driver level for proper use。
CUDA驱动程序版本(如此处所报告的)有效地报告了哪些CUDA版本可以由特定的已安装驱动程序支持。
正如您已经发现的,它不会报告实际编号的驱动程序版本。
(叹气)我现在明白了。所以,我可以责怪那些令人困惑的名字,然后......谢谢。你已经给了我一点工作[this](https://github.com/eyalroz/cuda-api-wrappers)。 – einpoklum
另外,我怎么解释8000?三个最小的十进制数是单个“次要版本号”,还是像8.0.0或8.0.0.0?毕竟,CUDA 8.0版本在上次下载时被命名为8.0.44。 – einpoklum
研究解释提示的'deviceQuery' cuda示例代码。这里没有子版本。 8000 = CUDA 8 –