由于是“学校的”高性能服务器,我没有root权限,只有一个“受限的”普通用户的权限。那么运行vLLM时就有很大的限制。
检查当前高性能服务器的配置
$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
cn up infinite 2 down* cn[15,21]
cn up infinite 4 mix cn[08-10,22]
cn up infinite 17 alloc cn[01-07,11-14,16,18-20,23-24]
cn up infinite 1 idle cn17
cn1 up infinite 5 mix cn[31,42,44-46]
cn1 up infinite 17 alloc cn[25-30,32-41,43]
fat up infinite 1 idle fat01
gpu2 up infinite 1 mix gpu02
gpu3 up infinite 1 mix gpu03
gpu4 up infinite 1 down* gpu05
gpu4 up infinite 1 mix gpu04
gpu5 up infinite 1 down* gpu06
gpu5 up infinite 1 mix gpu08
gpu6* up infinite 1 alloc gpu07
从名字上可以看出,与GPU相关,满足基本的运行大模型的条件,再执行指令
$ sinfo -o "%10n %10G %10t"
HOSTNAMES GRES STATE
cn15 (null) down*
cn21 (null) down*
cn08 (null) mix
cn09 (null) mix
cn10 (null) mix
cn22 (null) mix
cn01 (null) alloc
cn02 (null) alloc
cn03 (null) alloc
cn04 (null) alloc
cn05 (null) alloc
cn06 (null) alloc
cn07 (null) alloc
cn11 (null) alloc
cn12 (null) alloc
cn13 (null) alloc
cn14 (null) alloc
cn16 (null) alloc
cn18 (null) alloc
cn19 (null) alloc
cn20 (null) alloc
cn23 (null) alloc
cn24 (null) alloc
cn17 (null) idle
cn31 (null) mix
cn42 (null) mix
cn44 (null) mix
cn45 (null) mix
cn46 (null) mix
cn25 (null) alloc
cn26 (null) alloc
cn27 (null) alloc
cn28 (null) alloc
cn29 (null) alloc
cn30 (null) alloc
cn32 (null) alloc
cn33 (null) alloc
cn34 (null) alloc
cn35 (null) alloc
cn36 (null) alloc
cn37 (null) alloc
cn38 (null) alloc
cn39 (null) alloc
cn40 (null) alloc
cn41 (null) alloc
cn43 (null) alloc
fat01 (null) idle
gpu02 gpu:A40:2 mix
gpu03 gpu:A40:2 mix
gpu05 gpu:A30:4 down*
gpu04 gpu:A30:4 mix
gpu06 gpu:A100:8 down*
gpu08 gpu:A100:8 mix
gpu07 gpu:A100:2 alloc
末尾几台服务器上,分别有A40GPU、A30GPU、A100GPU卡,后面的数字是这个服务器上卡的数量。看最后面的数据 mix,就是有人在用,但你还可以进。ilde空闲。alloc的,满了,进不了。down关机了。
我们登录这个吧
gpu3 up infinite 1 mix gpu03
gpu03 gpu:A40:2 mix
执行如下指令,这条指令比较慢,系统要分配资源。
[000000@login01 ~]$ srun -w gpu03 -p gpu3 -n 1 --pty bash
srun: job 121467 queued and waiting for resources
srun: job 121467 has been allocated resources
[000000@gpu03 ~]$
到这里,已经登录到gpu03这个主机了。
接下来检查GPU
$ nvidia-smi
Sun Mar 9 23:12:00 2025
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01 Driver Version: 510.39.01 CUDA Version: 11.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 A40 Off | 00000000:35:00.0 Off | 0 |
| 0% 38C P0 75W / 300W | 28394MiB / 46068MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A40 Off | 00000000:9C:00.0 Off | 0 |
| 0% 33C P0 75W / 300W | 11647MiB / 46068MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1298 C python 777MiB |
| 0 N/A N/A 2907 C python 12325MiB |
| 0 N/A N/A 6616 C python 4033MiB |
| 0 N/A N/A 7951 C python3 6447MiB |
| 0 N/A N/A 11616 C python 777MiB |
| 0 N/A N/A 26603 C python 4033MiB |
| 1 N/A N/A 2907 C python 11645MiB |
+-----------------------------------------------------------------------------+
CUDA Version: 11.6
GPU内存,还剩一些。
里面有一些Python程序占用了一些GPU内存。
设置代理服务器
export HTTPS_PROXY=http://IP:端口
source .bashrc
安装 Miniconda3
下载 Miniconda3
官网
https://www.anaconda.com/docs/getting-started/miniconda/main
https://www.anaconda.com/docs/getting-started/miniconda/install#quickstart-install-instructions
清华镜像站:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
直接下载哪个最新的
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
注意名称:Miniconda3-latest-Linux-x86_64.sh
上载到服务器
通过SFTP软件上载,XFTP、MobaXTerm等
安装
设置国内源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
开始安装
$ sh Miniconda3-latest-Linux-x86_64.sh
Welcome to Miniconda3 py312_25.1.1-2
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
按照提示安装完毕
创建虚拟环境
初始化 Shell
conda init bash
[000000@gpu03 ~]$ source .bashrc
(base) [000000@gpu03 ~]$ ll
可以看到,提示前面添加了(base)。
设置Conda源
(base) [000000@gpu03 ~]$ vi miniconda3/.condarc
删除全部内存,添加如下内容(国内Conda源)
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- defaults
查看conda信息
conda info
创建虚拟环境
conda create --name vLLM python=3.11 -y
激活虚拟环境
(base) [000000@gpu03 ~]$ conda activate vLLM
(vLLM) [000000@gpu03 ~]$
注意,前面的(base) 变成了(vLLM)
安装PyTorch
由于当前的CUDA版本:CUDA Version: 11.6
下载PyTorch
打开
https://download.pytorch.org/whl/torch/
下载最新版,cu11.6, python版本 3.11
https://download.pytorch.org/whl/cu116/torch-1.13.1+cu116-cp311-cp311-linux_x86_64.whl
上载到服务器
安装
pip install torch-1.13.1+cu116-cp311-cp311-linux_x86_64.whl
安装vLLM
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip install vLLM