@zostaff: https://x.com/zostaff/status/2065069139341742588

X AI KOLs Timeline 新闻

摘要

本文介绍了成为GPU/CUDA工程师的最优AI增强路径,重点介绍了薪资范围以及推理优化专家日益增长的需求。文章提供了现实的时间表,并强调了利用AI工具加速学习的重要性。

https://t.co/MCAGg8XjMV
查看原文
查看缓存全文

缓存时间: 2026/06/12 06:55

路线图:如何成为AI领域的GPU/CUDA工程师

展望

2026年,NVIDIA软件工程师薪酬范围从IC1的17.6万美元到IC7的104万美元,中位总薪酬为39万美元(Levels.fyi)。推理优化专家——那些能让训练好的模型在同一GPU上运行速度快3倍的人——在NVIDIA的薪酬区间为20.5万-33.1万美元,在OpenAI则超过40万美元。这项技能很稀缺,需求并未放缓。而在2026年,通往这一技能的道路已发生实质性变化。

本文描绘了一条通过AI增强的最佳路径,通向软件领域最难、报酬最高的技术专长之一。AI工具现在可以为你的内核做分析,解释线程束级语义,并在一个下午带你理解一篇论文的实现。代价是:AI在CUDA方面的能力弱于Python,因为训练数据更少。有些序列仍需要数月独自实验,而其他序列则被真正缩短了。

视角:不是“如何在NVIDIA致富”,而是2026年学习一项困难且报酬丰厚的技术专长究竟是什么样子。

你需要首先看到的数字

按层级划分的真实薪酬

  • NVIDIA IC1(入门级):底薪约13-15万美元,总薪酬17.6万美元以上(Levels.fyi,2026年)
  • 中级GPU工程师:底薪14-17万美元,总薪酬通常为20-28万美元
  • NVIDIA/Google/Meta高级:总薪酬30-50万美元
  • 推理优化专家(稀缺技能):NVIDIA 20.5-33.1万美元,OpenAI 40万美元以上
  • 顶级公司主管及首席:50万-100万美元以上
  • NVIDIA IC7上限:总薪酬104万美元

一个重要提示:高额数字是总薪酬,股票占比很大,而非基本工资,且需要真正的资历。刚完成本路线图的初级人员,薪酬范围在13-18万美元。达到高额数字需要数年时间在真实系统上交付实际优化工作。

2026年发生了什么变化使这一点变得重要

  • LLM推理现在是行业中最大的GPU工作负载。每个AI实验室都需要能让模型运行更快的人。
  • 推理优化已成为一个独立的职位类别。OpenAI、Anthropic、NVIDIA、Meta都有专门的“模型推理工程师”或“性能工程师”招聘。
  • 训练栈已整合。PyTorch + Triton + CUDA是主导模式。2026年掌握这三项技能,相当于2005年掌握C++。
  • 新硬件(Hopper H100、Blackwell B200)的推出速度超过了人们学习使用它的速度。技能差距在扩大,而不是缩小。
  • 开源内核工作已成为真正的招聘渠道。合并到vLLM、PyTorch、FlashAttention、Liger-Kernel的PR会受到关注。

在AI繁荣三年后,这是少数几个合格工程师供应仍未满足需求的专长之一。市场在告诉你一些事情。大多数人没有进入这个领域的原因是,这条路确实比Web开发更难。AI现在让这条路对那些能快速吸收密集技术材料的人来说变得可行。

关于时间线的真实预期

本路线图假设你能很好地吸收密集技术信息,每周能投入20小时以上的专注工作,并且你会实际编写代码,而不是被动地看教程。满足这三个条件,以下是诚实的层级图:

  • 第一年:你能编写CUDA和Triton内核,使其工作并能自己分析。入门级GPU工程师职位开放。薪资范围13-18万美元。
  • 第2-3年:你能拿一个实际的生产内核,无需猜测就能识别瓶颈,并弥补大部分差距,接近硬件峰值吞吐量。中级。薪资范围18-28万美元。
  • 第4-7年:你能架构优化项目,撰写论文或发布他人使用的开源内核,领导计划。高级到主管。薪资范围30万-70万美元以上。

告诉你“一年成为生产级GPU工程师”的人,要么是在推销东西,要么是在谈论已经有多年底层系统编程背景的人。从零开始,在可达极限的边缘,第一层需要12个月。大多数人需要18个月。

好消息:没有博士门槛。NVIDIA、OpenAI和Anthropic从开源贡献记录中招聘。如果你在vLLM或PyTorch中合并过内核,不需要博士学位也能被关注。

阶梯

每一步都是前提条件。最大的错误是跳过第1步(硬件基础)直接跳到第4步(优化)。你可以在不理解屋顶模型的情况下编写一个能运行的内核,但无法优化它。

第1步:硬件基础(1-2个月)

从为什么存在GPU开始,而不是直接学CUDA。

学习内容:

CPU与GPU架构

  • SIMD与SIMT执行模型
  • 乱序执行与顺序执行
  • 为什么GPU在吞吐量上胜出,在延迟上失败
  • 分支预测(CPU)与线程束发散(GPU)
  • 现代计算中内存带宽是主要约束

现代硬件上的内存层次结构

  • L1、L2、L3缓存大小和访问延迟
  • DRAM带宽与缓存带宽(数量级差异)
  • HBM与GDDR内存(数据中心GPU与消费级)
  • 缓存行、伪共享、CPU端的NUMA
  • 为什么局部性重要:时间和空间

GPU执行层次结构

  • 线程、线程束(NVIDIA上32线程)、线程块、网格
  • 流多处理器(SM)以及线程块如何映射到SM
  • 线程束调度和“占用率”实际含义
  • 硬件差异:Ampere (A100) vs Hopper (H100) vs Blackwell (B200)
  • 张量核心:是什么以及何时激活

屋顶模型

  • 运算强度(每字节FLOPs)
  • 脊点:计算密集型变为内存密集型
  • 如何计算特定GPU的屋顶
  • 实际应用:无需分析就能知道优化是否有帮助

为什么这一层不可协商: 路线图中后续的每一个优化决策都会回到“我是计算密集型还是内存密集型?”如果你不能通过分析器跟踪和计算来回答这个问题,你就在猜测。猜测会浪费数周时间。

资源:

  • Hennessy和Patterson,《计算机架构》,GPU和并行章节
  • NVIDIA Hopper架构白皮书
  • NVIDIA Blackwell架构白皮书
  • roofmodel论文(短篇,值得读两遍)

实践:

  • 编写一个C程序进行数组操作,测量实际内存带宽
  • 与GPU的理论带宽比较
  • 为一个内核绘制简单的屋顶图

AI在此步骤的帮助:

  • 解释你不理解的白皮书部分。Hopper论文假设你知道什么是张量核心。Claude可以带你理解。
  • 生成适合你水平的练习题
  • 检查你屋顶计算的正确性

AI无法帮助的地方:

  • 建立关于内存层次结构的真实直觉。这来自于运行代码,观察其性能不佳,并找出原因。AI可以描述局部性,但无法让你感受到它。

第2步:CUDA基础(2-3个月)

现在学习CUDA本身。

学习内容:

CUDA编程模型

  • 内核启动语法:<<<>>>、动态共享内存大小、流
  • 线程索引:threadIdxblockIdxblockDimgridDim
  • 1D、2D、3D线程组织(各自适用场景)
  • 流和并发内核执行
  • 用于流间同步和计时的事件

CUDA中的内存层次结构

  • 全局内存:最大、最慢,数据存放位置
  • 共享内存:每块、快速,比全局内存快约100倍,但很小(48-228KB)
  • 寄存器:每线程、最快,有限(滥用会导致寄存器溢出)
  • 常量内存:只读,广播友好
  • 局部内存:名称误导,实际位于全局内存(溢出寄存器)
  • 纹理和表面内存(主要用于图形,偶尔在ML中有用)

同步

  • __syncthreads()及其实际作用
  • 线程束级原语:__shfl_sync__ballot_sync__any_sync
  • Cooperative Groups API(现代替代方案)
  • 原子操作:atomicAddatomicCAS,何时损害性能
  • 内存栅栏和获取-释放语义

合并和存储体冲突(两个新手杀手)

  • 合并与非合并的全局内存访问模式
  • 为什么一个坏模式可能导致32倍减速
  • 共享内存存储体冲突:32个存储体,2路、4路、32路冲突的原因
  • 如何使用ncu检测两者

现代工具

  • Nsight Systems (nsys):时间线分析:内核启动、内存拷贝、间隙
  • Nsight Compute (ncu):内核级分析:占用率、内存吞吐量、指令数
  • 如何阅读ncu的“rules”输出(它会告诉你哪里出问题)
  • 采样分析器与插桩分析器

关于工具的一个重要说明: nvprof已死。它几年前就被弃用,不支持现代GPU。如果教程告诉你使用nvprof,那是旧的。使用nsys和ncu。

资源:

  • 《Programming Massively Parallel Processors》(PMPP),Kirk和Hwu著。标准的CUDA教材。如果你只读一本书,就读这本。
  • GPU MODE(原名CUDA MODE),由PyTorch团队的Andreas Kopf和Mark Saroufim组织的读书小组。他们逐章讲解PMPP。有活跃的Discord社区。这目前最接近社区标准。
  • NVIDIA CUDA C++ Programming Guide - 官方完整文档,用作参考
  • GitHub上的NVIDIA CUDA samples

实践:

  • 向量加法内核(简单,但要写)
  • 朴素矩阵乘法
  • 用ncu分析,找出为什么慢,修复合并
  • 将你的结果与cuBLAS的相同操作比较

此步骤后的成果: 你能编写一个运行的内核,对其进行分析,并解释为什么快或慢。

AI的帮助:

  • 阅读nsys/ncu输出。粘贴分析跟踪,问“这告诉我瓶颈是什么”。
  • 用具体例子代替抽象概念解释线程束发散
  • 调试CUDA内核中的段错误(给定内核源码和错误时,AI在这方面确实不错)
  • 生成关于合并模式的渐进式难题

AI较弱的方面:

  • 提出非显而易见的优化。AI知道教科书模式,但不知道在你特定硬件和特定占用率下什么有效。
  • 针对最新GPU的硬件特定调优(Blackwell推出速度快于训练数据更新)

第3步:Triton与生产库(3-4个月)

这是大多数旧路线图遗漏的部分,现在也是最重要的步骤。机器学习中的大多数GPU工作不再是原始CUDA,而是Triton——OpenAI的语言,用于用类似Python的语法编写GPU内核。PyTorch 2.0在torch.compile下生成Triton内核。vLLM有一个Triton注意力后端,在H100上使用一个可移植内核即可达到FlashAttention-3性能的100.7%。如果你想在2026年从事ML推理或训练,Triton不是可选项。

学习内容:

Triton基础

  • @triton.jit装饰器和编译模型
  • tl.program_idtl.arangetl.loadtl.store
  • 块级与线程级思维(与CUDA不同的思维方式)
  • 用于边界条件的掩码(而不是显式边界检查)
  • 使用@triton.autotune自动调优
  • 何时使用BLOCK_SIZE常量与动态块大小

cuBLAS

  • gemm、gemv、batched gemm
  • 性能层次:cublasGemmEx > cublasSgemm > 朴素实现
  • 为什么你的自定义matmul很少能击败cuBLAS(以及何时会击败)
  • 工作空间管理

cuDNN

  • 卷积API(前向、反向滤波器、反向数据)
  • 算法选择(启发式与基准测试)
  • 张量描述符和布局(NCHW与NHWC)
  • 为什么2026年直接使用cuDNN很少见(PyTorch封装了一切)

TensorRT

  • ONNX作为输入格式
  • Builder、network、engine、context(生命周期)
  • INT8校准用于量化
  • 用于自定义算子的插件API
  • TensorRT何时胜出(生产部署)vs 何时失败(研究/训练)

CUTLASS

  • 层次化GEMM设计(块、线程束、线程块)
  • 何时使用CUTLASS vs cuBLAS(CUTLASS允许自定义尾声)
  • 3.x API和CuTe(新的张量抽象)
  • 融合尾声模式(matmul + bias + activation在单个内核中)

在Python中嵌入内核

  • PyTorch自定义算子API(torch.library
  • pybind11基础的C++/CUDA互操作
  • 使用setup.py与JIT编译编译扩展
  • 处理自定义反向传播的自动求导

2026年也值得了解的:

  • PyTorch中的FlexAttention - 用于自定义注意力掩码,无需编写CUDA
  • Liger-Kernel - 用于LLM训练的高效Triton内核,已在生产中使用
  • Helion - PyTorch团队的新DSL,比Triton更高级

不要浪费时间在:

  • 从头到尾阅读整个cuDNN文档。需要时参考即可。
  • 一个月内成为TensorRT专家。深坑,稍后再回来。

资源:

  • Triton官方教程 - 从此开始,它们非常优秀
  • NVIDIA深度学习库文档(cuDNN、TensorRT)
  • CUTLASS GitHub示例
  • nano-vLLM - 1200行代码,用Python和Triton重新实现了vLLM的核心。一个下午读完整个代码库,理解PagedAttention和连续批处理。

实践:

  • 在Triton中重写你的矩阵乘法,与你的CUDA版本和cuBLAS比较
  • 在Triton中编写一个融合内核(matmul + activation in one pass)
  • 拿一个ONNX模型,通过TensorRT运行,测量加速
  • 一个周末读完nano-vLLM,理解PagedAttention在内核级别的工作原理

成果: 你能为问题选择正确工具,而不是从头编写所有东西。

AI非常有帮助的地方:

  • 将CUDA翻译成Triton(模式映射,AI知道它们)
  • 解释块级操作在硬件级别实际做什么
  • 编写初次草稿Triton内核,然后你进行优化
  • 对照PyTorch eager模式参考检查你的内核

这大概是AI提供最大加速的步骤。Triton类似Python,AI在Python上很强,优化模式从CUDA文献中清晰映射过来。

第4步:深度优化(4-6个月)

这是变得困难的地方。这是区分工程师和仅仅了解CUDA的人的地方。

学习内容:

线程束级编程

  • 线程束洗牌指令:__shfl_sync__shfl_up__shfl_down__shfl_xor
  • 线程束级归约(替换共享内存+__syncthreads模式)
  • 线程束特化(同一个块中不同线程束做不同工作)
  • 线程束发散:代价以及如何在ncu中检测

占用率

  • 理论占用率与实现占用率
  • 误区:“更高占用率=更好性能”往往是错的
  • 寄存器压力及如何降低(-maxrregcount__launch_bounds__
  • 共享内存使用及其对占用率的影响
  • 何时低占用率实际上是最优的(通过ILP隐藏内存延迟)

张量核心(现代性能所在)

  • mma指令及其消耗的块(16x16x16、8x8x4等)
  • WMMA API与PTX级mma与CUTLASS抽象
  • FP16、BF16、TF32、FP8、FP4(Blackwell):各自适用时机
  • 为什么喂养张量核心需要特定的内存布局
  • 异步拷贝(Ampere+上的cp.async)用于隐藏内存延迟

归约模式

  • 共享内存中的树归约(经典)
  • 线程束洗牌归约(更快,无共享内存)
  • 块级与网格级归约
  • 并行前缀扫描(Blelloch与Hillis-Steele)
  • 用于不规则数据的分段归约

内核融合

  • 为什么融合重要:消除内存往返,而非计算
  • 垂直融合(操作链)与水平融合(并行操作)
  • 生产者-消费者模式和共享内存作为缓冲区
  • 为什么FlashAttention是融合的典型例子
  • 融合的局限性:何时损害占用率或寄存器使用

原子操作及其真实成本

  • atomicAdd硬件路径(L2与DRAM原子操作,取决于架构)
  • 争用:32个线程对同一地址做atomicAdd = 串行化
  • 直方图模式及如何避免全局原子操作
  • 全局原子操作前的线程束级聚合

FlashAttention值得仔细研究。 它是重新思考内存移动(而非增加计算)如何产生巨大加速的典型例子。阅读论文,然后阅读一个干净的实现。它将比一个月的教程教你更多关于实际优化的知识。

相似文章

@snowboat84: https://x.com/snowboat84/status/2061962883651731602

X AI KOLs Timeline

本文是AI工程全景系列的上篇,从历史角度梳理了GPU从游戏显卡到AI加速器的演化、CUDA的豪赌、谷歌TPU的独立路径,以及英伟达为何最终胜出,详细剖析了芯片、供应链、网络、电力等AI基础设施的底层逻辑。

推理的变革(阅读时长约 8 分钟)

TLDR AI

本文分析了 Cerebras 即将进行的 IPO,将其视为 AI 硬件领域“推理变革”的信号。文章指出,尽管 Nvidia 在基于 GPU 的训练领域占据主导地位,但为了支持推理工作负载,AI 算力的未来正变得越来越异构。

@Zephyr_hg: https://x.com/Zephyr_hg/status/2066457081738088882

X AI KOLs Timeline

这个帖子概述了预计到2027年将带来六位数薪资的五项AI技能:让AI了解你的工作、设计自动化工作流、将AI与实际工具集成、通过AI构建自定义工具,以及选择合适的AI模型。帖子指出,目前这些技能的核心在于正确设置Claude。

AI经济学 第二部分(11分钟阅读)

TLDR AI

本文分析了AI的经济学,聚焦于GPU资源的争夺战,将人类推理的尖峰负载与智能体连续工作负载进行对比,并认为当前基础设施是为人类使用而优化的,而非要求更高的智能体推理。