第二章 计算环境搭建
搭建AI药物发现管线,第一步就是搭环境。这事听着简单,但我在项目里见过太多同事卡在这一步——装完PyTorch跑不了GPU、CUDA版本不对、Python环境冲突……一折腾就是两天。说白了,环境搭不好,后面所有工作都是空中楼阁。
这一章我们就直奔主题,把Linux、Python、Anaconda、GPU驱动和CUDA一次性搞定。我会给出我常用的方案,也会讲讲踩过的坑。
Linux系统 — 选Ubuntu还是CentOS?
我个人习惯用Ubuntu 20.04 LTS或22.04 LTS。为什么?社区活跃、软件源新、NVIDIA驱动兼容性好。CentOS其实也行,但很多生物信息学工具对Ubuntu的支持更及时。
你可能会问:桌面版还是服务器版?如果你有GPU做训练,桌面版更方便调试,但服务器版更稳定。我会建议:
- 个人工作站:Ubuntu Desktop 22.04 LTS
- 集群/云端:Ubuntu Server 22.04 LTS(无图形界面,省资源)
系统装好后,先做三件事:
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential dkms -y
sudo apt install curl wget git vim -y
build-essential是编译工具链,dkms用于动态内核模块支持。嗯,这步必做,否则后面装驱动可能会报错。
Python与Anaconda — 环境管理是命脉
AI药物发现涉及多个项目,不同项目依赖的Python包版本可能完全不同。直接装系统Python?那会死得很惨。我强烈建议用Anaconda来隔离环境。
下载安装Anaconda:
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
bash Anaconda3-2024.10-1-Linux-x86_64.sh
安装过程中一路yes就行。注意最后会问是否初始化conda,选yes。然后刷新一下:
source ~/.bashrc
验证:
conda --version
我个人习惯创建一个基础环境叫drugai:
conda create -n drugai python=3.10
conda activate drugai
为什么用Python 3.10?因为PyTorch 2.x、TensorFlow 2.x、RDKit、DeepChem这些主流库,在3.10下兼容性最好。3.11有些库还没适配,3.9又太老。
| Python版本 | 推荐/不推荐 | 原因 |
|---|---|---|
| 3.9 | 可用,但偏旧 | 部分新库已停止支持 |
| 3.10 | 推荐 | 目前兼容性最广 |
| 3.11 | 谨慎 | TensorFlow、RDKit可能报错 |
| 3.12 | 不推荐 | 大量药物发现工具还未适配 |
GPU驱动与CUDA — 加速的基石
GPU是AI药物发现的命根子。没有GPU,做分子动力学模拟或深度学习训练会慢到怀疑人生。这里分三步走:装NVIDIA驱动、装CUDA Toolkit、验证。
第一步:NVIDIA驱动
先查你的显卡型号:
lspci | grep -i nvidia
我个人建议用官方NVIDIA驱动,不要用系统自带的nouveau开源驱动(性能差且不支持CUDA)。
添加NVIDIA官方PPA并安装驱动(以Ubuntu 22.04为例):
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-545
545是当前推荐版本,你也可以装更新的560或570,但545最稳。装完重启:
sudo reboot
重启后运行nvidia-smi,如果能看到GPU信息,驱动就装好了。我曾经在一台旧服务器上装驱动,内核版本太新导致dkms编译失败,最后手动降级内核才搞定。所以如果报错,先确认内核版本和驱动版本匹配。
第二步:CUDA Toolkit
驱动装好只完成了30%。CUDA Toolkit才是真正让你能调用GPU做计算的工具包。
去NVIDIA官网下载CUDA 12.1(推荐,与PyTorch兼容性好)。用runfile安装:
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run
sudo sh cuda_12.1.1_530.30.02_linux.run
安装时注意:
- 如果已经装了驱动,取消勾选“Driver”选项(只装Toolkit和Samples)
- 安装路径默认就好
安装完成后,配置环境变量:
echo 'export PATH=/usr/local/cuda-12.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
验证CUDA版本:
nvcc --version
看到Cuda compilation tools, release 12.1就对了。
nvidia-smi能看到的CUDA Version是驱动支持的最高版本,不是实际安装的Toolkit版本。千万别搞混。
第三步:验证GPU可用性
回到conda环境,装个PyTorch测试:
conda activate drugai
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
然后跑个简单脚本:
python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
如果输出True和你显卡的型号,恭喜——环境搭建完毕。
环境搭建核心流程
我把整个流程画成了脑图,方便你对照检查:
nvidia-smi 能显示GPU → 驱动OKnvcc --version 显示CUDA版本 → Toolkit OKpython -c "import torch; print(torch.cuda.is_available())" → PyTorch/GPU OK
避坑指南
最后分享几个我踩过的坑:
- 千万别装错驱动版本:如果装了太新的驱动(比如570),而CUDA 12.1需要530~545,可能不兼容。我曾经为了尝鲜装570,结果DCGAN训练直接崩,换回545才正常。
- conda环境名尽量用英文:有次我用中文名
药物计算,结果conda activate死活找不到,最后发现是编码问题。老老实实用drugai。 - CUDA安装路径别改:默认
/usr/local/cuda-12.1就行。有同事改成自定义路径,结果PyTorch编译时死活找不到库,折腾了半天。 - 多版本CUDA共存:如果你需要同时用不同CUDA版本(比如11.8和12.1),可以用软连接管理。我一般把
/usr/local/cuda链接到当前使用的版本,切换时更新链接就行。