环境搭建:CUDA Toolkit安装,cuDNN配置,Docker镜像构建,conda环境管理
做量化回测的GPU加速,第一步就是搭环境。
说实话,这一步劝退了很多人。我见过不少同事,算法写得漂亮,结果卡在环境配置上,一卡就是两三天。其实没那么玄乎,咱们一步步来。
CUDA Toolkit安装
CUDA Toolkit是NVIDIA的并行计算平台。说白了,它就是让GPU干活的“翻译官”。
我个人习惯先查一下显卡型号。打开终端,跑一句:
nvidia-smi
你会看到类似这样的输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.05 Driver Version: 525.85.05 CUDA Version: 12.0 |
+-----------------------------------------------------------------------------+
注意看右上角的CUDA Version。这个版本号决定了你能装什么版本的CUDA Toolkit。
下载地址在NVIDIA官网。选对操作系统和架构,我一般选runfile(local)方式安装。为什么?因为可以指定安装路径,方便管理。
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run
sudo sh cuda_12.0.0_525.60.13_linux.run
安装时记得取消勾选Driver(如果你已经装好了驱动)。只选Toolkit和Samples就行。
装完后配置环境变量:
export PATH=/usr/local/cuda-12.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH
验证一下:
nvcc --version
看到版本号就对了。
cuDNN配置
cuDNN是深度神经网络的加速库。做量化策略时,如果你用到了LSTM或Transformer模型,cuDNN能帮你省下大量训练时间。
下载cuDNN需要注册NVIDIA开发者账号。选跟CUDA Toolkit匹配的版本。
安装其实很简单——解压后复制文件:
tar -xzvf cudnn-linux-x86_64-8.9.0.131_cuda12-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-12.0/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-12.0/lib64
sudo chmod a+r /usr/local/cuda-12.0/include/cudnn*.h /usr/local/cuda-12.0/lib64/libcudnn*
验证cuDNN是否装好:
cat /usr/local/cuda-12.0/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
看到版本号就OK了。
Docker镜像构建
Docker是个好东西。你想想看,团队里每个人环境都不一样,有人用Ubuntu 20.04,有人用22.04,还有人用CentOS。用Docker,一次构建,到处运行。
我习惯用NVIDIA官方提供的CUDA镜像作为基础镜像:
FROM nvidia/cuda:12.0.0-cudnn8-devel-ubuntu22.04
RUN apt-get update && apt-get install -y \
python3.10 \
python3-pip \
git \
vim \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install --upgrade pip
WORKDIR /workspace
构建镜像:
docker build -t quant-gpu:1.0 .
运行容器时记得加--gpus参数:
docker run --gpus all -it --rm -v $(pwd):/workspace quant-gpu:1.0
Conda环境管理
Conda是Python环境管理的利器。做量化回测时,不同项目依赖的库版本可能冲突。比如项目A需要numpy 1.21,项目B需要numpy 1.24。用Conda可以完美隔离。
安装Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
创建量化回测专用环境:
conda create -n quant_gpu python=3.10
conda activate quant_gpu
安装常用库:
conda install numpy pandas scipy matplotlib
pip install backtrader pyfolio
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
验证GPU是否可用:
python -c "import torch; print(torch.cuda.is_available())"
输出True就对了。
知识体系总览
下面这张图帮你理清整个环境搭建的脉络:
环境搭好了,后面的事情就顺了。记住一个原则:版本匹配是王道。CUDA Toolkit、cuDNN、PyTorch、驱动,这四个东西的版本必须对齐。少一个不匹配,就可能白忙活半天。
📌 核心要点:
- 先查驱动版本,再装CUDA Toolkit
- cuDNN版本必须匹配CUDA版本
- Docker容器记得加--gpus参数
- Conda环境隔离不同项目的依赖
- PyTorch的CUDA版本要与系统一致
嗯,环境搭建就这些。别怕麻烦,一次配好,后面能省下大量时间。我刚开始做GPU加速时,光环境就折腾了两天。现在回想起来,其实就是版本匹配的问题。你按这个流程走,应该半小时就能搞定。