GPU 配置与云端:为训练密集的课备好算力


GPU 配置与云端:为训练密集的课备好算力

本节摘要:用 CPU 学习没问题,但真要训练模型,你得有 GPU。第 13 章的大多数课在 CPU 上跑得动;可一旦进入 CNN、Transformer、LLM(第 4 章及以后),GPU 加速就是刚需——一段在 CPU 上要 8 小时的训练,在 GPU 上只要 10 分钟。本节带你理清三条路:本地 NVIDIA GPU(零成本但要装 CUDA/cuDNN)、Google Colab 免费 T4(零配置适合快速实验)、云端租 GPU(Lambda、RunPod、Vast.ai,约 0.202.00 美元/小时)。我们会用 nvidia-smi 和 PyTorch 的 CUDA API 验证 GPU 是否就位,跑一遍 CPU vs GPU 的矩阵乘法基准测试看实际加速比,并用「fp16 每参数 2 字节」这条经验法则估算你的显存(VRAM)能塞下多大的模型。

对应原课程:Phase 00 · Lesson 03 · gpu-setup-and-cloud(原英文 phases/00-setup-and-tooling/03-gpu-setup-and-cloud/docs/en.md)。前置:第 01 节「开发环境」。

学习目标

阅读完本节,你应当能够:

  1. 用 nvidia-smi 与 PyTorch 的 CUDA API 验证本地 GPU 是否可用,并读出显存容量。
  2. 配置 Google Colab 的 T4 GPU 实例,跑零成本的云端实验。
  3. 在 CPU 与 GPU 上分别基准测试矩阵乘法,量化加速比。
  4. 用 fp16 经验法则(每参数约 2 字节)估算你的显存能装下的最大模型规模。

一、问题与直觉

第 1~3 章的多数课在 CPU 上跑得动。但开始训练 CNN、Transformer、LLM(第 4 章起)时,GPU 加速就成了刚需。一段 CPU 上 8 小时的训练,GPU 上只要 10 分钟——这不仅是「快一点」,而是「能跑」与「不能跑」的差别。

你有三条路可选:

你的选项: 1. 本地 NVIDIA GPU 成本: $0(你已经有了) 配置: 装 CUDA + cuDNN 最适合: 日常使用、大数据集训练 2. Google Colab(免费额度) 成本: $0 配置: 无需配置 最适合: 快速实验、家里没 GPU 3. 云端 GPU(Lambda、RunPod、Vast.ai) 成本: $0.20~2.00 / 小时 配置: SSH + 自行安装 最适合: 严肃训练、大模型 ​

💡 选型心法:短期/偶尔用 → Colab,长期/高频用 → 云端按小时,天天用且量大 → 自己买卡。这三条不是非此即彼,很多人是「本地小卡 + Colab + 偶尔租大卡」三件套。

二、从零实现

Option 1 本地 NVIDIA GPU

先确认你有卡:

nvidia-smi ​

输出里能看到 GPU 型号、驱动版本、显存占用。然后装好 CUDA 版的 PyTorch 并验证:

import torch print(torch.cuda.is_available()) # True 才说明 CUDA 通了 print(torch.version.cuda) if torch.cuda.is_available(): print(torch.cuda.get_device_name(0)) # GPU 型号 print(torch.cuda.get_device_properties(0).total_memory / 1e9, "GB") ​

⚠️ 设计警示:torch.cuda.is_available() 返回 False,九成是装的 PyTorch 是 CPU-only 版,或驱动版本太老。重装时务必带正确的 --index-url .../cuXXX(见第 01 节)。

Option 2 Google Colab

  1. 打开 colab.research.google.com。
  2. 「运行时 → 更改运行时类型 → T4 GPU」。
  3. 在一个 cell 里跑 !nvidia-smi 验证。

本课程的 notebook 可以直接传到 Colab 上跑。免费额度每天有数小时 GPU,够绝大多数学习用。

Option 3 云端 GPU

Lambda Labs、RunPod、Vast.ai 这类平台按小时租卡,SSH 上去就是一台带 GPU 的 Linux:

ssh user@your-gpu-instance pip install torch torchvision torchaudio python -c "import torch; print(torch.cuda.get_device_name(0))" ​

没有 GPU?不要紧

大多数课在 CPU 上能跑;少数必须用 GPU 的课,会在正文里明确说明并附上 Colab 链接。代码层面,写一段自动选设备的逻辑即可:

device = torch.device("cuda" if torch.cuda.is_available() else "cpu") print(f"Using: {device}") ​

这段代码会贯穿整本教程——所有 PyTorch 课都靠它适配「有卡/无卡」两种环境。

CPU vs GPU 基准测试

5000×5000 的随机矩阵乘法,分别在 CPU 与 GPU 上跑,比较耗时(见原课程 code/ 完整脚本):

import torch, time size = 5000 a_cpu = torch.randn(size, size) b_cpu = torch.randn(size, size) start = time.time() c_cpu = a_cpu @ b_cpu cpu_time = time.time() - start if torch.cuda.is_available(): a_gpu, b_gpu = a_cpu.to("cuda"), b_cpu.to("cuda") torch.cuda.synchronize() # 关键:GPU 异步,必须同步再计时 start = time.time() c_gpu = a_gpu @ b_gpu torch.cuda.synchronize() gpu_time = time.time() - start print(f"加速比: {cpu_time / gpu_time:.0f}x") ​

设计要点:计 GPU 时一定要 torch.cuda.synchronize()——CUDA 调用是异步的,不同步就直接读到错误的耗时。这是新手最常踩的坑,会让「GPU 看起来快 1000 倍」假象。真实加速比通常在 10~100 倍之间,取决于矩阵大小与卡型。

估算最大可装模型

经验法则:fp16 精度下,每个参数约占 2 字节。所以:

  • 7B 参数模型,纯权重就约 14 GB 显存。
  • 加上优化器状态、梯度、激活值,实际所需通常是权重的 2~4 倍。
  • 24 GB 的卡(如 RTX 4090)能勉强跑 7B 模型的推理与 QLoRA 微调,但完整训练就吃力。

三、框架对比:三种 GPU 路线的取舍

维度 本地 GPU Colab 免费 云端租卡
成本 已有则 $0,新买贵 | $0 $0.20~2.00/小时
配置门槛 高(装驱动/CUDA) 零 中(SSH + 装 Python)
适合 长期高频 偶尔实验 严肃训练
显存上限 取决于你的卡 T4 = 16 GB 可选到 80 GB+
数据隐私 全本地 上传 Google 取决于平台
断线影响 无 会话会断 看你买的是不是竞价实例

💡 Tensor Core(张量核心) 是 NVIDIA 卡里专门做矩阵乘的硬件单元,比普通核心快 4~8 倍。GPU 训练快,很大一部分功劳来自它——这也是为什么大模型训练几乎清一色用 fp16/bf16(张量核心在这些精度下吞吐最高)。

四、可复用产物

本节产出两个可复用件(原课程 outputs/ 与 code/):

  • device-picker 代码片段:那段 torch.device("cuda" if ... else "cpu") 的自动选设备逻辑,所有 PyTorch 课通用,建议放进自己的代码片段库。
  • gpu-benchmark.py:一段独立的 CPU/GPU 矩阵乘基准测试脚本,新机器或新卡到手时一跑就知道性能量级。

五、练习

  1. (Easy) 跑上面的 5000×5000 矩阵乘基准测试,记录 CPU 与 GPU 各自耗时与加速比;没有本地 GPU 的,改在 Colab 上跑。
  2. (Medium) 查你机器的显存容量,用「fp16 每参数 2 字节」法则估算能装下的最大模型参数量;再算上优化器状态与梯度(粗略乘 3 倍),给出实际可训练规模。
  3. (Hard) 在 Colab 上把矩阵大小从 1000 调到 10000,画一张「矩阵大小 vs GPU 加速比」的曲线,观察加速比在哪个区间随规模上升、在哪个区间被数据搬运开销抵消——体感 GPU 适合「大算量」的本质。

本节要点回顾

  1. CPU 学习够,GPU 训练刚需:第 4 章起的 CNN/Transformer/LLM,GPU 能把 8 小时训练压到 10 分钟。
  2. 三条路:本地 NVIDIA GPU(零成本但要装 CUDA)、Colab 免费 T4(零配置)、云端租卡($0.20~2/小时)。
  3. nvidia-smi + torch.cuda.is_available() 是验证 GPU 就位的标准两连。
  4. CUDA 是异步的:计 GPU 耗时必须 torch.cuda.synchronize(),否则读到假数据。
  5. fp16 每参数 2 字节:估算显存可装模型大小的经验法则;算实际训练还得乘 2~4 倍。
  6. 自动选设备:torch.device("cuda" if ... else "cpu") 这段代码贯穿全教程。
  7. Tensor Core 是 GPU 快的功臣:专门做矩阵乘的硬件单元,fp16/bf16 下吞吐最高。

下一节,我们将进入「API 与密钥」——把外部 LLM 与云服务的访问凭证安全地管起来,为调用 GPT、Claude 等模型做好准备。

作者与出处
原作者:Rohit Gupta
来源:rohitg00
许可证:MIT
整理人: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Rohit Gupta 转发
评论区 (0)
U