CUDA组件 -- nvidia driver驱动与toolkit

CUDA简介:(Computed Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,解决的是用更加廉价的设备资源,实现更高效的并行计算问题。

相关:CUDA、GPU均是英伟达(NVIDIA)推出的概念。图形处理器(Graphics Processing Unit, GPU)与中央处理器(Central Processing Unit, CPU)相对,是显卡的核心芯片。而cuda正是nvidia开发的gpu的编程接口。

1、如何查看显卡是否支持cuda?
lspci | grep -i nvidia
13:00.0 VGA compatible controller: NVIDIA Corporation Device 2204 (rev a1)
1b:00.0 VGA compatible controller: NVIDIA Corporation Device 2204 (rev a1)

其中lspic是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。可知,显卡型号为:NVIDIA Corporation Device 2204

2、cuda组件?

cuda包含三大组件,nvidia driver(驱动),toolkit,samples。

1、driver可以和toolkit分开安装,并且同一台主机上两者支持的CUDA版本可以不一样,需保证:driver cuda version >= toolkit cuda version。

nvidia-smi显示的是 driver cuda version,GPU硬件信息。driver包含函数库libcuda.so,该函数库提供对 CUDA driver API 的访问。

2、toolkit包含函数库libcudart.so,该函数库提供了对 CUDA runtime API 的访问,以及nvcc编译器等。

nvcc命令是toolkit提供。

安装cuda时候,可选择先安装nvidia driver,再安装nvidia cuda,所以driver cuda version、toolkit cuda version可能会不一致。

3、 driver API与runtime API区别?

Driver API有着更灵活的控制,也存在更高的性能的可能性,当然也伴随着更复杂的编程。CUDA driver相比runtime需要做显式的device初始化,以及context、module的管理,这些概念在runtime中是不存在,也是不希望用户关心的

Runtime是Driver的“更高级”的Layer。

编译方面:runtime API使用nvida自己的编译器进行编译,并且可以将CUDA kernel链接到同一个executable中。。而driver API不使用nvidia编译器,通过NVRTC实现编译。

img

4、CUDA toolkit组件?

cuda toolkit可以通过conda来安装,但是驱动不可。

  • Compiler: CUDA-C和CUDA-C++编译器NVCC位于bin/目录中。它建立在NVVM优化器之上,而NVVM优化器本身构建在LLVM编译器基础结构之上。因此开发人员可以使用nvm/目录下的Compiler SDK来直接针对NVVM进行开发。
  • Tools: 提供一些像profiler,debuggers等工具,这些工具可以从bin/目录中获取
  • Libraries: 下面列出的部分科学库和实用程序库可以在lib/目录中使用(Windows上的DLL位于bin/中),它们的接口在include/目录中可获取。
    cudart: CUDA Runtime
    cudadevrt: CUDA device runtime
    cupti: CUDA profiling tools interface
    nvml: NVIDIA management library
    nvrtc: CUDA runtime compilation
    cublas: BLAS (Basic Linear Algebra Subprograms,基础线性代数程序集)
    cublas_device: BLAS kernel interface
  • CUDA Samples: 演示如何使用各种CUDA和library API的代码示例。
    可在Linux和Mac上的samples/目录中获得,Windows上的路径是C:\ProgramData\NVIDIA Corporation\CUDA Samples中。在Linux和Mac上,samples/目录是只读的,如果要对它们进行修改,则必须将这些示例复制到另一个位置。
  • CUDA Driver: 运行CUDA应用程序需要系统至少有一个具有CUDA功能的GPU和与CUDA工具包兼容的驱动程序。每个版本的CUDA工具包都对应一个最低版本的CUDA Driver,也就是说如果你安装的CUDA Driver版本比官方推荐的还低,那么很可能会无法正常运行。
  • CUDA Driver是向后兼容的,这意味着根据CUDA的特定版本编译的应用程序将继续在后续发布的Driver上也能继续工作。通常为了方便,在安装CUDA Toolkit的时候会默认安装CUDA Driver。在开发阶段可以选择默认安装Driver,但是对于像Tesla GPU这样的商用情况时,建议在官方安装最新版本的Driver。

在这里插入图片描述

5、 linux系统只可以拥有一个driver cuda,但是可以下载多个cuda toolkit
参考文献:

【1】cuda 的driver API 和 runtime API :https://blog.csdn.net/jslove1997/article/details/113737934

【2】浅谈Cuda driver API:https://zhuanlan.zhihu.com/p/111602648

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值