Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:cuda:环境配置

CUDA环境配置

当然你首先需要有张N卡


Linux

可以参考以下WSL的流程

Windows(WSL)

官方文档:CUDA on WSL User Guide https://docs.nvidia.com/cuda/wsl-user-guide/

  1. 首先安装WSL
  2. 然后安装Game Ready的驱动(就在Windows系统下正常安装即可,和WSL没有关系,这就是WSL的好处,驱动安装简单,Linux下装N卡驱动很麻烦)
  3. 之后就可以运行CUDA程序了,如果需要编译CUDA程序,还需要完成下述步骤(To compile new CUDA applications, a CUDA Toolkit for Linux x86 is needed.)
  4. 另外此时可以在WSL下查看是否可以识别到显卡了(nvidia-smi),正常输出如下
p5291@DESKTOP-1217V6I:~$ nvidia-smi
Sat Oct  5 17:38:10 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.31.01              Driver Version: 560.81         CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3050 ...    On  |   00000000:01:00.0 Off |                  N/A |
| N/A   44C    P0             12W /   75W |       0MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

接下来安装CUDA Toolkit

  1. 打开NVIDIA的CUDA下载页面(https://developer.nvidia.com/cuda-downloads,注意这个地址未来可能会变动,这里的不保证是最新的)
  2. 选择需要的版本,我这里使用的是target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_network
  3. 选好之后,下面就会列出安装命令,按照命令安装即可(现在从墙里出来了,不用担心网络问题了,执行网络安装最简单)
# 以下的命令只是举例,不保证时效性,安装的时候请参照最新的官方安装说明
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-6

安装完成后,检查nvcc是否可用

  1. 安装完成后,可能nvcc直接就是可用的状态,这样最好
  2. 如果找不到nvcc,可能是需要配置PATH,以我这里为例,我的CUDA被安装到了/usr/local/cuda-12.6/bin,把这个路径添加到PATH即可(参考Linux的环境变量
  3. 检查nvcc!
p7742@DESKTOP-1217V6I:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Sep_12_02:18:05_PDT_2024
Cuda compilation tools, release 12.6, V12.6.77
Build cuda_12.6.r12.6/compiler.34841621_0

可能遇到的问题

上述步骤执行完成之后,nvcc应该是可用的,但是在某些地方使用cuda仍然可能报错,比如taichi.init(arch=taichi.cuda),比如如下的报错:

# 报错类型1:找不到合适的设备
[Taichi] Starting on arch=cuda
[E 12/28/24 23:37:27.982 2773] [cuda_driver.h:operator()@92] CUDA Error CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected while calling init (cuInit)

# 报错类型2:找不到lib
[W 12/29/24 01:53:49.394 139] [cuda_driver.cpp:load_lib@36] libcuda.so lib not found.

上述两种错误,都可能是因为找不到libcuda.so而引起的,按照以下步骤解决:

# 首先我们尝试找到这个lib
> find /usr -name libcuda.so
/usr/lib/wsl/lib/libcuda.so
/usr/lib/x86_64-linux-gnu/libcuda.so
/usr/local/cuda-12.6/targets/x86_64-linux/lib/stubs/libcuda.so

# 把lib的路径添加到环境变量
export LD_LIBRARY_PATH="/usr/lib/wsl/lib:${LD_LIBRARY_PATH}"

在home下安装CUDA Toolkit

没有root权限,能否在自己的home下面安装CUDA Toolkit呢?
一般来说还是联系管理员更好,所有人都自己安装一遍浪费硬盘
技术上是否可行呢?TODO

原生Windows

直接下载官网的CUDA Toolkit安装包,好像就是普通的exe(安装后,直接就能在VS新建项目的地方看见CUDA项目了?)

安装多个版本(Linux)

root/sudo

如果你有管理员权限,首先在这里下载历史版本的CUDA:https://developer.nvidia.com/cuda-toolkit-archive
然后执行安装程序,将cuda-<version>安装到/usr/local/
然后使用链接管理多个版本的cuda(/usr/local/cuda → /usr/local/cuda-<version>),可以参照可替换命令
有一些环境变量可以设置,比如$CUDA_HOME(还有一些其他的环境变量)
应该有一些程序可以以类似[–cuda-path=xxx]的参数形式,手动指定cuda-toolkit的位置

普通用户

尝试将cuda安装到/home下,是否可行呢?[待验证]
思路:从官网下载离线版sh安装程序,以普通权限执行,修改安装位置,这样能否安装成功呢?

/var/www/DokuWikiStick/dokuwiki/data/pages/程序/cuda/环境配置.txt · Last modified: 2025/07/31 07:16 by zhonghui