环境配置
配置一个可以使用Nvidia显卡的编程环境,由Linux环境直接配置或通过Windows wsl配置
Windows wsl
首先要检查 Windows 版本,wsl 需要用到 Hyper-V 但是家庭版和教育版中没有这个功能,具体更改版本可以参考这个非官方脚本
irm https://get.activated.win | iex 在确认版本之后在 启用或关闭Windows功能 查看 Hyper-V 选项是否开启:

在 Powershell 中 输入wsl 命令之后按照相关提示安装对应的Distro即可。
安装完成后输入wsl命令可直接进入对应的虚拟机, 可以查看 wsl 情况,可以看到我这里安装的是Ubuntu-22.04
PS C:\Users\20223> wsl --status
默认分发: Ubuntu-22.04
默认版本: 2wsl连接本机代理
在进入wsl2虚拟机之后,如果需要连接主机的代理需要使用DNS tunnel 技术,之前在wsl1中直接指定代理服务器的方法不可行, 具体操作方法如下:
-
在宿主机
C:/User/<your_username>目录下创建.wslconfig文件, 写入以下内容:[wsl2] autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true [experimental] autoMemoryReclaim=gradual sparseVhd=true -
重启 wsl 应用配置
wsl --shutdown关闭,wsl开机 -
同时,在上面的
.wslconfig文件中可以添加更多设置,具体内容参考Microsoft 文档[wsl2] # Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB memory=4GB # Sets the VM to use two virtual processors processors=2
开启 wsl NVIDIA cuda
继续对于 Ubuntu 22.04 来说, 可以安装以下组件开启, 参考Nvidia 官方文档
The NVIDIA Container Runtime (nvidia-container-runtime)
The NVIDIA Container Toolkit CLI (nvidia-ctk)
The NVIDIA CDI Hooks (nvidia-cdi-hook)
The NVIDIA Container Runtime Hook (nvidia-container-runtime-hook)
The NVIDIA Container CLI (nvidia-container-cli)
The NVIDIA Container Library (libnvidia-container1)使用的命令如下
配置repo
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list可选择开启实验性功能包
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list升级包 list
sudo apt-get update安装NVIDIA Container Toolkit packages (nvidia-ctk)
sudo apt-get install -y nvidia-container-toolkit配置 Docker
通过nvidia-ctk配置docker作为运行时,在这一步时会影响docker的配置文件/etc/docker/daemon.json,可能会覆盖之前配置的代理,可以在命令完成之后重新检查
sudo nvidia-ctk runtime configure --runtime=docker重启Docker Daemon
sudo systemctl restart docker其他 Podman 和 Containerd 的配置可以参考Nvidia 官方文档
看看效果!
通过docker运行一个 Ubuntu 容器,然后在容器里面运行nvidia-smi命令
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi如果输出结果是这样,那就大功告成了
$ sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
Sun May 18 15:02:02 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.51.02 Driver Version: 576.02 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| 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 3060 ... On | 00000000:01:00.0 On | N/A |
| N/A 37C P0 20W / 105W | 2022MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+Linux 环境
Linux 环境建议通过云部署,举例来讲对于AWS可以通过Terraform代码构建带显卡的EC2实例,参考的代码