CUDA学习(踩坑)笔记-1.环境搭建
最近想学一点CUDA的知识,因此我会不定期在这里写一些文档,来记录我的学习过程,以供我后续的参考。
这是第一份笔记,我将在这里记录我是如何搭建CUDA环境的,以及远程连接我的电脑,做到随时学习、高效协作。
背景:为什么要搭建这样的环境
我暑假的时候给自己组装了一台台式机,里面有一张5070的显卡,我组装好之后放在了我的寝室里面。为了后续CUDA的学习以及Blender的高性能渲染,我决定使用寝室里面的电脑进行操作。因此需要一个远程控制的工具,还需要配置一个CUDA的开发环境。
你在什么情况下可以参考本篇文章
这篇文章可以对以下需求提供帮助,不仅限于CUDA环境的配置:
1.你需要用其他设备远程免费控制你的电脑,不管是什么用途,请参考本文一、一切的源头:虚拟局域网和远程桌面
2.你需要为你的设备组建虚拟局域网,请参考本文一、一切的源头:虚拟局域网和远程桌面
3.你需要安装WSL,并进行基本的设置,请参考本文二、安装Linux子系统
4.你需要在WSL中配置CUDA环境
5.你需要用其他设备通过SSH远程登录你的WSL(前置条件:你已经为你的设备组建好了虚拟局域网)
6.你需要在你的IDE中连接WSL,或者通过SSH连接到你的远程设备,利用远程的硬件环境进行远程开发
7.你需要远程为你的电脑开机(固定的台式机)
环境准备
首先,CUDA的开发环境我选择的是Ubuntu WSL(Windows上的Linux子系统),因为之前有CMake和Linux相关的经验,同时WSL方便随时与Windows进行通信,方便文件的管理,同时Linux相比于Windows我认为更加轻量。
远程控制软件,不推荐现在市面上主流的远控软件如UU远程、Todesk等,很不方便,同时还要钱。因此极力推荐Talescale,将被控设备和主控设备组入虚拟局域网,即可无限制带宽地连接。(我现在同时还在研究通过云服务器组建一个内网穿透,不知道是否可行,如果可以,后面会在本篇文章中进行更新)
想远程开机,需要买一个硬件,即一个智能插座,可以远程控制通电断电。
IDE,这里我选择的是Jetbrains下的Pycharm和CLion,我认为比VSCode要好上手一些,同时SSH连接也容易一些,但也踩了很多坑。
AI开发可能还需要Anaconda、Pytorch等。
一、一切的源头:虚拟局域网和远程桌面
没有这两个何谈远程控制!
1.搭建虚拟局域网:部署Tailscale
1.1 安装Tailscale
注意:你的主控设备、被控设备全部要安装Tailscale并登录同一账号,否则无法进行虚拟局域网的接入!
首先前往Tailscale的官方下载页面:https://tailscale.com/download,进行下载和安装。
安装好后,Tailscale可能会弹出下面的界面:

这时候需要登录,登录后,点击Connect,安装该软件的设备就会被添加到虚拟的局域网中。

如果你没有找到这个界面,表示它有可能藏到了系统托盘中,在托盘中找到它的图标,然后再登录就可以了。
Tailscale的管理后台在网页端,请保证所有要组建到虚拟局域网的设备登录的是同一账号。
1.2 Tailscale配置
1.2.1 防止重新登录的配置
在系统托盘中点击Tailscale图标→点击头像,选择Admin console...,就会打开网页端的管理后台。
在管理后台中,你会看到已经添加到你的虚拟局域网的所有设备,如下图:

点击上图中每个设备最右边的三个点,点击Disable key expiry,将key设置成永久,防止过段时间需要重新登录。如下图。

1.2.2 设置开机自启动
在系统托盘中点击Tailscale图标,点击Preferences→勾选Run unattended,可以设置开机自启动,如下图,这样可以防止远程将电脑打开后,Tailscale不启动导致无法接入虚拟局域网。

2.远程桌面的启用与连接
注意:在此之前,请保证你的主控设备和被控设备的Windows版本为专业版,否则无法使用Windows远程桌面连接(RDP),如果你的Windows是家庭版,请通过更改产品密钥的方式将版本更改为专业版,具体可参考互联网上的其他教程。
2.1 开启远程桌面

在被控端,请打开Windows设置,搜索远程桌面,打开远程桌面开关。否则被控端无法被控制!
2.2 改用本地账户
我在远程控制的时候,发现登录了微软账户并启用了Windows Hello的设备在远程控制时无法登录,因此我关闭了Windows Hello,同时将账户改为本地账户,就解决了上面的问题。如果你本来就是本地账户登录,可以忽略这一步。
在被控端,在Windows设置中选择:账户→你的信息→点击改用本地账户登录

请牢记你的用户名和设置的密码。

注销并完成后,你的电脑就开始使用本地账户了。这里建议删掉所有Windows Hello的登录选项。

2.3 开始远程桌面连接
请在开始菜单中搜索:远程桌面连接。
然后请保证被控端和主控端的Tailscale都在运行,在被控端系统托盘中点击Tailscale的图标,会显示This device:,后面的括号中是被控端在虚拟局域网中的IP地址,请在你的远程桌面的“计算机”输入框中输入被控端在虚拟局域网中的IP地址。


这时候会需要你输入凭据,如下图:

请输入你刚才设置的本地账户的用户名和密码。
此时会提示无法验证身份,直接忽略,勾选不再询问,并点击是。

然后就能成功连接被控端了。到此,虚拟局域网和远程桌面就搭建完成了!
二、安装Linux子系统
注意:在此之前,请保证你的主控设备和被控设备的Windows版本为专业版,否则无法使用WSL,如果你的Windows是家庭版,请通过更改产品密钥的方式将版本更改为专业版,具体可参考互联网上的其他教程。
1.启用WSL
请在Windows开始菜单中搜索“启用或关闭Windows功能”,勾选虚拟机平台、适用于Linux的Windows子系统、Windows虚拟机监控程序平台、Hyper-V(如果支持)。点击确定。

Windows10用户需要在启用后额外在Powershell中执行下面的命令:
wsl --set-default-version 2这样WSL就启用好了。
2.安装Ubuntu
推荐选择Ubuntu作为Linux发行版系统,可以直接在微软应用商店搜索Ubuntu,然后点击安装。安装完成后,点击打开,稍等一下初始化,然后会在终端窗口提示你设置用户名和密码,设置好后,即可进入系统。
为了节省C盘空间,可以将Ubuntu迁移到其他盘。点击设置→应用→安装的应用,点击三个点,选择移动,可移动到其他盘,如下图。

3.Ubuntu基础配置
打开Windows终端,点击标签页的下箭头,选择Ubuntu,即可进入Ubuntu终端。如下图:


3.1 更改国内软件源
微软商店默认安装的是Ubuntu最新LTS版,因此请在终端输入:
sudo nano /etc/apt/sources.list.d/ubuntu.sources输入你刚才设置的密码,然后进入编辑界面。
请将未注释的部分删掉,写入下面的内容:
Types: deb
URIs: https://mirrors.ustc.edu.cn/ubuntu/
Suites: resolute resolute-updates resolute-backports resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg替换为中科大的软件源。然后按下ctrl+O,再按下Enter即可保存。然后按下ctrl+X退出编辑界面。
然后在终端输入:
sudo apt update将软件源更新进行应用。
3.2 更新软件、安装必要的组件
在终端输入:
sudo apt upgrade -y将现有软件进行更新。
现在我们安装必要的包,建议安装cmake、gcc和/或clang(以及可选的build-essentials软件包)(这对后续的IDE配置有用)
在终端输入:
sudo apt install cmake gcc clang gdb build-essential到此,我们就基本配置好了Ubuntu子系统了。
三、Ubuntu CUDA的配置
注意:你的电脑需要有英伟达显卡。WSL中会内置英伟达显卡驱动。
1.CUDA的安装
首先请在Ubuntu终端输入下面的指令:
nvidia-smi来查看你的英伟达驱动版本,输出信息的右上角会显示CUDA Version,那个就是你的电脑支持的最高的CUDA版本,比如输出CUDA Version: 13.4,表示你可以安装CUDA 13.4及以下的版本。
应该选择什么CUDA版本呢?首先不太建议直接用指令“sudo apt install nvidia-cuda-toolkit”直接安装,因为这样可能会安装到较低版本的CUDA,影响到后续Pytorch的安装。建议先打开的Pytorch网站:pytorch.org,查看pytorch目前支持的最高的版本,然后再进行选择。
然后打开英伟达CUDA版本选择页面,选择合适的版本,然后选择Linux-WSL Ubuntu-deb(local)(如果没有WSL-Ubuntu的选项,可直接选择Ubuntu的安装版本),然后一条一条复制官网给出的网站,即可完成CUDA的安装。
这时候你如果在终端输入下面的指令:
nvcc -VUbuntu可能找不到刚才安装的CUDA,此时千万不能使用sudo apt install nvidia-cuda-toolkit命令,否则会重新安装CUDA!
现在的处理方式是,在终端中输入:
nano ~/.bashrc在文档末尾加入下面的字段:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin建议在Windows中打开Ubuntu的目录,打开路径/usr/local,看看文件夹下的CUDA文件夹名称,把上面的字段中的“cuda”替换成CUDA安装的文件夹名称,比如替换成cuda-13.2。结束后按下ctrl+O,按下Enter保存,再按下ctrl+X退出编辑界面。
随后在终端中输入:
source ~/.bashrc更新~/.bashrc文件,这时候再输入
nvcc -V即可看见nvcc的版本。
至此,CUDA的安装就结束了。

