从免费开始:Colab 的能力边界与付费云
学 GPU 的第一课不是付费,而是知道免费的边界在哪里、什么时候才值得花钱。
上一章你在 Colab 的免费 T4 上完成了体检。本章回答三个问题:免费能走到哪里(Colab 的能力边界)、不花钱能不能学 Kubernetes(假 GPU 实验场)、什么时候才需要付费云(以及付费后的止损纪律)。对大多数读者,前两步能覆盖学习的很长一段路;付费云不是入门门票,而是进阶工具。
Colab:一间免费的 GPU 实验室
先看清这间实验室的规格与租约:
| 维度 | 免费档 | Colab Pro(付费参考) |
|---|---|---|
| 典型 GPU | Tesla T4(16GB 显存) | 更容易拿到 L4 / A100 |
| 环境 | 驱动、CUDA、PyTorch 预装 | 同左,会话更长 |
| 连续会话 | 通常数小时,空闲十几分钟可能断开 | 通常 12–24 小时 |
| 是否保证分配 | 不保证(取决于负载) | 基本稳定 |
| 成本 | 零 | 月费制 |
T4 不是最快的卡,但它是仍在生产环境大量跑推理的数据中心卡,覆盖了 CUDA、显存、Tensor Core、NVML、MPS 等几乎所有单卡知识点。系统化地把它用成实验室,见GPU 实验室的十个免费实验。
Colab 的能力边界
免费不等于万能,边界要提前认清:
- 能学:CUDA 调用、显存行为、利用率与性能基线、NVML 监控、MPS 共享,以及一切“单卡上的软件实验”。
- 不能学:Docker(Colab 会话里没有可用的容器守护进程)、Kubernetes(没有集群控制面)、多卡与多机(免费档只有单卡)、长时间任务(会话即弃,断开即清空)。
这条边界正好切在本书的结构上:上手篇接下来的两章(GPU 容器、单机 Kubernetes)需要一块可以自由安装软件的 GPU。你有三个选择:本地有卡最好;没有卡,可以先把这两章当“可读的地图”再择机动手;或者按下节的办法,用假 GPU 零成本先把 Kubernetes 侧的概念练起来。
零成本学 Kubernetes:假 GPU 实验场
学 GPU 调度一定要真卡吗?不一定。GPU 实验室的 L0 关卡用 fake GPU(伪造的设备插件与资源)在普通笔记本上复现 Kubernetes 的资源上报、调度与分配证据链:nvidia.com/gpu 怎么出现在节点上、Pod 怎么排队拿到它、调度器留下了哪些证据。物理层当然是假的,但控制面的行为与真实集群完全一致,这正是本书数据平面与控制面两部分要教的内核。零成本路径由此闭环:单卡直觉用 Colab,调度治理用假 GPU。
什么时候付费:选卡、计费与止损
当你的需求越过免费边界(要装 Docker、要集群、要更大显存、要长会话),就该租云上的 GPU 了。付费之前先过三关。
第一关,按用途选卡。显存是硬约束(见显存管理),选卡第一步是估算显存需求,而不是比较 TFLOPS:
| 用途 | 显存底线(估算) | 典型卡 | 计费直觉(按需,仅供量级参考) |
|---|---|---|---|
| 学习、跑通流程 | 8–16 GiB | T4 / L4 | $0.5–1 /小时 |
| 7B 模型推理(bf16 权重约 14 GiB + KV Cache) | 16–24 GiB | A10 / L4 24G | $1 /小时左右 |
| 7B 模型 LoRA 微调 | 24–48 GiB | A10 24G 起步,A100 40G 从容 | $1–4 /小时 |
| 7B 全量微调(权重 + 梯度 + 优化器状态) | 80 GiB 或多卡 | A100 80G / 多卡 | $8 /小时以上 |
| 大规模预训练 | 数百 GiB,必须多机多卡 | H100/H800 集群 | $30 /卡/小时量级 |
各大云的入门级实例(AWS g4dn/g6、GCP g2、Azure NCasT4_v3、中国云厂商的 T4/A10 系)都提供自带驱动的“GPU 优化镜像”,开箱即得上一章基线卡的全部字段。两条经验:推理看显存与带宽,训练看显存与互连(见互连与集合通信);能用小卡验证的,不要用大卡陪跑,成本治理的系统方法见容量经济。
第二关,选计费模式。按需(无折扣、无风险)、竞价/抢占(通常省 50%–90%,但约两分钟通知后直接回收,训练必须周期性 checkpoint,其调度代价见PyTorch 训练)、包年包月(锁定资金,适合已验证负载)。
第三关,止损三件套,缺一不可:
- 预算告警:各云的预算提醒,阈值设在“意外但可承受”的金额。
- 标签治理:实验资源统一打标签(如
project=gpu-infra-lab),事故后能一键盘点与清理。 - 关机纪律:当次会话内关机;长期不用就销毁(terminate),不是停止(stop)。
动手实验:在免费 T4 上建立性能基线
实验目标
在 Colab 的免费 T4 上实测单精度算力,把上一章的“环境基线卡”补上最后一栏:实测 TFLOPS。这个数字是后续一切“调度是否引入了性能损失”的对照原点,而它的获取成本为零。
前置条件与成本预估
- 上一章的 Colab 环境(T4 GPU 运行时)。成本为零,约十分钟。
操作步骤
import torch, time
x = torch.randn(8192, 8192, device="cuda")
torch.cuda.synchronize(); t = time.time()
for _ in range(10):
y = x @ x
torch.cuda.synchronize()
dt = (time.time() - t) / 10
print(f"achieved TFLOPS: {2 * 8192**3 / dt / 1e12:.1f}")验证清单
- 输出为正值且多次运行波动不大(波动大说明有邻居干扰或功耗限制,本身也是有价值的观察)
- T4 的单精度峰值约 8 TFLOPS,实测达到其 50%–80% 属正常
- 把实测 TFLOPS 记入环境基线卡,注明“T4 @ Colab”
- 把这个脚本保存下来:换到任何新环境(租用的云实例、本地卡、MIG 切分)先跑它,立刻知道性能是否异常
原理速览
大矩阵乘法是算力屋顶线右端的负载(见Roofline 模型),它的实测值近似代表这块卡的可用峰值算力。后续章节验证共享与调度机制时,用同一脚本对比“独占”与“共享”下的数字,干扰与损失就不再是感觉,而是可计算的比值。
延伸练习(可选,约 $1):竞价实例全流程
需要练习付费云的读者,用一台竞价实例走完“查现货价 → 开机 → 体检 → terminate → 确认零残留”。以 AWS 为例:aws ec2 describe-spot-price-history 查价;选自带驱动的 Deep Learning AMI;run-instances 带 --instance-market-options '{"MarketType":"spot","SpotOptions":{"InstanceInterruptionBehavior":"terminate"}} 与 project=gpu-infra-lab 标签;用后 terminate-instances,再按标签确认无残留卷。完整命令以各云文档为准,重点是养成“terminate 之后必须验证资源清零”的肌肉记忆。
总结
免费路径比多数人以为的长得多:Colab 的免费 T4 覆盖单卡直觉与性能基线,假 GPU 实验场覆盖 Kubernetes 的调度证据链,两者加起来零成本。越过边界(Docker、集群、多卡、长会话)再付费,付费时按显存选卡、按风险选计费、用三件套止损。下一章用 Docker 运行 GPU 工作负载进入需要“可自由安装软件的 GPU”的领域:本地机器或按上一章纪律租用的实例都可以,先读后练也完全可行。