CUDA使用介绍

CUDA的设计目标

因为不同编程语言比如Python/C/JAVA等要实现并行计算需要不同的代码,复用性不好。所以需要把并行计算部分单独分离出来,作为一个拓展程序包供不同的编程语言调用。CUDA应运而生。CUDA实现了对任务进行并行处理而不用根据不同的编程语言手动编写代码实现并行计算。

CUDA Toolkit介绍

CUDA Toolkit下载链接为:
CUDA Toolkit下载链接

CUDA Toolkit包含了CUDA驱动和工具,CUDA驱动与NVIDIA驱动并不是一个东西,CUDA驱动接入NVIDIA驱动提供的接口访问GPU,同时接入程序,将运行结果输出。NVIDIA驱动接入GPU,对外提供能够访问GPU的接口。

固定平台安装方法

整体安装

对于Ubuntu和Debian系统来说,通过命令可以安装CUDA-Driver:

#sudo apt-get install cuda-drivers-<branch>
sudo apt-get install cuda-drivers-418

而CUDA Driver包含以下核心模块:

- nvidia.ko
- nvidia-modeset.ko
- nvidia-uvm.ko
- nvidia-drm.ko
- nvidia-peermem.ko

这些核心模块可以通过上面安装CUDA-Driver的命令一次性默认安装,也可以单独安装,单独安装的好处就是可以切换安装的版本,比如说在Ubuntu中把核心模块切换为开源版本而CUDA-Driver其他内容保持默认就可以通过以下指令:

sh cuda_<release>_<version>_linux.run -m=kernel-open

也可以分两步:

sudo apt-get install nvidia-kernel-open-520
sudo apt-get install cuda-drivers-520

简化安装方法

通过预编译流(Precompiled Streams)安装可以简化安装过程。
预编译流安装时会启动一个dnf插件,这个插件会删除旧版本的核心模块文件,同时可以对内核版本进行控制,使得内核和驱动是匹配的。
以预编译流模式安装CUDA-Driver的指令为:

#总是更新到最新版本的预编译的CUDA-Driver
sudo dnf module install nvidia-driver:latest
#安装特定版本的预编译的CUDA-Driver
sudo dnf module install nvidia-driver:<id>
#安装最新版本的非预编译的CUDA-Driver(也就是默认安装时安装的版本)
sudo dnf module install nvidia-driver:latest-dkms
#安装特定版本的非预编译的CUDA-Driver
sudo dnf module install nvidia-driver:<id>-dkms

在使用预编译流安装CUDA-Driver时,同样可以设置核心模块的安装来源:
核心模块的来源
通过添加文件说明的形式可以

以运行文件(Runfile)形式安装

运行文件就是标准安装器,比如在Debian 11 X86_64中的安装文件就是cuda_12.1.1_530.30.02_linux.run,安装指令为:

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run
sudo sh cuda_12.1.1_530.30.02_linux.run

通过这个.run文件可以通过交互窗口的形式安装NVIDIA DriverCUDA Toolkit
对于某些特定版本的Linux系统,比如Fedora、RHEL、OpenSUSE、Ubuntu、Debian等,可能需要先禁用系统已有的图形驱动程序然后才能安装NVIDIA DriverCUDA Toolkit。参考Disabling Nouveau

通过Conda安装器安装

此种方法只能安装CUDA-Toolkit,不能安装NVIDIA-Driver。安装指令为:

conda install cuda -c nvidia

通过Pip安装

如果主要是通过Python来使用CUDA的时候,可以不用在电脑的系统上安装CUDA-Toolkit,只要使用Pip来安装CUDA包就可以在Python环境下使用CUDA,此时在其他环境下比如JAVA/C等不能直接使用CUDA。
这个安装指令为:

#升级安装模块到最新版本
python3 -m pip install --upgrade setuptools pip wheel
#安装nvidia-pyindex使得可以安装其他NVIDIA模块
python3 -m pip install nvidia-pyindex
#安装必要的NVIDIA包
python3 -m pip install nvidia-cuda-runtime-cu12
#安装其他额外的包
python3 -m pip install nvidia-<library>

额外的包包括:

  • nvidia-cuda-runtime-cu12
  • nvidia-cuda-cupti-cu12
  • vidia-cuda-nvcc-cu12
  • nvidia-nvml-dev-cu12
  • nvidia-cuda-nvrtc-cu12
  • nvidia-nvtx-cu12
  • nvidia-cuda-sanitizer-api-cu12
  • nvidia-cublas-cu12
  • nvidia-cufft-cu12
  • nvidia-curand-cu12
  • nvidia-cusolver-cu12
  • nvidia-cusparse-cu12
  • nvidia-npp-cu12
  • nvidia-nvjpeg-cu12
  • nvidia-nvjitlink-cu12
  • nvidia-cuda-opencl-cu12
  • nvidia-nvml-dev-cu121
  • nvidia-cuda-nvcc-cu121
  • nvidia-cuda-runtime-cu121
  • nvidia-cuda-cupti-cu121
  • nvidia-cublas-cu121
  • nvidia-cuda-sanitizer-api-cu121
  • nvidia-nvtx-cu121
  • nvidia-cuda-nvrtc-cu121
  • nvidia-npp-cu121
  • nvidia-cusparse-cu121
  • nvidia-cusolver-cu121
  • nvidia-curand-cu121
  • nvidia-cufft-cu121
  • nvidia-nvjpeg-cu121
  • nvidia-nvjitlink-cu121
  • nvidia-cuda-opencl-cu121

以压缩包形式安装

压缩文件库
下载压缩包以后再进行编译安装。

跨平台(Cross-Platform Environment)安装

这个部分感觉是为了与Docker结合专门介绍的,跨平台与容器化天生就是相通的概念。推荐选择Ubuntu18.04作为容器的系统,安装指令为:

#安装模块仓库,其中<identifier>使操作系统,架构和版本。
sudo dpkg -i cuda-repo-cross-<identifier>_all.deb
#更新apt
sudo apt-get update
#安装跨平台CUDA工具包
##对于aarch64
sudo apt-get install cuda-cross-aarch64
##对于QNX
sudo apt-get install cuda-cross-qnx

安装CUDA-Toolkit后的环境设置

#当在64位系统使用runfile安装CUDA-Toolkit时
export PATH=/usr/local/cuda-12.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

高级设置

安装CUDA而不安装NVIDIA图形处理库:

#对于Fedora
sudo dnf install cuda-toolkit-12-0 nvidia-driver-cuda akmod-nvidia

参考链接

  1. CUDA Installation Guide for Microsoft Windows
  2. NVIDIA CUDA Installation Guide for Linux
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值