作为一个 CS 或者相关专业的研究者,在新的机器上配环境是一个非常经常遇到的情况,并且往往这些步骤都是重复而不好记的(总不能背那些 bash 命令吧!)。尤其是当笔者在微软实习的过程中,由于 Azure 租的机器都有时限,在机器过期时我就要把工作环境迁到新的机器上,一些东西就要重新开始。虽然大部分时间我都是快速网上查一下就知道怎么干了,但是我感觉把一些东西记下来好像也方便一些。因此这是一个 Cheat Sheet 性质的博客,会贴一些常用的步骤和 bash 命令。
我会持续在这里更新,当我遇到一些我感觉有必要记录下来的配环境步骤时,我就会把它贴在这里。
配置 Github SSH
首先需要机器上安装了 git
和 ssh
。
- 第一步,配置用户名和邮箱:
1 | git config --global user.name "<your github username>" |
或者写在 .gitconfig
里。注意这里的邮箱会作为你 commit 里的信息,如果不是和你 Github 账号绑定的邮箱,应该不会算进你这个 Github 账号的 commit 数,同时头像会显示成白色的匿名头像。
- 第二步,生成
ssh
公私钥匙。
1 | ssh-keygen -t ed25519 -C "<your email address>" |
可以用 -t
参数指定加密方式,默认是 rsa
,个人比较推荐较短的 ed25519
。这里的 -C
参数是 comment 的意思,也就是让你给这个 key 一个注解,不一定要是邮箱。不过在这个场景下我们用邮箱作为 comment。
在生成时,一般会问你要不要设置密语(passphrase)。我比较懒,一般不设置(直接按回车跳过)。如果设置了,之后每次访问私钥都需要输一遍。
- 第三步,把公钥提交到 Github 上。
1 | cat ~/.ssh/id_ed25519.pub |
然后在 Github 网页端的 Setting - SSH / GPG Keys 里新建一个,把公钥贴过去就好。
搞完之后可以测试一下:
1 | ssh -T [email protected] |
配置深度学习环境
这里主要针对 N 卡用户。常用的深度学习环境的配置一般是 CUDA + PyTorch(Tensorflow 真不熟好吧)。不过为了让服务器好用一点,还需要配置一些比较边边角角的事情。
配置 Python 环境
一般来讲,我们会用 conda 包管理器(当然,还有很多别的,比如 pip、pdm、poetry 等等,但是 conda 的逻辑更适合科研人员一点),conda 的多环境可以方便地让我们在不同的 Python 版本以及对应的依赖之间切换。安装可以选择 Anaconda 或者 Miniconda,这边我推荐后者(更轻量化一点):
- Miniconda 安装:Link
注意,一般来说安装完你需要进行一次 conda init
,然后重启一次 shell。直到 bash 旁边出现 (base)
字样表示安装成功。
配置显卡驱动和 CUDA 环境
现在 CUDA 已经比较成熟了,只需要安装 Toolkit 就能配齐一整套东西,包括编译器 nvcc 等。关于 CUDA 的这些杂记有时间我大概会专开一篇来记录。
首先,先查看显卡驱动和 CUDA 版本对应关系:Link,通常是你需要什么版本的 CUDA(artifact 里写的) -> 你需要什么版本的驱动。如果你安装了显卡驱动,可以使用如下命令查看版本:
1 | nvidia-smi |
得到的结果一般长这样(在浏览器上看可能有点破碎)
1 | +---------------------------------------------------------------------------------------+ |
这里显示的 CUDA Version 指的是当前驱动支持的最高 CUDA 版本。
安装驱动,首先要卸载旧版驱动。可以通过包管理器进行:
1 | sudo apt-get remove --purge nvidia* |
也可以用二进制文件进行:
1 | # 一般在 /usr/bin 下 |
卸载之后需要 reboot 机器一次。
然后下一步是安装新版驱动,一般直接使用包管理器安装即可:
1 | sudo apt install nvidia-driver-530 # 530 是版本号 |
安装结束后使用 nvidia-smi
查看版本号即可。
关于 CUDA 安装,官网的链接有 CUDAToolkit 和 cuDNN。不过其实现在安装 PyTorch 时可以帮你带上 cudatoolkit 和 cudnn 等等东西的安装,所以也可以跳过。
配置 PyTorch
PyTorch 一般直接使用 conda 安装即可。在官网选好版本会有命令给你复制:Link
不过如果 CUDA 版本比较非主流,可以指定安装时的 index 地址。官方提供的 whl 目录在这:Link。具体变成命令就是:
1 | # 示例:安装 CUDA 12.1 的 torch |
如果你之前没安装 cuda toolkit 的话,
1 | conda install pytorch torchvision torchaudio cudatoolkit=12.1 -c pytorch |
(PS:现在似乎已经不用类似 CUDA_HOME
或者 CUDA_PATH
之类的环境变量了?不太确定)
安装完成之后可以检查一下版本是否对应:
1 | # 查看cuda (这里的cuda版本指的是编译torch时用的版本) |