1、准备

1.1、查看驱动

推荐550版本,如下图,切换驱动版本(当前是525,对CUDA版本支持有点低),同时查了下,官网的最新包是550.67,但是安装的时候提示一个错误,还是使用550.54。 查看下当前内核支持的驱动,如下图: 可以看到,CUDA版本已经支持到最新的12.4了。

查看了下开源的nouvean已经没被加载了,所以不需要禁用。

lsmod | grep nou
#无输出

然后到Pytorch官网看下,最新版本是2.2.1,CUDA可以支持到12.1。

1.2、下载

CUDA官网,看了下,12.1版本已经有更新1了,下载的CUDA Tools 12.1.1版本。

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run

再去下载个加速库cuDNN,也是去官网找下,最新的9.0.0。上个版本是8.9.7,本着稳定的考虑,下个8.9.7 for CUDA 12.x的版本。

2、安装CUDA和cuDNN

2.1、安装CUDA Tools

sudo sh ./cuda_12.1.1_530.30.02_linux.run

装的时候不需要选驱动,CUDA包中的驱动比较老。然后继续,安装完毕。

设置环境变量:

vi ~/.profile

#添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export PATH=$PATH:/usr/local/cuda/bin  
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

. .profile

查看安装结果:

2.2、安装cuDNN

sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-08A7D361-keyring.gpg /usr/share/keyrings/

sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64_12.x.deb                                    
(Reading database ... 349826 files and directories currently installed.)  
Preparing to unpack cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64_12.x.deb ...  
Unpacking cudnn-local-repo-ubuntu2204-8.9.7.29 (1.0-1) over (1.0-1) ...  
Setting up cudnn-local-repo-ubuntu2204-8.9.7.29 (1.0-1) ...

测试cuDNN安装结果

sudo apt install libcudnn8-samples
cp -r /usr/src/cudnn_samples_v8/ ~
cd ~/cudnn_samples_v8/mnistCUDNN/

sudo apt install libfreeimage3 libfreeimage-dev

make clean && make
./mnistCUDNN

xxx
xxx
Test passed!

3、安装Pytorch

准备conda创建环境并安装

conda activate llm_test

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
import torch
print(torch.cuda.is_available());
True

4、测试Pytorch

4.1、下载模型

以GPT-2为例,从huggingface下载: https://huggingface.co/uer/gpt2-chinese-poem/tree/main

如果网络不通,也可以从hf-mirror.com下载,使用一个python的下载工具:

git clone https://github.com/LetheSec/HuggingFace-Download-Accelerator.git
cd HuggingFace-Download-Accelerator

python hf_download.py --model uer/gpt2-chinese-poem --save_dir ./hf_hub

下载后放在缓存中:

用一个小程序进行验证:

from transformers import BertTokenizer, GPT2LMHeadModel,TextGenerationPipeline

tokenizer = BertTokenizer.from_pretrained("/home/longchun/.cache/huggingface/hub/models--uer--gpt2-chinese-poem")
model = GPT2LMHeadModel.from_pretrained("/home/longchun/.cache/huggingface/hub/models--uer--gpt2-chinese-poem")

text_generator = TextGenerationPipeline(model, tokenizer)

result = text_generator("[CLS] 无 尽 长 江 滚 滚 来 ,", max_length=50, do_sample=True)

print(result)

生成的结果: