实验室服务器新用户使用教程(用户篇)
实验室的小伙伴,请先填写在线表格,申请一个用户
预祝大家的深度学习之旅一切顺利!
1.连接远程服务器
提示
我们使用用户名 zzy
来做演示,请在下文中修改成你的用户名!用户名是你的名字缩写
打开VSCode
点击左下角的 打开远程窗口
(蓝色矩形区域)
选择连接到主机,输入
ssh zzy@10.162.32.65
选择 linux-继续-输入你的初始密码,完成登录
如果出现无法建立连接,请查看这篇博客 VSCode 连接不上远程服务器的解决方法
使用快捷键 Ctrl
+ ~
打开一个终端
2.修改初始密码
请先修改你的密码,使用:
passwd
出现:
zzy@user:~$ passwd
Changing password for zzy.
Current password: # 输入当前密码,回车确认
New password: # 输入新密码,回车确认
Retype new password: # 确认新密码,回车确认
passwd: password updated successfully
zzy@user:~$
修改成功
3.测试工作环境
重要
conda, cuda, cudnn 我已经为所有用户安装好了,你只需要测试一下能否正常使用即可
3.1 测试conda
使用 conda
命令查看能否正常使用
运行
conda
出现下面就是正常的
zzy@user:~$ conda
usage: conda [-h] [-v] [--no-plugins] [-V] COMMAND ...
conda is a tool for managing and deploying applications, environments and packages.
options:
-h, --help Show this help message and exit.
-v, --verbose Can be used multiple times. Once for detailed output, twice for INFO logging, thrice for DEBUG logging, four times for TRACE logging.
--no-plugins Disable all plugins that are not built into conda.
-V, --version Show the conda version number and exit.
commands:
The following built-in and plugins subcommands are available.
COMMAND
activate Activate a conda environment.
build Build conda packages from a conda recipe.
clean Remove unused packages and caches.
commands List all available conda subcommands (including those from plugins). Generally only used by tab-completion.
compare Compare packages between conda environments.
config Modify configuration values in .condarc.
content-trust Signing and verification tools for Conda
convert Convert pure Python packages to other platforms (a.k.a., subdirs).
create Create a new conda environment from a list of specified packages.
deactivate Deactivate the current active conda environment.
debug Debug the build or test phases of conda recipes.
develop Install a Python package in 'development mode'. Similar to `pip install --editable`.
doctor Display a health report for your environment.
export Export a given environment
index Update package index metadata files.
info Display information about current conda install.
init Initialize conda for shell interaction.
inspect Tools for inspecting conda packages.
install Install a list of packages into a specified conda environment.
list List installed packages in a conda environment.
metapackage Specialty tool for generating conda metapackage.
notices Retrieve latest channel notifications.
pack See `conda pack --help`.
package Create low-level conda packages. (EXPERIMENTAL)
remove (uninstall) Remove a list of packages from a specified conda environment.
rename Rename an existing environment.
render Expand a conda recipe into a platform-specific recipe.
repo See `conda repo --help`.
repoquery Advanced search for repodata.
run Run an executable in a conda environment.
search Search for packages and display associated information using the MatchSpec format.
server See `conda server --help`.
skeleton Generate boilerplate conda recipes.
token See `conda token --help`.
update (upgrade) Update conda packages to the latest compatible version.
zzy@user:~$
使用下面命令查看你的conda环境
conda env list
出现:
zzy@user:~$ conda env list
# conda environments:
#
base /home/user/anaconda3
zzy@user:~$
重要
请不要使用 base
环境
创建环境请使用下面命令,zzy_env
是你的环境名,后面可以指定你需要的 python
版本
conda create -n zzy_env python=3.9 -y
出现:
zzy@user:~$ conda create -n zzy_env python=3.9 -y
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/zzy/.conda/envs/zzy_env
added / updated specs:
- python=3.9
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2024.11.26 | h06a4308_0 131 KB
pip-24.2 | py39h06a4308_0 2.2 MB
python-3.9.21 | he870216_1 25.1 MB
setuptools-75.1.0 | py39h06a4308_0 1.7 MB
wheel-0.44.0 | py39h06a4308_0 108 KB
------------------------------------------------------------
Total: 29.2 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
ca-certificates pkgs/main/linux-64::ca-certificates-2024.11.26-h06a4308_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.40-h12ee557_0
libffi pkgs/main/linux-64::libffi-3.4.4-h6a678d5_1
libgcc-ng pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1
libgomp pkgs/main/linux-64::libgomp-11.2.0-h1234567_1
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1
ncurses pkgs/main/linux-64::ncurses-6.4-h6a678d5_0
openssl pkgs/main/linux-64::openssl-3.0.15-h5eee18b_0
pip pkgs/main/linux-64::pip-24.2-py39h06a4308_0
python pkgs/main/linux-64::python-3.9.21-he870216_1
readline pkgs/main/linux-64::readline-8.2-h5eee18b_0
setuptools pkgs/main/linux-64::setuptools-75.1.0-py39h06a4308_0
sqlite pkgs/main/linux-64::sqlite-3.45.3-h5eee18b_0
tk pkgs/main/linux-64::tk-8.6.14-h39e8969_0
tzdata pkgs/main/noarch::tzdata-2024b-h04d1e81_0
wheel pkgs/main/linux-64::wheel-0.44.0-py39h06a4308_0
xz pkgs/main/linux-64::xz-5.4.6-h5eee18b_1
zlib pkgs/main/linux-64::zlib-1.2.13-h5eee18b_1
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate zzy_env
#
# To deactivate an active environment, use
#
# $ conda deactivate
zzy@user:~$
查看当前环境
conda env list
出现下面所示,说明我们已经有一个自己的环境 zzy_env
,它位于 /home/zzy/.conda/envs/zzy_env
下
zzy@user:~$ conda env list
# conda environments:
#
base /home/user/anaconda3
zzy_env /home/zzy/.conda/envs/zzy_env
提示
你可以创建多个不同名称的环境,这些环境只有你可以使用
激活我们的 zzy_env
环境
conda activate zzy_env
出现 (zzy_env)
即进入成功
zzy@user:~$ conda activate zzy_env
(zzy_env) zzy@user:~$
可以使用下面的命令查看你当前环境都安装了什么
conda list
出现:
(zzy_env) zzy@user:~$ conda list
# packages in environment at /home/zzy/.conda/envs/zzy_env:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 5.1 1_gnu
ca-certificates 2024.11.26 h06a4308_0
ld_impl_linux-64 2.40 h12ee557_0
libffi 3.4.4 h6a678d5_1
libgcc-ng 11.2.0 h1234567_1
libgomp 11.2.0 h1234567_1
libstdcxx-ng 11.2.0 h1234567_1
ncurses 6.4 h6a678d5_0
openssl 3.0.15 h5eee18b_0
pip 24.2 py39h06a4308_0
python 3.9.21 he870216_1
readline 8.2 h5eee18b_0
setuptools 75.1.0 py39h06a4308_0
sqlite 3.45.3 h5eee18b_0
tk 8.6.14 h39e8969_0
tzdata 2024b h04d1e81_0
wheel 0.44.0 py39h06a4308_0
xz 5.4.6 h5eee18b_1
zlib 1.2.13 h5eee18b_1
(zzy_env) zzy@user:~$
3.2 测试 cuda
使用下面命令查看cuda版本,下载pytorch时请注意对应下载命令(可以低于11.8)
nvcc -V
可以看到,我们是cuda_11.8
(zzy_env) zzy@user:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
(zzy_env) zzy@user:~$
提示
下面只是举个例子,你可以不操作
比如,安装 Pytorch 命令可以参考Pytorch官网
conda install pytorch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 pytorch-cuda=11.8 -c pytorch -c nvidia
漫长的等待后,检查使用 cuda 的 Pytorch 是否安装成功
python -c "import torch; print(torch.cuda.is_available())"
输出:True
3.3 测试cudnn
输入下面命令:
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
出现:
(zzy_env) zzy@user:~$ cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 7
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
/* cannot use constexpr here since this is a C-only file */
(zzy_env) zzy@user:~$
4.存储路径
每个新用户都有两个文件夹可以使用,分别是 /home/zzy
和 /mnt/data/zzy
。
在日常使用中,你不需要打开 /home/zzy
文件夹,因为你的所有东西应该存放在 /mnt/data/zzy
路径下。
- 你的用户路径是
/home/zzy
(其他人无法访问你的文件夹,你也无法访问其他用户的文件夹)。
提示
/home
目录挂载在2t的固态硬盘下,为了避免占用系统盘,以及重装系统时这里的文件会丢失,请不要在这里存放重要文件!
- 你应该把你的代码和数据集放在
/mnt/data/zzy
(其他人无法访问你的文件夹,你也无法访问其他用户的文件夹),该路径是一个独属于你的空文件夹,你可以在这里放任何你想放的东西,泰裤辣!
提示
/mnt/data
目录挂载在8t的机械硬盘下。请把代码和数据集放在机械硬盘中!
我们只需要用到这两个文件夹,其他的文件夹你都没有权限的(不信你可以试试)。
4.1 /home/zzy
文件夹
这是系统给每个用户生成的默认用户目录
你可以使用下面两条命令的任何一条进入你的用户目录
cd /home/zzy
cd ~
使用ls查看你的文件夹
ls
出现:
zzy@user:~$ ls
zzy@user:~$ ls
什么也没有
4.2 /mnt/data/zzy
文件夹
提示
你的代码和数据集请放在对应的 /mnt/data/zzy
下
使用下面命令进入你的文件夹,并使用 ls
命令查看有什么
cd /mnt/data/zzy
这里什么都没有:
zzy@user:~$ cd /mnt/data/zzy
zzy@user:/mnt/data/zzy$ ls
zzy@user:/mnt/data/zzy$
5. 使用GPU
重要
请按照申请的型号使用 gpu,一共有 0, 1, 2, 3 四张卡
如果你的代码没有 gpu 设置,可以在你的主代码中加入下面 python 代码:
提示
如果变量名 args
不一样,把它修改成你代码中使用的变量名
# 解析 GPU 配置
str_ids = args.gpu.split(',') # 获取 GPU IDs(支持多个 GPU)
gpu_ids = [] # 用于存储有效的 GPU ID
for str_id in str_ids:
gid = int(str_id)
if gid >= 0: # 只有有效的 GPU ID(大于等于0)才会被添加
gpu_ids.append(gid)
# 设置 GPU 使用
if len(gpu_ids) > 0:
torch.cuda.set_device(gpu_ids[0]) # 设置当前使用的 GPU(如果有多个 GPU,默认先使用第一个)
print('-----------当前使用的gpu型号是: {}--------------'.format(gpu_ids)) # 打印使用的 GPU ID
在参数中添加 python 代码:
parser.add_argument('--gpu', default='0', type=str, help='gpu ids: e.g. 0 0,1,2 0,2') # 设置你申请的 GPU ID
6.其他命令
下面介绍一些常用的命令,知道可以跳过
退出当前conda环境
conda deactivate
(zzy_env) zzy@user:~$ conda deactivate
(base) zzy@user:~$ conda deactivate
zzy@user:~$
删除conda环境
conda env remove -n zzy_env
创建目录命令
mkdir test
zzy@user:/mnt/data/zzy$ mkdir test
zzy@user:/mnt/data/zzy$ ls
test
zzy@user:/mnt/data/zzy$
删除目录命令
rm -r test
zzy@user:/mnt/data/zzy$ rm -r test
zzy@user:/mnt/data/zzy$ ls
zzy@user:/mnt/data/zzy$
7.git的使用
查看git版本
git --version
出现:
user@user:~$
git version 2.34.1
user@user:~$
推送文件时出现:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: no email was given and auto-detection is disabled
2024-12-20 18:22:56.874 [info] > git config --get-all user.name [1ms]
2024-12-20 18:22:56.883 [info] > git config --get commit.template [3ms]
2024-12-20 18:22:56.883 [info] > git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) refs/heads/master refs/remotes/master [1ms]
2024-12-20 18:22:56.887 [warning] [Git][revParse] Unable to read file: ENOENT: no such file or directory, open '/mnt/data/zzy/ajohn-act/.git/refs/remotes/origin/master'
2024-12-20 18:22:56.888 [info] > git rev-parse refs/remotes/origin/master [1ms]
2024-12-20 18:22:56.895 [info] > git status -z -uall [4ms]
2024-12-20 18:22:56.896 [info] > git for-each-ref --sort -committerdate --format %(refname) %(objectname) %(*objectname) [2ms]
设置全局用户名和电子邮件:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
只为当前仓库设置用户名和电子邮件:
git config user.name "Your Name"
git config user.email "you@example.com"