AI Coding 如何重构 ASIC 前端设计与验证:网页版演示文稿
一份关于 AI Agent、RTL 生成、验证闭环、EDA 工具反馈和 ASIC 前端工程交付的交互式网页演示。
Blog
记录芯片设计、科研复现、工具链配置和工程实践。
一份关于 AI Agent、RTL 生成、验证闭环、EDA 工具反馈和 ASIC 前端工程交付的交互式网页演示。
最后一课将把前面所有内容压缩成一套统一分析框架,并给出面向 GPU 架构与 RTL 设计的后续实践路线。
这一课从 RTL 设计角度搭建一颗最小可运行的 SIMT GPU。重点是模块边界、状态机和实现顺序,而不是一开始复制完整商用 GPU。
这一课是倒数第三课,重点解释“计算量更少”为什么不一定更快,以及不规则访存、原子冲突和负载不均衡为何会削弱 GPU 优势。
这一课讲 Transformer 中计算量最大的 MLP 模块,以及 GEMM Epilogue、GELU/SiLU/SwiGLU 融合和张量并行的数据流。
这一课讲 LayerNorm 与 RMSNorm;随后我会把课程收束到少数几个最必要章节,避免继续无限展开。
这一课把 Reduction 应用到 Softmax 和 Attention,并推导 FlashAttention 如何用分块与在线 Softmax 避免保存完整的 N x N 注意力矩阵。
这一课用 Reduction 实战串联原子操作、Shared Memory、分支发散、Warp Shuffle、向量化加载和多级归约。
这一课进入实际性能诊断:如何从 Nsight Compute 的报告中判断 Kernel 是计算受限、带宽受限,还是因为延迟与调度停顿而变慢。
这一课解释 CUDA 编译器如何从源代码生成更高效的 GPU 指令,以及这些优化怎样影响寄存器、分支、访存和 Occupancy。
前面讨论的是 GPU 硬件如何执行指令,但程序员通常写的是 CUDA C++:
这一课按时间线梳理 NVIDIA GPU 架构演进,重点不是背型号,而是看每一代解决了什么瓶颈。
这一课把前面的 SM、缓存、显存控制器和图形单元放回整块 GPU 中,学习如何阅读一张完整的 GPU 架构框图。
这一课转向 GPU 的图形起源,讲一幅三维场景如何经过顶点处理、光栅化、像素着色和深度测试,最终变成屏幕图像。
这一课进入多 GPU 系统,先讲 PCIe、NVLink、NVSwitch,再讲数据并行、张量并行、流水线并行和 AllReduce,最后用 GB200 NVL72 串起来。
这一课把调度层次串起来:从 CPU 提交 Kernel,到 Stream、Grid、Block,再到 SM 内部的 Warp 调度。
这一课讲 Block 如何进入 SM、哪些硬件资源限制并发度,以及 Occupancy 为什么只是性能指标之一。
这一课继续深入 GPU 的内存系统,重点解释一个 Warp 的访存请求如何变成 Cache Line、内存事务,并最终到达 GDDR 或 HBM。
这一课讲 Tensor Core 和低精度计算:先理解不同数值格式,再看 MMA 指令、混合精度累加,以及 Blackwell 中 Transformer Engine 的作用。
这一课把矩阵乘法继续推进到卷积,重点解释卷积的数据组织、常见映射方式,以及为什么不同卷积在 GPU 上效率差异很大。
这一课用矩阵乘法把前面学过的线程、Block、Shared Memory、寄存器和计算强度串联起来。
这一课建立 GPU 性能分析的核心框架:先判断程序受算力限制,还是受显存带宽限制。
这一课讲 GPU 中的数据依赖与数据冒险,重点区分“依赖本身”和“流水线造成的冲突”,并说明 Scoreboard、原子操作和内存屏障如何保证正确性。
这一课继续讲控制流:同一个 Warp 遇到 if/else、循环和提前退出时,硬件如何处理,以及分支发散为什么会降低效率。
这一部分进入 SM 内部,重点讲清楚 Warp Scheduler、发射、执行单元、Scoreboard 和流水线之间的关系。
这一部分讲 GPU 的存储层次,以及为什么同一个程序只是改变数据访问方式,性能就可能相差数倍。
下面继续讲 GPU 程序从启动到执行完成的全过程,重点理清 Kernel、Grid、Block、Warp、Thread 与 SM 的对应关系。
先从“GPU为什么存在”讲起,再逐步进入线程、SIMT、SM、Warp、存储层次和指令执行。先建立整体框架,不急着看具体英伟达架构。
我会用最基础的层次,把 Blackwell 的定位、核心改进和它解决什么问题讲清楚。
从 Linux 环境、版本管理、仿真验证到综合时序检查,整理一个可复用的数字 IC 学习与研究工具链。
记录神经网络算子从 Python 模型、定点化、接口定义到可综合 RTL 的工程拆解方法。
从处理器系统视角梳理 TCM、Cache 与 SRAM 的功能定位、访问特征和设计取舍。
整理 VCS 仿真的常用命令、编译运行分离、波形生成和回归脚本组织方式。
梳理 FPGA 上神经网络加速器的数据复用、流水线、片上缓存和 AXI 传输组织方式。
从 ISA 扩展、寄存器组织、矩阵乘数据通路和软件接口角度整理 RISC-V 矩阵处理器原型思路。