1、 前言
CUDA是NVIDIA发明的并行计算平台和编程模型。它通过利用图形处理单元 (GPU) 的强大功能,大幅提高计算性能。
CUDA 在开发时考虑了几个设计目标:
为标准编程语言(如 C)提供一小组扩展,使并行算法的直接实现成为可能。使用 CUDA C/C++,程序员可以专注于算法的并行化任务,而不是将时间花在实现上。
支持异构计算,其中应用程序同时使用 CPU 和 GPU。应用程序的串行部分在 CPU 上运行,并行部分卸载到 GPU。因此,CUDA 可以逐步应用于现有应用程序。CPU 和 GPU 被视为具有自己的内存空间的独立设备。此配置还允许在 CPU 和 GPU 上同时进行计算,而不会争用内存资源。
支持 CUDA 的 GPU 有数百个内核,可以共同运行数千个计算线程。这些内核具有共享资源,包括寄存器文件和共享内存。片上共享内存允许在这些内核上运行的并行任务共享数据,而无需通过系统内存总线发送数据。
1.1 系统要求
- 支持 CUDA 的 GPU
- 受支持的 Linux 版本,带有 gcc 编译器和工具链
- NVIDIA CUDA 工具包https://developer.nvidia.com/cuda-downloads
cuda工具包有网络安装和离线安装两个方式,网络版的会自动选择适合本机的下载,适合网络环境好的时候使用,离线版包含了所有的内容,可以直接安装。
12.6版本的我已经下载好了,供大家下载https://share.feijipan.com/s/vkBu3qVE
2 安装
2.1 Windows安装
-
启动下载的安装程序包。
-
阅读并接受 EULA。
-
选择“下一步”以下载并安装所有组件。
-
下载完成后,安装将自动开始。
-
安装完成后,单击“下一步”以确认 Nsight Visual Studio Edition 安装摘要。
-
单击“关闭”以关闭安装程序。
至此已经安装完毕,使用win+R输入cmd打开命令提示符,输入nvcc -V
命令查看版本。
2.2 python安装
NVIDIA 提供了 Python Wheels,用于通过 pip 安装 CUDA,主要用于将 CUDA 与 Python 一起使用。这些包旨在供运行时使用,目前不包括开发人员工具(这些工具可以单独安装)。
请注意,使用这种安装方法时,CUDA 安装环境是通过 pip 管理的,在设置主机环境以在 pip 环境之外使用 CUDA 时必须格外小心。
- 首先升级wheel
py -m pip install --upgrade setuptools pip wheel
- 安装模块
py -m pip install nvidia-pyindex
如果在项目中使用文件requirements.txt
,则可以将以下行添加到文件中,作为安装包的替代方法:
--extra-index-url https://pypi.ngc.nvidia.com
- 程序
安装 CUDA 运行时包:
py -m pip install nvidia-cuda-runtime-cu12
(可选)使用以下命令安装下面列出的其他包:
py -m pip install nvidia-<library>
元包
以下元包将在 Windows 上安装指定 CUDA 版本的命名组件的最新版本。“CU12”应读作“CUDA12”。
- nvidia-cuda-runtime-cu12
- nvidia-cuda-cupti-cu12
- nvidia-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-nvml-dev-cu126
- nvidia-cuda-nvcc-cu126
- nvidia-cuda-runtime-cu126
- nvidia-cuda-cupti-cu126
- nvidia-cublas-cu126
- nvidia-cuda-sanitizer-api-cu126
- nvidia-nvtx-cu126
- nvidia-cuda-nvrtc-cu126
- nvidia-npp-cu126
- nvidia-cusparse-cu126
- nvidia-cusolver-cu126
- nvidia-curand-cu126
- nvidia-cufft-cu126
- nvidia-nvjpeg-cu126
2.3 Linux安装
Linux 上的 CUDA 可以使用 RPM、Debian、Runfile 或 Conda 包进行安装,具体取决于安装的平台。
2.3.1 Linux x86_64
用于在 x86_64 架构上进行开发。在某些情况下,x86_64系统可能充当面向其他体系结构的主机平台。
2.3.1.1 Redhat / CentOS
在 Redhat 或 CentOS 上安装 CUDA 时,可以在 Runfile Installer 和 RPM Installer 之间进行选择。Runfile 安装程序仅作为本地安装程序提供。RPM 安装程序既可以作为本地安装程序使用,也可以作为网络安装器使用。网络安装程序允许您仅下载所需的文件。本地安装程序是一个独立的安装程序,初始下载量很大。对于 RPM 安装程序,本地和网络变体的说明是相同的。安装指南
2.3.1.1.1. RPM 安装程序
- 按照 EPEL 网站上的说明安装 EPEL 以满足DKMS 依赖项。
- 启用可选存储库:
仅在 RHEL 8 Linux 上,执行以下步骤以启用可选存储库。
subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms
subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms
- 安装仓库元数据,清理 yum 缓存,然后安装 CUDA:
sudo rpm --install cuda-repo-<distro>-<version>.<architecture>.rpm
sudo rpm --erase gpg-pubkey-7fa2af80*
sudo yum clean expire-cache
sudo yum install cuda
- 重新启动系统以加载 NVIDIA 驱动程序:
sudo reboot
- 通过修改 和 变量来设置开发环境:
PATH
LD_LIBRARY_PATH
export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
2.3.1.1.2. 运行文件安装程序
- 禁用 Nouveau 驱动程序:
a. 在 创建一个包含以下内容的文件:/etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
b. 重新生成内核 initramfs:
sudo dracut --force
-
通过暂时在系统内核启动参数的末尾添加数字“3”和单词“nomodeset”来重新启动到运行级别 3。
-
静默运行安装程序以使用默认选择进行安装(意味着接受 EULA):
sudo sh cuda_<version>_linux.run --silent
- 创建一个 xorg.conf 文件以使用 NVIDIA GPU 进行显示:
sudo nvidia-xconfig
- 重新启动系统以加载图形界面:
sudo reboot
- 通过修改 PATH 和 LD_LIBRARY_PATH 变量来设置开发环境:
export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
2.3.1.2. Fedora
在 Fedora 上安装 CUDA 时,您可以在 Runfile Installer 和 RPM Installer 之间进行选择。Runfile 安装程序仅作为本地安装程序提供。RPM 安装程序既可以作为本地安装程序使用,也可以作为网络安装器使用。网络安装程序允许您仅下载所需的文件。本地安装程序是一个独立的安装程序,初始下载量很大。对于 RPM 安装程序,本地和网络变体的说明是相同的。
2.3.1.2.1. RPM 安装程序
- 安装 RPMFusion free 仓库以满足 Akmods 依赖项:
su -c 'dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm'
- 安装仓库元数据,清理 dnf 缓存,然后安装 CUDA:
sudo rpm --install cuda-repo-<distro>-<version>.<architecture>.rpm
sudo rpm --erase gpg-pubkey-7fa2af80*
sudo dnf clean expire-cache
sudo dnf install cuda
- 重新启动系统以加载 NVIDIA 驱动程序:
sudo reboot
- 通过修改 PATH 和 LD_LIBRARY_PATH 变量来设置开发环境:
export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
2.3.1.2.2. 运行文件安装程序
- 禁用 Nouveau 驱动程序:
a. 在 创建一个包含以下内容的文件:/usr/lib/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
b. 重新生成内核 initramfs:
sudo dracut --force
c. 运行以下命令:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
d. 重新启动系统:
sudo reboot
-
通过暂时在系统内核启动参数的末尾添加数字“3”和单词“nomodeset”来重新启动到运行级别 3。
-
静默运行安装程序以使用默认选择进行安装(意味着接受 EULA):
sudo sh cuda_<version>_linux.run --silent
- 创建一个 xorg.conf 文件以使用 NVIDIA GPU 进行显示:
sudo nvidia-xconfig
-
重新启动系统以加载图形界面。
-
通过修改 PATH 和 LD_LIBRARY_PATH 变量来设置开发环境:
export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
时间原因就先不写其他的系统了,具体可以到官方文档去查看。CUDA快速入门指南