大模型环境部署时是不是经常听到runtime api, driver api, CUDA, cuDNN, CUDA Toolkit, nvcc, nvidia-smi这些名词,那么这些名词之间到底什么关系?让我们来捋一捋。

首先英伟达的api分为两类:driver api和runtime api:

  • 1 driver api是底层api,与硬件之间交互。
  • 2 runtime api是高层api,在driver api的基础上进封装得到。

CUDA、CUDA Toolkit和cuDNN的关系:

  • 1 CUDA驱动安装的是driver api.
  • 2 CUDA Toolkit 安装的是runtime api,但是CUDA Toolkit安装时也可以一起把CUDA驱动一起安装了。
  • 3 cuDNN是NVIDIA专门为深度学习开发的高性能算子加速库,为CNN、RNN等网络提供加速。

ncvv和nvidia-smi的关系:

  • 1 nvidia-smi是安装CUDA驱动得到的,作用于driver api.
  • 2 nvcc是安装CUDA Toolkit得到的,作用于runtime api.

为什么nvidia-smi看到的CUDA版本和nvcc看到的CUDA版本不一致:

  • 1 nvidia-smi看到的是driver-api 版本
  • 2 nvcc看到的是runtime api版本

nvidia-smi结果:

nvcc -V结果:

参考文献: