- 博客(217)
- 收藏
- 关注
原创 诚邀github开源书籍《AI在半导体晶圆厂的应用》contributer!!!
最近在编写一本开源书:《AI在半导体晶圆厂的应用》,写了第一版初稿,诚邀各路AI&半导体行业朋友作为contributer,学习之余补上这块空白。有兴趣的可以评论区留下邮箱or私我,拉你做contributer地址:https://github.com/BumbleBee-ZDS/Applications_of_AI_in_Semiconductor_Wafer_Fabs
2026-08-30 23:20:19
553
原创 【LLM推理与Serving⑦】主流推理框架对比:vLLM/TGI/TensorRT-LLM/SGLang/LMDeploy选型指南
系列文章索引:本系列从基础概念到工程实践,系统梳理LLM推理与Serving的核心知识。本文为第7篇,聚焦主流推理框架的横向对比与选型方法论。
2026-11-08 00:13:52
219
原创 【LLM推理与Serving⑥】Prefill/Decode解耦架构:让长prompt不再卡住短请求
Prefill是计算密集型的"批量任务",Decode是带宽密集型的"流式任务"。它们的资源瓶颈完全不同,调度目标也完全不同。把它们硬塞在一起,结果就是两边都做不好。在讲PD解耦之前,先提一下另一个缓解Prefill/Decode干扰的技术——Chunked Prefill(分块预填充)。把长prompt分成小块,一块一块地做prefill,中间穿插decode步骤。没有 Chunked Prefill:↑ 等了很久才开始 decode。
2026-11-08 00:13:34
302
原创 【LLM推理与Serving⑤】Prefix Cache前缀缓存:让重复prompt不再重复计算
vLLM是目前最流行的LLM推理框架之一,它的Prefix Cache功能叫做,也叫。
2026-11-07 00:39:17
449
原创 【LLM推理与Serving④】Speculative Decoding投机解码:打破自回归的一次只出一个token
大家好,我是你的AI Infra学习搭子。今天我们来聊一个在LLM推理优化领域非常有意思的技术——Speculative Decoding(投机解码)。如果你觉得大模型生成速度慢、一个字一个字往外蹦太煎熬,那这篇文章一定要看完,因为它讲的就是怎么让大模型"一次蹦好几个字"。
2026-11-07 00:39:08
310
原创 【LLM推理与Serving③】Continuous Batching动态批处理:让GPU永不空闲
乘客(请求)陆续来到车站等车上坐满了人(batch满了),或者等了一段时间超时了,车就开车开出去之后,中途不能上下客,必须所有人都到终点才能返程回来之后再装下一批乘客# 简化的Static Batching伪代码# 1. 收集一个batch的请求# 2. 一起跑,直到所有请求都生成完毕# 3. 返回结果听起来很合理对不对?但在LLM推理场景下,这种方式的效率其实很低。维度调度粒度请求(Request)迭代/TokenPadding浪费严重几乎没有拖尾效应严重无。
2026-11-06 02:04:42
359
原创 【LLM推理与Serving②】PagedAttention与KV Cache管理:vLLM核心技术深度解析
本文是「LLM推理与Serving」系列的第二篇。上一篇我们讲到KV Cache是LLM推理的显存大户,这一篇我们来看看vLLM是如何用PagedAttention这一"神技"解决KV Cache的显存浪费问题的。
2026-11-06 02:04:25
420
原创 【LLM推理与Serving①】LLM推理基础:从Prefill/Decode到KV Cache与性能指标全解析
本文是「LLM推理与Serving」系列的第一篇,带你从零理解大语言模型推理的完整流程、核心概念与性能指标。无论你是AI初学者还是有一定经验的工程师,都能从中收获干货。
2026-11-05 00:02:17
440
原创 【Runtime推理引擎⑥】Runtime特性开发实战:从IO契约到多租户隔离的正确顺序
第1步:Auto IO Info → 建立契约,先保证"说得清、查得到、错得了"第2步:Memory Pool → 资源可控,为后续优化打基础第3步:CUDA Graph → 性能优化,但要有fallback兜底第4步:多流并发 → 进一步榨干GPU第5步:Dynamic Batch → 提升吞吐和并发第6步:groupContext → 多租户隔离,支持多业务共线第7步:稳定性保障 → watchdog、异常注入、回收审计、soak test为什么是这个顺序?
2026-11-05 00:02:06
397
原创 【Runtime推理引擎⑤】动态Batch Scheduler:吞吐、延迟与公平的三角平衡
本文是「Runtime推理引擎」系列的第五篇。很多人以为动态Batch就是"把请求凑成一批一起跑",这只说了皮毛。真正的动态Batch Scheduler是整个推理引擎的"大脑"——它决定哪些请求同批、何时发射、谁先谁后、显存不够时谁让谁。今天我们就来拆解这个三角平衡的艺术:吞吐要高、延迟要低、还要公平。
2026-11-04 00:41:14
339
原创 决策模型部署实战:Laya System-1 与 d3-edge 的接口契约、9 个坑与 9 组可复现基准
在客服工单分流、发票处理、安全告警定级这类场景里,我们要的其实不是"一段话",而是一组带概率的判断这单该给哪个团队?(三选一)用户愤怒程度几分?(0–3 有序)用户是否明确要求退款?(是/否)延迟不可控:逐 token 生成,输出越长越慢,还受 beam/sampling 影响;格式要兜底:JSON 解析失败、字段缺失、枚举值幻觉,得写重试和修复逻辑;没有校准概率:模型说"很可能是退款",你拿不到一个能卡阈值的数字。非自回归 + 一次前向。它把所有问题的候选概率一次性算出来,
2026-11-04 00:41:03
564
原创 【Runtime推理引擎④】多流并发执行:用Stream+Event让计算与通信重叠
本系列是推理引擎 Runtime 模块的深度拆解,面向对 LLM 推理系统感兴趣的开发者。上一篇我们聊了 CUDA Graph 如何消除 Kernel Launch 开销,今天来看看多流并发怎么让 GPU"不闲着"。
2026-11-03 00:00:46
457
原创 【Runtime推理引擎③】CUDA Graph:把Kernel Launch开销降到最低
本系列是推理引擎 Runtime 模块的深度拆解,面向对 LLM 推理系统感兴趣的开发者。前两篇我们聊了算子融合与内存管理,今天来聊聊另一个"不起眼但影响巨大"的优化手段——CUDA Graph。
2026-11-03 00:00:33
440
原创 【Runtime推理引擎②】内存池设计:Arena、Size-Class与显存碎片治理
在推理的热路径(也就是每一步推理都会执行的代码路径)上,绝对不能直接调用cudaMalloccudaFree。内存池就是为了解决这个问题而生的——提前申请一大块显存,然后自己管理分配和释放,把开销从"微秒级"降到"纳秒级"。字面意思:零次拷贝。就是说,数据从产生到消费,中间不经过额外的内存拷贝。举个例子:A 算子的输出要作为 B 算子的输入。A 算子把结果写到 output_buf → 把 output_buf 拷贝到 B 的 input_buf → B 算子从 input_buf 读。
2026-11-02 00:46:34
389
原创 MiniCPM-OCR 1.0发票检测实战:跑通 + 旋转鲁棒性实测
环境:Ubuntu 26.04 / GTX 1050 Ti 4GB / Ollama 0.40.13 / Python 3.12结论先说:模型能用、速度够快(热态 3 秒一张小图,13 秒一张发票),但它图片一旦被旋转 90°/180°,识别结果会"看起来正常、实际全错"。文末给了自动纠偏方案。
2026-11-02 00:46:12
947
原创 【Runtime推理引擎①】Runtime架构设计:从Session到Graph Executor的完整骨架
出生:某个节点的输出产生了这个 Tensor活跃期:被后续若干个节点作为输入使用死亡:最后一个使用它的节点执行完毕,之后再也没人用了。
2026-11-01 00:01:20
436
原创 【AI编译器入门⑨】编译耗时优化:从8小时到2小时——三个真实案例教你定位与加速
做AI编译器的,最怕的不是推理性能不够,而是编译太慢。推理慢了,至少能跑;编译慢了,连产物都出不来——开发调试全卡住。算子多、子图多 → 编译任务多常量多、权重大 → 编译内存高控制流复杂 → 编译优化阶段慢一个模型编译8小时、10小时是家常便饭。如果有30个aom并行编译,机器资源不够的话,一天都编不完。今天我们不讲理论,讲实战——用三个真实案例,看看编译慢到底是什么原因导致的,以及怎么优化。
2026-11-01 00:01:01
191
原创 【AI编译器入门⑧】Relay到Relax迁移实战:Pass改写、call_tir与后端适配
TVM社区的方向很明确——从Relay迁移到Relax是大势所趋。为什么?动态shape:大模型推理的batch和sequence length都是动态的,Relay对动态shape支持弱(要靠bucket或VM)控制流:循环decode、条件分支等,Relay表达能力有限MoE架构:动态路由、专家选择、可变token数——这些都是Relay不擅长的大模型工程化:Relay的函数式IR + 隐式lower,对于大模型的分层优化不够灵活Relax就是为了解决这些问题而生的。
2026-10-31 00:21:51
453
原创 【AI编译器入门⑦】Laser编译框架:多平台自动化部署与HPC Plugin机制
TVM已经是一个很成熟的AI编译器了,为什么还需要Laser?因为TVM是"引擎",不是"整车"。车身(配置管理系统)方向盘(多后端选择器)仪表盘(编译报告系统)生产线(CI/CD集成)售后(版本管理和产物管理)直接用TVM API写编译脚本,小项目没问题。支持N个模型 × M个平台 × K种配置自动化编译、自动出包、自动回归测试统一的配置、统一的产物格式、统一的版本管理那就需要一个框架把这些都串起来——Laser就是干这个的。Laser的核心价值:一份模型,多平台同出。
2026-10-31 00:21:39
418
原创 【AI编译器入门⑥】端到端编译流程实战:ONNX → TVM → TensorRT全链路
它们是怎么配合的?实际项目中完整的编译流程是什么样的?onnx-simplifier为什么要先跑一遍?中端Pass的顺序为什么要这样排?TensorRT partition和CUTLASS partition有什么不同?动态batch怎么支持?今天我们就把整个链路打通,从一个ONNX模型开始,一直到生成可部署的.so文件。先FoldConstant:常量折叠后,图变小了,后续Pass处理更快再SimplifyInference:把BN等训练算子化简,为融合创造条件再FuseOps。
2026-10-30 00:07:35
351
原创 【AI编译器入门⑤】编译后端:CUDA Codegen、CUTLASS与TensorRT三足鼎立
前端负责"翻译",中端负责"优化",后端负责"落地"——把优化后的IR变成具体硬件能执行的代码。做TIR lowering(把高层IR降到底层循环表示)做Schedule优化(分块、向量化、线程绑定)做Codegen(生成硬件代码)做Runtime打包(kernel、权重、元数据打成一个文件)处理多种后端(GPU/NPU/CPU)CUDA Codegen是TVM最基础的GPU后端——把TIR直接打印成CUDA C++代码,然后调用nvcc编译。CUTLASS是NVIDIA开源的。
2026-10-30 00:07:24
255
原创 【AI编译器入门④】编译中端:图优化Pass全解析——DCE、常量折叠、算子融合与布局变换
在不改变模型推理逻辑与计算精度的前提下,精简图结构,为后端生成更高质量的代码。什么意思呢?没用的死代码(算出来但没人用)无意义的Cast/Reshape(转过去又转回来)可以合并的小算子(Conv+BN+ReLU可以合成一个)编译期就能算完的常量(还在运行时算)中端的工作就是把这些"脏东西"清理掉,把能合并的合并,能优化的优化——让图变得更高效。死代码 = 做了没用、不影响输出、浪费算力的代码。成对Cast—— 转来转去又回来了无用Reshape/Squeeze:shape根本没变。
2026-10-29 00:02:58
464
原创 Agentic API 项目解读:为 vLLM 构建有状态的 AI Agent API 网关
Agentic API 的核心价值,不是替代 vLLM,而是为模型上层的 Agent应用补充有状态 API、工具执行协调、客户端集成和多 Agent 工作流等能力。可以用一句话概括:vLLM 负责让模型运行起来,Agentic API 则帮助 Agent围绕模型持续完成任务。对于刚接触该项目的开发者,推荐先跑通"已有模型服务 + Agentic API网关"的最小链路,再研究 Responses API的状态延续,随后逐步深入工具执行、客户端适配、多 Agent 协作和生产部署。
2026-10-29 00:01:47
1002
原创 【AI编译器入门③】编译前端:ONNX、TorchScript与动态shape处理
很多人觉得前端就是"把ONNX转成Relay"——就像把Word转成PDF一样,格式转换而已。大错特错!图结构提取:节点、边、输入输出关系算子映射:ONNX的Conv对应TVM的什么算子?语义完全一致吗?权重处理:initializer怎么转成TVM的常量?动态shape:哪些维度是固定的?哪些是符号变量?自定义算子:TVM不支持的算子怎么办?类型推导:每个算子的输出shape和dtype是什么?格式转换只是最表层的工作。
2026-10-28 00:05:48
412
原创 【AI编译器入门②】TVM架构拆解:Relay、Relax、TIR与Runtime四层结构
为什么要有这么多层IR?一层不行吗?不同的抽象层次,解决不同的问题。设计图纸(高层抽象)→ 表达"房子长什么样"施工图(中层抽象)→ 表达"墙怎么砌、梁怎么搭"施工指令(底层抽象)→ 表达"先搬砖、再和灰、再砌墙"每一层都有存在的意义——高层改起来方便,底层精确可控。Relay/Relax(高层IR):描述"算什么"(图结构、算子语义)TIR(底层IR):描述"怎么算"(循环、内存、线程)Runtime(执行层):描述"怎么跑"(加载、调度、执行)各层可以独立优化,不用一层承担所有职责。
2026-10-28 00:03:52
372
原创 【AI编译器入门①】AI编译器基础:三段式Pipeline与全链路协同
PyTorch已经能跑模型了,为什么还需要AI编译器?PyTorch跑出来的模型,只能说"能跑",但跑不快、跑不省、也跑不到其他硬件上。跑不快:PyTorch的算子是一个个独立的kernel,中间结果反复读写显存,浪费大量带宽跑不省:显存用得太多、算力利用率太低跑不到其他硬件:PyTorch主要支持NVIDIA GPU,想跑在NPU、ARM、其他芯片上?门都没有AI编译器就是解决这些问题的——它把模型从"算法描述"变成"高效的硬件代码"。AI编译器是连接高层模型描述与底层硬件执行的桥梁。
2026-10-27 00:08:27
372
原创 【CUDA编程入门⑩】Hopper与Blackwell新特性:FP8、TMA与NVL72如何改变AI Infra
GPU为什么要不断更新架构?因为模型越来越大、需求越来越高。而GPU架构的每一次演进,本质上都是在计算 / 通信 / 显存计算侧:摩尔定律放缓,纯靠制程提频提密度越来越贵 → 那就用低精度(FP16 → FP8 → FP4)来换单位晶体管的算力显存侧:模型规模增速远超单卡显存增速 → HBM带宽和容量不断提升,但仍然是瓶颈通信侧:单卡装不下就得多卡 → 卡之间的互联带宽,直接决定了并行策略的设计空间Hopper和Blackwell的所有新特性,都可以放进这个三角里理解。下面我们按代际展开。
2026-10-27 00:08:09
466
原创 【CUDA编程入门⑨】Triton编程实战:用Python也能写出高性能GPU Kernel?
在讲Triton之前,我们先说说手写CUDA的"痛"。开发效率低:一个生产级GEMM kernel,要处理tiling、bank conflict、流水线、Tensor Core布局……动辄上千行代码调优成本高:tile大小、warp数、pipeline级数……这些参数随shape和硬件变化,要一个个试融合算子爆炸:LLM时代有大量"小算子融合"需求——RMSNorm+residual、RoPE、SwiGLU、fused MoE……每个都手写CUDA,根本写不过来那有没有办法。
2026-10-26 00:08:41
319
原创 【CUDA编程入门⑧】性能分析工具链:Nsight、Profiler与Roofline模型
先profile,再优化。为什么?你以为是计算慢,结果是数据搬运慢你以为是某个算子慢,结果是CPU launch开销大你以为是GPU慢,结果是CPU预处理拖后腿不做profile就优化,就像医生不做检查就开药——大概率治不对。1. profile找瓶颈 → 2. 分析原因 → 3. 做优化 → 4. 再profile验证效果今天我们就来聊聊"找瓶颈"用的工具们。性能(FLOPS)↑│ ┌───────────── 计算上限(Compute Roof)│ /│ /
2026-10-26 00:08:21
418
原创 【CUDA编程入门⑦】HPC算子开发实战:从优化方法论到业务落地
把算法模型里的计算,用尽可能高的效率在硬件上跑出来。为什么需要手写算子?直接用cuBLAS、cuDNN、TensorRT这些通用库不行吗?大部分情况可以,但总有一些通用库覆盖不到的场景业务里的特殊算子(比如BEV视图变换、多模态特征融合)需要和前后算子做fusion(融合),减少kernel launch和内存读写特殊的shape或数据布局,通用库优化不好需要迁移到非NVIDIA平台(比如昇腾、寒武纪、自研芯片)这些场景下,就需要HPC工程师手写高性能算子了。五大核心优化技术。
2026-10-25 00:04:44
356
原创 【CUDA编程入门⑥】CPU多线程并行优化:OpenMP、NUMA与SIMD向量化
很多人觉得:“搞AI Infra的,把GPU搞明白就行了,CPU关我什么事?大错特错!数据预处理和后处理往往在CPU上跑——如果CPU慢,GPU就在那空等有些算子(比如embedding lookup、NMS、后处理解码)在CPU上反而更高效控制流和调度逻辑肯定跑在CPU上——调度慢了,整个系统都慢多卡训练的通信也需要CPU参与GPU再快,如果CPU拖后腿,整体性能也上不去。木桶效应嘛,最短的那块板决定了装多少水。所以,作为一个完整的HPC工程师,CPU多线程优化也是必备技能。OpenMP是一套。
2026-10-25 00:04:30
428
原创 【CUDA编程入门⑤】Attention算子深度解析:从FlashAttention到PagedAttention的演进之路
Attention是大语言模型的核心,也是最主要的性能瓶颈之一。OsoftmaxQKTdkVOsoftmaxdkQKTVS = QK^T→ 得到N×N的注意力分数矩阵→ 做softmax归一化O = PV→ 乘以V得到输出问题出在哪?出在那个N×N的中间矩阵S和P上。显存爆炸:N×N的矩阵,N=16K就是256M个元素,FP16就是512MB——这还只是一层!带宽瓶颈:这么大的矩阵要写回HBM再读回来,HBM带宽扛不住这就是Attention的。
2026-10-24 00:16:41
444
原创 【CUDA编程入门④】经典算子实战:GEMM矩阵乘法——从Tiling分块到Tensor Core加速
GEMM(General Matrix Multiply,通用矩阵乘法),就是我们熟悉的 C = A × B。为什么说它是深度学习的"王者算子"?Attention里的QK^T和Softmax×V,本质是矩阵乘法FFN/MLP的两个线性层,就是矩阵乘法卷积可以通过im2col转换成矩阵乘法大模型训练中,GEMM占了总计算量的60%-90%GEMM的性能,决定了整个模型的性能。NVIDIA的cuBLAS和CUTLASS已经把GEMM优化到了接近理论极限的水平——那我们为什么还要手写GEMM?
2026-10-24 00:16:36
378
原创 【CUDA编程入门③】经典算子实战:Reduce归约——从朴素实现到高性能优化的演进之路
Reduce(归约),听起来很高端,其实就是**“把一堆数合并成一个数”**。最常见的是求和:输入:[1, 2, 3, 4, 5, 6, 7, 8]输出:36(所有元素的和)除了求和,还可以求最大值、最小值、按位与/或等等——只要满足"结合律"的操作,都可以做Reduce。Reduce难在哪?所有线程要协作产生一个结果线程之间需要交换部分和最终必须合并成全局结果说白了,难在**“协作”**——GPU有几千个线程,怎么让它们高效地"凑在一起"算出最终结果?
2026-10-23 01:12:05
356
原创 【CUDA编程入门②】CUDA性能优化基础:内存访问、Warp Shuffle与Occupancy调优
先判断瓶颈,再做优化。不知道瓶颈在哪就瞎优化,90%都是无用功。瓶颈类型含义优化方向Memory-Bound(访存瓶颈)显存带宽不够,喂不饱计算单元减少访存、优化访存模式、提高数据复用Compute-Bound(计算瓶颈)计算单元不够用,带宽还有富余提高算力利用率、用Tensor Core、减少计算量怎么判断?显存带宽利用率接近峰值 → memory-bound计算单元(SM/Tensor Core)利用率接近峰值 → compute-bound。
2026-10-23 01:11:54
240
原创 【CUDA编程入门①】CUDA编程体系全景:线程模型、内存层次与Warp执行机制
很多初学者以为CUDA就是"把C++代码搬到GPU上跑"——这是最大的误解。CUDA与普通C++最大的区别在于两点线程组织模型:GPU不是一个线程在跑,而是几千上万个线程同时在跑,而且这些线程是按特定层级组织的内存层次结构:GPU不是"一块内存",而是有寄存器、共享内存、全局内存等多层存储,速度和容量天差地别忽略了这两点,写出来的kernel可能只有CPU级别的性能——那你用GPU干嘛呢?线程组织模型:Grid/Block/Thread三级结构,线程索引计算是kernel正确性的基础内存模型。
2026-10-22 00:02:43
349
原创 【AI Infra小白入门⑫】GPU显卡选型与租买决策完全指南:从学习到训练到推理
选GPU卡,听起来是个"查参数"的事,但实际上——它还是不可能三角的应用。算力(能不能跑得快)显存容量(能不能装得下)显存带宽(推理速度的关键)互联能力(多卡能不能高效通信)预算(钱够不够)先想清楚你的瓶颈在哪,再去选卡。做训练 → 算力优先做推理 → 带宽和显存优先多卡分布式 → 互联优先学生学习 → 预算优先你的情况建议学生/转行者,跑课程与面试项目租4090(¥2/h),重度用户买二手3090个人开发者做7-13B应用。
2026-10-22 00:02:26
488
原创 Emergence World 实验解读:多智能体仿真对 LLM Agent 进入半导体良率分析的启示与边界
因此它只能当作定性趋势看,不能当作 benchmark 结论引用。
2026-10-21 00:27:18
950
原创 【AI Infra小白入门⑩】集合通信基础:AllReduce、Ring算法与NCCL全解析
想象一下:你有8张GPU,要训练一个大模型。每张卡上有一部分数据,各自算各自的梯度。每张卡算的梯度不一样,怎么让所有卡都拿到"平均后的梯度",来同步更新参数呢?这就需要"集合通信"——多张GPU之间,按照某种模式,交换数据、汇总数据。集合通信是分布式训练的基础。DDP是怎么同步梯度的ZeRO为什么能省显存、为什么通信量变大了张量并行的通信开销到底有多大为什么3D并行要"TP节点内、DP跨节点"并行策略用到的主要通信原语通信频率通信量适合的互联数据并行(DP/DDP)
2026-10-21 00:00:00
418
原创 【AI Infra小白入门⑪】AI Infra工具链指南:性能分析与调试工具一网打尽
AI Infra工程师的日常是什么?性能优化:“这个模型怎么跑这么慢?瓶颈在哪?问题排查:“怎么又崩了?是代码问题还是环境问题?效果验证:“我这个优化到底有没有用?快了多少?要回答这些问题,光靠猜是不行的,得靠数据说话——而数据,就是工具帮你拿到的。不会用工具的Infra工程师,就像不会用听诊器的医生——只能瞎猜,猜中了是运气,猜不中是常态。四大性能调试工具gdb:程序崩了找原因perf:CPU侧找热点nsys:全局timeline,先拿它看全貌ncu:单个kernel深度剖析。
2026-10-21 00:00:00
648
基于Palantir Foundry构建半导体制造AI友好型数据中台:从良率分析场景谈起
2026-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅