
> 本节为原理课,偏硬件与生态,难度低、易理解。
> 实操中可能数月才用一次,但面对显卡选型、国产替代、公司技术讨论时无法回避,
> 对建立"AI 专家形象"价值很高,属于"必须知道"的知识。

一、简介英伟达
1.1 市值飞跃
- 2023-06:市值首次突破 1 万亿美元;此前长期是盈利尚可但不炸裂的普通上市公司。
- 2024-06-05:突破 3 万亿美元——一年时间体量翻三倍(对任何量级的公司都极难)。
- 2024-06-19:市值达 3.34 万亿美元,短暂超越微软成为全球市值第一。
1.2 财报:恐怖的净利率
- FY24/25:总营收约 1305 亿美元(同比 +114%),归母净利润约 728.8 亿美元(同比 +145%)。
- 净利率从早年的 20%~30% 提升到约 50%,在硬件公司中极为罕见。
- 横向对比:谷歌、苹果、微软年净利润也就大几百亿美元级别,英伟达已与之并肩且利润率更高。

1.3 历史抉择:回到 2006 年
2006 年前后英伟达连续约 10 年净利润仅个位数亿美元(4~5 亿/年),甚至 2008、2009 两年亏损。当时面临两个新增长方向的选择:

| 手机芯片 | |
| AI / 高性能科学计算 |
>补充:GPU 显卡领域当年主要是 NVIDIA 与 ATI 两家竞争,ATI 后被 AMD 收购。
1.4 转折点
- 2006 年,顶着巨大压力,当年立项、当年推出第一版 CUDA。
- 2012 年,Ilya(前 OpenAI 首席科学家)与其导师(诺奖得主 Hinton)及同学在英伟达显卡上训练出 AlexNet,在计算机视觉领域一飞冲天——业界才意识到"在 GPU 上做 AI"的潜力。
- 2006→2012 是英伟达最难熬的阶段:用户也抱怨显卡塞了大量玩游戏用不上的计算核心、价格虚高,销量一度不如 ATI。
二、GPU 的计算方式有何不同
2.1 CPU vs GPU 架构差异
> CPU 是电脑的中央处理器;GPU 是显卡上的计算核心,英伟达给它起了名字。

形象比喻:
- CPU 是少数"业务能力强的成年人",能处理复杂逻辑(启动软件、断点续传等)。
- GPU 是几千个"小学生",只会做加减乘除,无法独立完成复杂逻辑操作(连帮你打开微信点登录都做不到)。
关键结论:过去 PC 上几乎所有软件都基于 CPU 开发,基于 GPU 的极少(仅游戏能用上)。这正是 2006 年股东质疑"GPU 除了玩游戏还能干什么"的根源——黄仁勋的回答是"科学计算",但当时无法回答"怎么赚钱"。
三、CUDA 是什么
3.1 定义
CUDA = Compute Unified Device Architecture(统一计算设备架构)
- 英伟达推出的并行计算平台 + 编程模型,包含 CUDA 指令集架构(ISA)与 GPU 内部并行计算引擎。
- 让开发者能用 C 语言(早期仅 C/C++,CUDA 3.0 起支持 C++ 和 FORTRAN)为 GPU 编写通用计算程序。
有 CUDA 之前:
1. 在 GPU 上编程必须借助 OpenGL、Direct3D(DirectX),这些是为图形渲染(计算机图形学)而设计,而非通用计算。
2. 全球仅约几百人懂得如何利用 GPU 底层能力做科学计算。
CUDA 之后:极大降低门槛,可方便地把天气预测、核聚变、生物蛋白/分子模拟等科学计算搬到 GPU。CUDA 推出后逐渐成为深度学习框架(PyTorch/TensorFlow)、云 ML 服务、部署工具的底层核心。
3.2 案例一:图像逐像素相减(理解并行)
任务设定:一张 2 万 × 3 万 的图片,每像素是 0~255 的整数。计算"当前像素 − 下一个像素",结果存入 B 矩阵。

算图片大小:
- 像素总数 = 20000 × 30000 = 6 亿 个像素
- 每像素 0~255,是 8 位二进制 = 1 byte(字节)
- 6 亿像素 = 6 亿字节
- 单位换算:1KB = 1024 byte,1MB = 1024 KB,1GB = 1024 MB → 1GB = 1,073,741,824 bytes
- 600,000,000 / 1,073,741,824 ≈ 0.5588 G
- A 矩阵约 0.56G,结果 B 矩阵同样大小,两矩阵合计约 1 G
(需要储存计算后的结果,所以需要2个矩阵)
CPU 的计算方式(串行 / 分时):
- 图片加载到内存存为 A 矩阵,共 6 亿个任务,CPU 单核心串行计算。
- CPU 的"多任务"本质是分时计算(假并行):把 1 秒切成很多时间片,每片只处理一个任务。8 核 CPU 真正同时并行的只有 8 个任务,16 核则 16 个。软件开多了会卡,原因即此。(以前xp系统是5毫秒分片)
GPU 的计算方式(真并行):
1. 由 CPU 程序把图片加载到内存(A 矩阵)——GPU 无法独立做这类逻辑操作。
2. 把 A 矩阵从内存复制到显存,得到 A1 矩阵。
3. GPU 数千个核心并行计算 6 亿个任务,结果存入显存的 B1 矩阵。
4. 再由 CPU 把 B1 从显存复制回内存得到 B 矩阵。
> 此流程从 2006 年沿用至今未变。"显存"即显卡上的内存。
3.3 案例:以 RTX 4090 演示任务分配
RTX 4090 规格:24GB 显存,16,384 个 CUDA 计算核心(约两三万元一块)。
- 6 亿任务分给 16,384 核心 → 平均每核 36,621.0938 个任务
- 向上取整:每核 36,622 个;36,622 × 16,384 = 600,014,848(略多于 6 亿)
- 即最后一个核心不必做满 36,622 个,只需做 2 万多个
每个核心如何取属于自己的数据(CUDA 难点之一):
- CUDA 给每个核心一个编号,核心据此知道自己是"第几号小学生"。
- 把 6 亿像素平铺为长序列。注意:做减法需取"下一个像素",所以取数据要向后多取一个。
- 第 1 核:取前 36,623 个像素(做 36,622 个任务,多取 1 个)
- 第 2 核:从第 36,623 个起,到 36,622×2+1
- 第 i 核:取第 36,622×(i−1)+1 至 36,622×i+1 的像素值
>工程警示:取数下标差一位(36623 还是 36622)就会让某个线程取到别人的数据。这类错误往往不会导致系统崩溃,而是让模型"变得不准"且难以排查——可能整个训练全错。这正是早年算法工程师天天要算的工作。
另一种取数方式(更常用,尤其 CNN):不拉成长条,保持矩阵形态,用一个可平移的小方格(3×3、5×5、30×30、512×512 等)让每个核心取一个小块。需精确计算每核取哪块、取多大,否则数据重叠或核心忙闲不均。

>显卡利用率:业界能到 80% 已属优秀,95% 极牛。利用率低(如 50%)意味着一半卡常年闲置——既浪费又无法出租。提升利用率的关键就是把任务/数据分配算清楚,让所有核心活均、不取错。
3.4 案例二:自注意力机制如何用 CUDA 并行
设定:序列含 2048 个向量(上下文窗口 2048),任务是预测第 2049 个 token。计算资源 24GB 显存、16,384 核心。
步骤 1:QKV 映射任务
- 每个向量要做 3 次映射(Q、K、V),还要映射成 96 个头
- 映射任务总数 = 2048 × 3 × 96 = 589,824 个
- 各向量映射相互独立,可完全并行,分给 16,384 核心很容易

进一步拆解(100 张卡场景):
- 100 张 4090 共约 160 多万核心,而映射任务才 58 万——核心过剩,需再拆。
- 每个映射任务:输入 12,288 维向量(即 1×12288 矩阵)× (12288×128) 权重矩阵 → 128 维向量(该权重矩阵即 Wq 等神经网络)。
- 一次"1×12288 与 12288×128 相乘"可拆成 128 次向量点乘(两个万维向量点乘得 1 个数字)。
- 于是总任务数 = 589,824 × 128 ≈ 7000 多万 个点乘任务,正好可分给 160 多万核心。
步骤 2:相似度(相关度系数)计算
- 自注意力中,每两个 token 之间都要做一次相似度计算。
- 单个头内:2048 × 2048 ≈ 4,194,304 次相似度
- 96 个头共计:2048 × 2048 × 96 = 402,653,184(约 4 亿)次相似度
- 4 亿任务分给 100 张卡的 160 多万核心,也分得了。
> 至今很多做预训练的公司仍有专人天天做这种任务/数据拆分工作。但更难的往往不是核心分配,而是显存问题与新算子问题。
3.5 显存计算(以 GPT-3 / 175B 为例)
单层注意力的参数量:
- Wq、Wk、Wv 各为 12289×128,共 96 个头;再加输出矩阵 Wo(12289×12288)。
- 这四个矩阵合计 = 12289 × 12288 × 4 = 604,028,928 个参数(约 6 亿)。
- 每个参数为 32 位浮点数,占 4 byte → 2,416,115,712 字节 ≈ 2.25 G。
- 再加上 FFN 的 W1、W2(W1 尺寸 = Wq+Wk+Wv+Wo 之和),单层共约 6.75 G。
整模型:
- 96 层全部加载 = 6.75 × 96 ≈ 648 G
- 加上 embedding、linear 等其他层 ≈ 651 G

推理 vs 训练:
-推理:中间计算数据较少(GPT-3 约额外 10G)→ 满打满算约 670 G 显存。
-训练(全量参数微调等同训练):中间计算过程(如每个参数都要存梯度方向,梯度也是浮点数)大约是参数显存的 3 倍。所以训练 GPT-3 总需求 ≈ 651 G ×(1+3)≈ 2400~2600 G 显存。
>显存是瓶颈:用 24G 的卡,先算模型多少 G,再除以单卡显存即可估算所需卡数。
> 训练与推理的卡数通常差约 4 倍(推理 1 卡 → 训练约 4 卡)。
> 训练时间可拉长换卡数,但前提是单批训练数据 + 全部参数 + 中间结果必须能塞进显存。
>参数量单位提醒:B = 10 亿。7B = 70 亿参数(约 20 多 G 显存,单卡可跑);70B = 700 亿;175B = 1750 亿。
3.6 CUDA 之上的关键库与工具
为免去手写任务拆分/数据重组/结果重组的繁琐与易错,英伟达提供了一系列库:
| cuBLAS | ||
| cuDNN | ||
| NCCL | ||
| TensorRT | ||
| NVLink | ||
| NVSwitch |
>KV Cache 原理:推理时窗口滑动,相邻两次预测中约 2047 个 token 两两间的相似度是公共的,无需每次重算 96 层——缓存下来即可大幅提升推理效率。这类优化由英伟达"软(CUDA)+ 硬(GPU)结合"内置实现。
> 一台工作站通常插 8 张卡;超过 8 卡需跨工作站,传输与同步成为大规模(万卡)训练的最大瓶颈。
四、英伟达为什么这么不可替代
国产已有类 CUDA 框架:寒武纪 Cambricon Neuware、燧原 SWA、华为昇腾 CANN,且都支持 TensorFlow / PyTorch。但仍难替代,原因有五:
4.1 硬件技术差距(含光刻机)
- 被美国禁止对华出口:A100(7nm 制程,约 8~10 万元)、H100(4nm 制程,约 25~50 万元)。
- "纳米制程"指单位面积可容纳的晶体管数量,越小越强。
- 国产现状:14nm 没问题;7nm 能造但良品率不足(成本高、难量产,华为用多重曝光技术);5nm/3nm 尚未突破。
- 进口依赖:2023 年中国进口集成电路约 3493 亿美元(约 2 万亿人民币,超过原油进口的 3374 亿美元);出口约 1000 亿美元(以低端芯片为主)。
核心卡点:光刻机(ASML)
-ASML(荷兰公司)生产能造 7nm 以下制程的 EUV(极紫外光)光刻机,中国买不到。
- 工作原理:用激光击打锡(Sn)液滴产生极紫外光,再经特制镜面收集后打到硅板上"雕刻"芯片。
- 锡液滴直径约 1/3000 万米,真空环境每秒喷射约 5 万次,每颗被激光打两次(先升温、再爆炸发光)。
- 关键供应商:
- 德国 通快(Trumpf) 造激光生成器:散热需求催生磁悬浮轴承风扇**(每秒数千转、无物理摩擦)。
- 德国 蔡司(ZEISS) 造特制反射镜:堆叠数百层、每层几纳米,反射率与平整度极高(放大到德国国土面积,凹凸不超过 1 毫米)。
- 一台 EUV 光刻机约含 45 万个元器件,仅约 15% 由 ASML 自造,其余 85% 来自约 1000 多家供应商(各自研发某元器件十几到二十年)。整机售价约几十亿美元。
- 研发周期约 30 年(按欧洲工作节奏)。最早出资方是 Intel(Intel 认为芯片是好生意、光刻机投产比不划算,遂把技术与资金给了 ASML)。
> 讲者观点:中国虽落后约 10~15 年,但以中国工程师效率(10~15 年的活 3~5 年干完)+ 不按欧洲工时计,3~5 年突破有希望。
4.2 库和工具的成熟度
- CUDA 已发展 18 年(2006 至今),cuBLAS/cuDNN/NCCL/TensorRT/NVLink/NVSwitch 等全、稳定、易用,软硬件磨合多年,深度学习性能极佳。
- "有"和"好用"差距巨大:国产基本都"有"对应库,但与 18 年打磨的成熟度差很多。
典型案例:8 张 A100 打败一座超算中心
- 无锡某超算中心总算力远高于 8 张 A100,但在 GPT 类细粒度任务上败给后者。
- 原因在 NVLink:卡间任务调度可达 40 GB/s,且不经操作系统(直连内存控制器,甚至与 L2 直连),细粒度任务调度性能比传统分布式 IO 调度(约 10 万级)高约 5 个数量级。
- 即便 Llama 用一万多张 H100 训练,最易出问题的也是 NVLink 处的传输/同步,英伟达需派工程师与之一起逐个调算子。

4.3 庞大的开发者社区
- CUDA 生态全球约 400 万开发者,已使用十余年。
- 广泛的社区、教程、文档;开发中几乎任何问题都能找到成熟解决方案。
- 认证体系健全,全球已有数万名认证专家。
- 大量现成模块/代码可在英伟达 GPU 上直接运行;众多第三方模型/应用都基于英伟达生态。
> 讲者认为这是最难逾越的门槛:芯片可大力出奇迹突破,但 400 万人趟过所有坑的生态无法速成。同样 10 人团队,在英伟达生态可量化(3 个月能干什么很清楚),在全新生态可能"一年才干完一个月的活"。
4.4 TensorFlow 和 PyTorch 针对 CUDA 的深度优化
两大框架(均开源,发展近十年):
-TensorFlow:Google Brain 团队开发,2015 发布。可在 CPU/GPU/TPU 上运行。
-PyTorch:Facebook(Meta)AI Research 2016 发布,因动态计算图直观灵活而流行。
- 国产对应:百度 PaddlePaddle(飞桨)。
层层封装关系(自底向上):

> "封装 = 抽象":你双击打开软件无需直面操作系统底层指令,因为操作系统和软件做了封装。
两框架对 CUDA 的深度优化:
-自动检测 GPU:自动选择可用英伟达 GPU 并切换到 CUDA 后端。
-向量运算加速:利用 CUDA 核心做高效矩阵/向量化计算。
-自动微分:梯度计算(即求梯度,对应微积分的微分)由 CUDA 并行自动完成。
-深度集成 cuDNN/cuBLAS:加速矩阵运算、卷积层、RNN 层等。
-显存自动优化:减少碎片、提升利用率。
-多 GPU 并行优化:通过 NCCL 优化多卡/多节点通信。
-Tensor Core 加速:针对英伟达 GPU 专用矩阵运算硬件单元优化。
> TensorFlow 也支持 Google 自家 TPU 等其他芯片,但与英伟达的深度联合优化最多。国产芯片即便支持两框架,也很难获得这种 10 年以上的深度绑定优化。
4.5 稳健的企业发展
- 英伟达在 GPU 市场(尤其 AI 与高性能计算)占据巨大份额,供应链成熟,能长期稳定供货。
- 强大实力带来快速软硬件迭代,总能最先匹配市场需求(从大模型训练到单个算子支持)。
- 企业采购需考虑供应商存续性:买几十张卡是大投入,必须考虑厂商是否会突然消失(类比"威马"电动车厂商消失的风险)。
五、云解决方案的现状
5.1 GPU 算力的三种常见方案
| 1. 本地自建 GPU 机器 | ||
| 2. GPU 在线租赁 | ||
| 3. GPU 云服务 |
> 三种方案对应不同阶段,需按业务发展动态切换:种子用户期可租 → 全面上线用云服务 → 推理量/营收增大、训练频次提高后,自建可能又更划算。
5.2 LLM 是云计算的一种服务(行业共识)
做基座模型的公司,其提供的本质是云计算服务的一种(微软云、阿里云、腾讯云皆如此)。选云厂商与选大模型厂商应合在一起看。
5.3 传统云计算厂商体量(营收)
> 即便买不到 A100/H100,在这些云平台的某些方案里仍可租到 A100、H100。
5.4 选型视角与讲者观点
核心原则:先想清楚做的是什么生意(2C / 2B / 2G),再决定选什么云、在哪租卡、用谁家大模型。
- 中国 2B 市场中,信息化/数字化/IT 采购金额约 80% 来自正企客户(欧美不同)。做 2B 真正赚钱的多是正企客户方向。
- 公司技术系统部署在哪种云(华为云/天翼云等),就决定了符合相应保密级别的云选择。
讲者个人观点(2C 视角):看好阿里的整体战略与持续性——
- 阿里组合:传统云服务 + GPU 云服务 + Qwen(通义千问)开源模型。
- 阿里云已盈利,租其 GPU 做部署能带来额外收入,并反哺传统云(服务器与 GPU 同在阿里云、互相调用性能更好)。因此 Qwen 不必急于靠模型本身赚钱,其开源属性更有持续性。
- 对比:智谱 AI(GLM 系列,GLM-4 仅开源 9B 版本,更大版本转向按 token 收费)作为单独创业公司,开源商业模式跑通有难度,持续性不如阿里体系。
- 对比:Llama(Meta)虽开源、投入大(工程师数量近似 OpenAI),但母公司靠社交广告盈利、无自有云计算生态,开源持续性也不如阿里。
> 结论金句:"阿里是卖铲子,不是淘金"——有云计算生态做支撑,开源模型的持续性更值得信任。
> 另一现实约束:云服务一旦用上(Azure/AWS/阿里云),切换成本极高;模型同理,调好的版本不会轻易换。
学习要点速记
1.CPU vs GPU:CPU 少核强逻辑、串行(分时假并行);GPU 多核弱逻辑、真并行,只擅长简单运算。
2.CUDA:让 GPU 通用计算变简单的并行计算平台 + 编程模型,是英伟达生态的底层基石。
3.会算显存与卡数(最实用):参数量 × 4 byte → 单层 → 总层 → 推理(约 +10G)/训练(约 ×4)→ 除以单卡显存。推理与训练卡数约差 4 倍。
4.生态六件套:cuBLAS、cuDNN、NCCL、TensorRT、NVLink、NVSwitch。
5.封装层级:GPU → CUDA → TensorFlow/PyTorch → Hugging Face。
6.不可替代五因:硬件(光刻机)、库工具成熟度、开发者社区、框架深度优化、企业稳定性——其中生态门槛最难逾越。
7.云三方案:本地自建 / 在线租赁 / GPU 云服务,按阶段动态切换。
8.选型逻辑:先定生意类型(2C/2B/2G),再选云、卡、模型。
计算模型使用显存,模糊计算为(多少B)*(使用精度,1字节还是4字节)G,显存需要多少,内存也要比显存多,需要从内存传递到显存。
比如7B模型,16位精度需要显存 7*2=14G显存,推理可以使用8位的就只要7G显存啦,加上其他程序 也需要一点。
夜雨聆风