(26) 附:Tech-Renaissance V4.20 的安装运行指南

——“一个人用AI如何写出比PyTorch更快的自研深度学习框架”系列文章之二十六

系列文章写到这里,已经覆盖了 Tech-Renaissance 从数据加载、静态图编译、内存规划、多流并发到混合精度训练的方方面面。但一篇好文章,最终还是要让读者能自己动手跑起来。这一篇是系列的附篇,专门为想亲自上手体验的读者准备一份零基础也能看懂的安装运行指南。

整个流程从创建 GPU 云服务器开始,到编译框架、跑通第一个 MLP 训练样例为止,全程不超过一个小时。即使你完全没有 Linux 使用经验,跟着步骤走也能成功。

一、创建 GPU 云服务器实例

这里以阿里云为例,其他云厂商步骤类似。

在阿里云官网选择 “产品 → 计算 → GPU 云服务器”

阿里云 GPU 云服务器

付费类型选 “抢占式实例”。抢占式实例是阿里云在有足额库存的前提下以竞价方式分配资源的模式,短期使用很划算,我们的示例每小时不到 3 元。地域选 “华东1(杭州)”,网络及可用区默认即可。

抢占式实例配置

架构选 “GPU-A10 加速”,然后选一个实例规格,比如 8 vCPU、1 × NVIDIA A10。单个 NVIDIA A10 显存 24 GB,对于普通 CNN 训练,batch size 不大的时候够用。实例使用时长选 “无确定使用时长”——选择这项后,成本下降到每小时 3 元以下。

GPU A10 实例规格

镜像选 “Ubuntu 24.04 64 位”“安装 GPU 驱动” 选项可不勾选,因为后面我们会自行安装合适的驱动。

Ubuntu 镜像选择

系统盘需要根据任务调整。如果只是跑个 MLP 测试样例,默认 40 GB 即可;如果要跑 ImageNet 的测试样例,建议 400 GB 以上,因为需要保存较大的数据集和解压空间。

公网 IP 必须勾选 “分配公网 IPv4”。带宽建议用 “按使用流量”,峰值调到 100 Mbps——带宽过低会显著延长镜像拉取时间,反而增加综合成本。安全组选 “新建安全组”,勾选 “SSH”、”RDP”、”ICMP”。登录凭证选 “自定义密码”

网络和安全组配置

开启实例后进入控制台。想在网页上直接操作就点击 “远程连接”;如果用 XShell 等远程连接软件,就复制公网 IP。

实例控制台

二、安装 GPU 驱动

GPU 驱动是让操作系统识别和使用 GPU 硬件的基础软件。我们推荐通过 NVIDIA 的 apt 仓库安装:

# 更新
sudo apt update && sudo apt upgrade -y

# APT 安装驱动
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y nvidia-driver-590

安装完后用 nvidia-smi 命令验证:

nvidia-smi 输出结果

可以看到驱动版本是 595.71.05。(注:nvidia-driver-590 是 NVIDIA apt 仓库中的驱动系列元包名,实际安装的版本可能随仓库更新而高于包名中的数字;只要 nvidia-smi 正常显示、驱动满足 Tech-Renaissance 对 CUDA 13.1 的最低要求,就说明驱动安装成功。)右上角显示 CUDA Version: 13.2。注意这里的 “CUDA Version: 13.2” 不是你已经安装了 CUDA 13.2,而是这个驱动最高可支持到 13.2。Tech-Renaissance V4.20 需要 CUDA 13.1,这个驱动完全够用。

注意:这里我们只安装了 GPU 驱动,没有安装 CUDA。原因是后面会采用 Docker 镜像,镜像里自带 CUDA 13.1 和各种必要的依赖

三、安装 Docker 并拉取镜像

Tech-Renaissance 采用容器化开发,用 Docker 可以确保环境一致,省去大量配置时间。

# 1. 安装依赖
sudo apt install ca-certificates curl gnupg -y

# 2. 添加阿里云 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 3. 添加阿里云 Docker 仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# 5. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 6. 将当前用户加入 docker 组
sudo usermod -aG docker $USER
newgrp docker

Docker 安装完成后,拉取镜像:

# 1. 登录到阿里云 ACR 的镜像仓库
docker login --username=[您的用户名] crpi-vbtd6yj00u83ugqk.cn-beijing.personal.cr.aliyuncs.com

# 2. 拉取镜像
docker pull crpi-vbtd6yj00u83ugqk.cn-beijing.personal.cr.aliyuncs.com/tech-renaissance/tr4:v4.20

拉取镜像可能是最耗时的一步,但阿里云服务器拉阿里云 ACR 镜像,5 GB 大小的镜像一般在 10 分钟内可以完成。拉取完成后,输入 docker images | grep renaissance,如果能看到 tr4:v4.20 镜像,大小约 5 GB,则表示拉取成功。

四、安装 NVIDIA Container Toolkit

有了 GPU 驱动和 Docker,还需要安装 NVIDIA Container Toolkit 才能让 Docker 容器使用 GPU。

1. 配置仓库:

# 添加 NVIDIA Container Toolkit 仓库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

2. 安装工具包:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

3. 配置 Docker:

# 让 Docker 使用 nvidia runtime
sudo nvidia-ctk runtime configure --runtime=docker

# 重启 Docker
sudo systemctl restart docker

至此,基本运行环境配置完成。

五、下载并编译 Tech-Renaissance 框架

首先是克隆项目。在中国大陆网络环境下,使用 Gitee 会更稳定:

# 克隆项目
mkdir -p /opt/tr4 && cd /opt/tr4
git clone https://gitee.com/tech-renaissance/renaissance.git

如果从 GitHub 拉取,则改为以下链接: https://github.com/tech-renaissance/renaissance.git

然后是启动容器。特别强调:一定要加 --gpus all,否则容器无法使用 GPU:

# 启动容器
docker pull crpi-vbtd6yj00u83ugqk.cn-beijing.personal.cr.aliyuncs.com/tech-renaissance/tr4:v4.20
docker run -d -it --name tr4-dev --gpus all --cap-add SYS_NICE -v /opt/tr4:/opt/tr4 -w /opt/tr4 \
    crpi-vbtd6yj00u83ugqk.cn-beijing.personal.cr.aliyuncs.com/tech-renaissance/tr4:v4.20 \
    tail -f /dev/null
docker exec -it tr4-dev bash

进入容器后,进行配置和编译。configure.py 是项目的配置脚本,会自动从当前环境中找齐各种依赖并生成编译脚本。配置过程中,问是否使用 GPU 选 Y 回车,问使用哪个 Python 选 1 回车:

# 配置
cd /opt/tr4/renaissance && python configure.py

# 编译
./build.sh

看到 [OK] Build completed successfully! 即表示编译成功。

六、运行第一个测试样例

编译成功后,直接运行 MLP MNIST 测试样例:

# 运行示例
/opt/tr4/renaissance/build/bin/tests/example/mlp_mnist

这个样例的功能是训练一个简单的 MLP 来识别 MNIST 手写数字。虽然模型简单,但准确率可达 99.4% 以上——对 MLP 来说,这是一个相当高的准确率。

MLP MNIST 运行结果

如上图所示,测试样例运行成功,用时 42.44 秒,准确率达到 99.43%,平均每个 epoch 仅 0.42 秒。即使我们刚才创建的实例搭配的是最廉价的CPU,依然得到了相当不错的训练速度。但同样的环境下如果用 PyTorch 执行相同的训练,则需要更长的时间。

你如果重跑一次,将会得到完全一致的结果。这是因为 Tech-Renaissance 满足可复现性要求——可复现性是深度学习框架的一个高级特性,确保给定相同的种子,每次运行得到完全相同的结果。要得到不同的结果,用 auto_seed() 即可。

小结

从创建云服务器到跑通第一个测试样例,整个流程在一个小时内可完成。这套安装流程有几个设计考量值得说一下:

  1. Docker 容器化:Docker 镜像里预装了 CUDA 13.1、cuDNN、TurboJPEG 等所有依赖,避免了手动配置 CUDA 环境的繁琐。用户只需要在宿主机上安装 GPU 驱动和 Docker 即可,这套组合在任何支持 Docker 的 Linux 机器上都能跑。
  2. configure.py 自动配置:框架的编译不是手写 CMake 参数,而是通过 configure.py 自动探测当前环境的 Python 版本、CUDA 路径、CPU 架构等,生成一键编译脚本。这对于降低上手门槛至关重要。
  3. 可复现性内建:从第一个测试样例开始,框架就默认启用确定性随机数,确保相同的 seed 产生相同的训练结果。这不仅是调试利器,也是科研可复现性的基础。

更多功能,请自由探索。项目完全开源,代码与文档均可在线获取:


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

ICP备案号:京ICP备2025133467号-1