cuda 版本
cuda toolkit版本是用于开发cuda程序的 针对开发者
cuda 驱动是用于运行程序的 针对用户
例子
对于开发者而言
例如 pytorch v1.0 的开发者们使用了cuda 10的新特性。但他们的cuda 环境不会打包给你
你一个开发者想使用pytorch 开发算法,这时除了安装 pytorch v1.0 外还需要配置代码里面使用的cuda的环境。
这时,你只需要使用CUDA 10.0 以上的toolkit就可以了(兼容cuda 10的特性)
对于使用者B而言
A 用最新的 cuda 12.0的toolkit 开发了cuda 程序,并使用了 cuda 12的新性能
B 自己的电脑是 nvidia gfx 1050ti 一个很老的GPU,想使用A用cuda 12 toolkit 编译的程序。
nvidia gfx 1050ti 在出来的时候还没有 cuda 12 只有cuda 9, 因此带有cuda 12特性的新程序,B现在运行不了,会崩溃。
那怎么办呢?
NVIDA提供了一个解决方案,就是驱动:
每当cuda 更新的时候,NVIDIA会发布新的驱动(发布大量对应gpu设备的驱动),来控制 老的设备,让老的设备也能支持新的特性。
因此B只需寻找支持cuda 12的新驱动,更新一下就可以运行A的程序了。
另一种情况
假如B的设备是更更老的gfx 540。 cuda 12的新特性无法在这个gpu物理架构上实现,这时,NVIDIA不会推出gfx 540的新驱动,相当于gfx 540永远不能支持cuda 12,B就不能在gfx 540设备上跑A的程序。
除非,A退回到更老的cuda 8.0,并且不使用cuda 8.0之后所有特性(假如gfx 540最高支持到cuda 8.0) 去编译程序,这时A才能运行。