[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"study-material-detail-study-108":104},{"enabled":4,"title":5,"statusText":5,"buttonText":5,"campSlug":5,"stage":6,"classroomId":7,"hasClassroom":4},false,"",0,null,{"total":9,"list":10,"pageNum":44,"pageSize":45,"size":9,"startRow":44,"endRow":9,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":48,"navigateFirstPage":44,"navigateLastPage":44},3,[11,25,35],{"slug":12,"title":13,"logo":7,"liveUrl":14,"prize":15,"sponsor":16,"description":17,"organizer":18,"startTime":19,"endTime":20,"registrationDeadline":21,"status":22,"dashboardVisibility":23,"createdAt":24},"spring2026","2026春季启元人工智能大赛","https:\u002F\u002Fwww.bilibili.com\u002Fblackboard\u002Flive\u002Flive-activity-player.html?cid=1822703816&quality=0","200,000","麒麟软件有限公司","“2026春季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。\n各参赛选手需在规定的比赛周期内，依据赛事规则选定赛题并完成相应挑战，优胜者将共同角逐总额20万元的赛事奖金池，并且还将有机会获得实习和知名企业优质岗位内推资格。","启元实验室","2026-04-19 16:00:00","2026-07-13 16:00:00","2026-06-16 16:00:00","ongoing","private","2026-04-16 08:00:00",{"slug":26,"title":27,"logo":7,"liveUrl":14,"prize":28,"sponsor":7,"description":29,"organizer":18,"startTime":30,"endTime":31,"registrationDeadline":32,"status":33,"dashboardVisibility":23,"createdAt":34},"autumn2025","2025秋季启元人工智能大赛","150,000","“2025秋季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。","2025-11-08 08:00:00","2026-01-13 08:00:00","2025-12-30 08:00:00","ended","2025-11-03 08:00:00",{"slug":36,"title":37,"logo":7,"liveUrl":14,"prize":38,"sponsor":7,"description":39,"organizer":18,"startTime":40,"endTime":41,"registrationDeadline":42,"status":33,"dashboardVisibility":23,"createdAt":43},"summer2025","启元人工智能大赛(系统方向)","80,000","启元人工智能大赛由启元实验室主办，其中系统赛道基于启元实验室九源软件栈的相关开源项目，通过拉动开源社区力量，一方面促进国产智能计算生态的发展，另一方面也为人工智能系统方向的学生及从业者提供一个实践平台。","2025-07-08 08:00:00","2025-08-25 08:00:00","2025-07-22 08:00:00","2025-06-22 08:00:00",1,5,true,8,[44],{"total":45,"list":50,"pageNum":44,"pageSize":45,"size":45,"startRow":44,"endRow":45,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":103,"navigateFirstPage":44,"navigateLastPage":44},[51,62,73,84,94],{"id":52,"slug":53,"title":54,"logo":55,"publicLiveEmbedUrl":14,"description":56,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":16,"startTime":58,"endTime":59,"status":22,"dashboardVisibility":60,"createdAt":58,"updatedAt":61},"019eeeff-6b00-7d55-a629-efafded3e232","summer2026","2026年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2026-06\u002F019eef7f-7816-7828-9309-79c2c61dd568.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=%2Fy5fJ3AB6DC%2F4ixX2oU%2Fh4v9%2F%2Bc%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。","...","2026-06-22 08:00:00","2026-10-19 08:00:00","public","2026-10-12 08:00:00",{"id":63,"slug":64,"title":65,"logo":66,"publicLiveEmbedUrl":7,"description":67,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":68,"startTime":69,"endTime":70,"status":33,"dashboardVisibility":23,"createdAt":71,"updatedAt":72},"019af3f3-e06a-7245-aa8d-37dc99a69c73","winter2025","2025年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-12\u002F019afc69-b7ca-7805-91fb-605429671c01.png?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Gsep2R2fMub4ugC6MyVcAmFrb%2FE%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。 \n","新华三技术有限公司","2025-12-25 08:00:00","2026-03-27 08:00:00","2025-12-06 08:00:00","2026-10-22 20:24:30",{"id":74,"slug":36,"title":75,"logo":76,"publicLiveEmbedUrl":7,"description":77,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":78,"startTime":79,"endTime":80,"status":81,"dashboardVisibility":23,"createdAt":82,"updatedAt":83},"01980342-208c-7803-b3f3-19e1d31960ba","2025年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-07\u002F0198045e-28fe-78f0-95fe-23835ce58395.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=J07ePwwPpIjasanoQ4%2BRXZYgbnY%3D","InfiniTensor大模型与人工智能系统训练营由启元实验室及清华大学 AI 系统方向团队发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营联合开源项目开发者、学术界大牛、工业界资深工程师参与授课与项目指导。课程采用「线上直播授课 + 在线答疑 + 项目实践辅导 」的方式进行，确保每位同学都能获得充分成长。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","北京积算科技有限公司","2025-07-14 08:00:00","2025-09-30 08:00:00","upcoming","2025-07-13 08:00:00","2026-10-22 20:24:58",{"id":85,"slug":86,"title":87,"logo":88,"publicLiveEmbedUrl":7,"description":89,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":90,"endTime":91,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":93},"01980cf9-a7d8-7796-ae86-0bbe05334add","winter2024","2024年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-ce23-7624-a287-9f07dd0d85f6.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。报名学员请阅读“导学”课程页的训练营介绍。","2025-01-05 08:00:00","2025-03-22 08:00:00","2025-07-15 08:00:00","2026-10-22 20:24:39",{"id":95,"slug":96,"title":97,"logo":98,"publicLiveEmbedUrl":7,"description":99,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":100,"endTime":101,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":102},"01980c20-363a-7dc3-8f5a-58a68e08dcc4","summer2024","2024年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-fbfa-788a-afcd-17fa9be74ff9.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区和高校，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过课程、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","2024-07-20 08:00:00","2024-09-29 08:00:00","2026-10-22 20:24:49",[44],{"currentItem":105,"processedData":124},{"img":106,"keywords":107,"treeType":44,"description":108,"showStatus":44,"updateTime":109,"type":110,"title":111,"content":112,"nextArticle":113,"createTime":109,"sortOrder":110,"canonicalPath":117,"id":118,"contentType":119,"prevArticle":120},"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_fm.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=qtUGE4SJqK1enOdaSDCs0b3HVDc%3D","九齿 DSL,GEMM,FlashAttention,Roofline Model,算子开发","多范式算子开发实战营《基于九齿复杂算子实现案例》深入讲解基于九齿 DSL 实现矩阵乘法与 Flash Attention 等复杂算子的实战方法，涵盖 Tiling 分块并行算法、Tile\u002FExpand\u002FSqueeze核心原语及 Roofline Model 性能分析模型。","2026-10-22 20:38:11",2,"课程回顾 | 多范式算子开发实战营：《基于九齿复杂算子实现案例》","9 月 17 日晚，多范式算子开发实战营继续邀请**九齿 DSL 技术负责人黄嘉成老师**，带来《基于九齿复杂算子实现案例》。\r\n\r\n在之前的课程中，我们了解了多种 DSL 并初步体验了九齿的基础写法。但如何从简单的“向量加法”进阶到真正的复杂算子，本节课将深入实战，带大家掌握**矩阵乘法（GEMM）** 与 **Flash Attention** 的九齿实现，并学会使用 **Roofline Model** 科学评估算子性能。\r\n\r\n\r\n## 一、 矩阵乘法（GEMM）的并行算法与九齿实现\r\n### 算法原理回顾\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw01.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Pk72sTlHH5U0SgnV49iZW1uPrPc%3D)\r\n\r\n**1. 数学定义**：$C = A \times B$，其中 $C$ 的每个元素对应 $A$ 的一行与 $B$ 的一列的乘累加。\r\n\r\n**2. 朴素实现的瓶颈**：三重循环（CPU串行思维）未考虑缓存与并行，性能极低。\r\n\r\n**3. GPU 分块并行策略（Tiling）**：\r\n- 将 $C$ 切分为 $BM \times BN$ 的块。\r\n- 对应 $A$ 的行块 ($BM \times BK$) 与 $B$ 的列块 ($BK \times BN$)。\r\n- **核心逻辑**：$C$ 的一个输出块对应 $A$ 的一整行块和 $B$ 的一整列块，通过沿 $K$ 维度遍历累加小矩阵乘结果。\r\n- **边界处理**：使用 `cdiv` (Ceiling Division) 向上取整，确保非整除情况下的数据完整性。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw02.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ne3%2FQ8s3c4y%2FfhKJ2sMqaaeBbqM%3D)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw03.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=WBMD0oyUetXa1Fdxpge0ss0v7B0%3D)\r\n\r\n\r\n### 九齿实现 GEMM\r\n**1. 排布（Arrangement）分离计算**：\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw04.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=5o9BKpKD2HTrGj1eTw%2FGki16DxU%3D)\r\n\r\n- **Tile**：对 $A, B, C$ 进行基础分块；对 $A$ 按行、$B$ 按列进行二次 Tile，以匹配 $C$ 的计算需求。\r\n- **Expand**：将 $A$ 的行块和 $B$ 的列块复制扩展，建立与 $C$ 所有输出块的映射关系（逻辑复制，无实际内存开销）。\r\n- **Squeeze**：移除冗余的单例维度（长度为 1 的维度），简化 Application 中的索引编写。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw05.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=AW9M4vaNkxu8UqmEa1r8ywDcHLY%3D)\r\n\r\n**2. 计算（Application）**：\r\n- 输入输出均为“排布后的块”而非原始张量。\r\n- 在 Application 内遍历 $K$ 维度的小块，执行小矩阵乘与累加。\r\n\r\n**3. 自动推导机制**：\r\n- 九齿无需手动配置 Grid\u002FBlock，编译器根据最外层张量形状的一致性自动推导 Launch 配置。\r\n- **原则**：$A, B, C$ 排布后的最外层形状必须一致。\r\n\r\n### 可视化辅助理解\r\n**1. 嵌套张量可视化**：直观展示 Tile 产生的层级结构（单层→双层→三层）。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw06.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=2InWUdjNxHd12RGaTvzyU8S1CnU%3D)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw07.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=DZCQxXsKFDOT8%2BVkYqQBENoR6Dw%3D)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw08.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=eCl%2BhOaQfDQQ0L%2F%2BamXaqrNjGq0%3D)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw09.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=AN3H3W21HlMcKBVOJyqx7t7exQQ%3D)\r\n\r\n\r\n**2. 排布可视化**：验证排布后的块与原始张量位置的对应关系，辅助 Debug。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw11.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ZiqDK5T1SBJJYwD1IIITt9rrztA%3D)\r\n\r\n\r\n**3. 代码与算法描述一致**：九齿代码结构与数学\u002F算法描述高度一致，降低认知负担。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw12.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=qDtd0B4rglyeb2ZcOr0S5k%2FSXS0%3D)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw13.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=D13MD06wliROWSrdcmX83YbCgIM%3D)\r\n\r\n\r\n\r\n## 二、 Kernel 性能评估：Roofline Model\r\n### Roofline Model 核心概念\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw14.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=VLnfA92cIIqQw1SvvyTyK%2FKY2cM%3D)\r\n\r\n**1. 横轴**：Arithmetic Intensity，即计算密度（FLOPs \u002F Byte）。\r\n\r\n**2. 纵轴**：Performance (FLOPS)。\r\n\r\n**3. 两大区域**：\r\n- **Memory Bound**：受限于显存带宽\r\n- **Compute Bound**：受限于峰值算力\r\n\r\n**4. 拐点意义**：区分优化方向的关键，不同 Case 可能落在不同区域。\r\n\r\n**5. 性能指标**：Compute Bound 看 FLOPS，Memory Bound 看 GB\u002Fs，通用标准看耗时。\r\n\r\n\r\n### Benchmark 实战方法\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw15.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Ktxk68oYIU2NImj6cgxEV1y%2BYao%3D)\r\n\r\n**1. `perf` 函数**：$2 \times M \times N \times K$ （乘+加各一次）。\r\n\r\n**2. 数据搬运量**：$M \times K + K \times N + M \times N$。\r\n\r\n\r\n## 三、 FlashAttention\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw16.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=oSkul5iYqBFch8%2B8EiabbHu3nSw%3D)\r\n\r\n### 为什么需要 FlashAttention？\r\n**1. 传统 Attention 痛点**：$QK^T$ 结果巨大，多次读写 Global Memory 导致性能低下。\r\n\r\n**2. 核心思想**：基于 Online Softmax 原理，将 MatMul + Softmax + MatMul 融合为一个 Kernel，减少全局内存访问。\r\n\r\n**3. 算法特征**：$Q\u002FO$ 按 $BM$ 分块，$K\u002FV$ 按 $BN$ 分块；每个 $Q$ 块对应多个 $K\u002FV$ 块。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw17.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=sRBUdu9bJyhdX6pOtOfkK6%2FECto%3D)\r\n\r\n### 九齿实现要点\r\n**1. Arrangement 设计**：\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw18.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=QhHE8tCPq4iZxK7Q1tssiqN51g0%3D)\r\n\r\n\r\n**2. Application 编写**：\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw19.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=XJlsWyewS%2BtMzBdWacXe7yFYJr0%3D)\r\n\r\n\r\n**3. 张量可视化**\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw20.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=EuegoQi7A25GRuxfqRCcIT3GqRI%3D)\r\n\r\n**4. 排布可视化**\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw21.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=cCCE5DU%2BMNiYkgqyPCHG%2B8ubxtc%3D)\r\n\r\n## 关注与交流\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_ewm02.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=G1NJskF7AaercUrU0ISrAy2%2F%2F6c%3D)",{"publishTime":7,"createTime":109,"canonicalPath":114,"id":115,"title":116},"\u002Fstudy-material\u002Fstudy-107","study-107","多范式算子开发实战营: 《九齿的设计思想与核心编程范式》课程回顾","\u002Fstudy-material\u002Fstudy-108","study-108","markdown",{"publishTime":7,"createTime":109,"canonicalPath":121,"id":122,"title":123},"\u002Fstudy-material\u002Fstudy-109","study-109","课程回顾 | 多范式算子开发实战营：《基于 AI Agent 实现算子的编写、验证与优化》",{"htmlContent":125,"headings":126},"\u003Cp>9 月 17 日晚，多范式算子开发实战营继续邀请\u003Cstrong>九齿 DSL 技术负责人黄嘉成老师\u003C\u002Fstrong>，带来《基于九齿复杂算子实现案例》。\u003C\u002Fp>\n\u003Cp>在之前的课程中，我们了解了多种 DSL 并初步体验了九齿的基础写法。但如何从简单的“向量加法”进阶到真正的复杂算子，本节课将深入实战，带大家掌握\u003Cstrong>矩阵乘法（GEMM）\u003C\u002Fstrong> 与 \u003Cstrong>Flash Attention\u003C\u002Fstrong> 的九齿实现，并学会使用 \u003Cstrong>Roofline Model\u003C\u002Fstrong> 科学评估算子性能。\u003C\u002Fp>\n\u003Ch2 id=\"一-矩阵乘法-gemm-的并行算法与九齿实现\">\u003Ca class=\"anchor\" href=\"#一-矩阵乘法-gemm-的并行算法与九齿实现\" aria-label=\"跳转到标题：一、 矩阵乘法（GEMM）的并行算法与九齿实现\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>一、 矩阵乘法（GEMM）的并行算法与九齿实现\u003C\u002Fh2>\u003Ch3 id=\"算法原理回顾\">\u003Ca class=\"anchor\" href=\"#算法原理回顾\" aria-label=\"跳转到标题：算法原理回顾\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>算法原理回顾\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw01.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Pk72sTlHH5U0SgnV49iZW1uPrPc%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. 数学定义\u003C\u002Fstrong>：$C = A \times B$，其中 $C$ 的每个元素对应 $A$ 的一行与 $B$ 的一列的乘累加。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. 朴素实现的瓶颈\u003C\u002Fstrong>：三重循环（CPU串行思维）未考虑缓存与并行，性能极低。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. GPU 分块并行策略（Tiling）\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>将 $C$ 切分为 $BM     imes BN$ 的块。\u003C\u002Fli>\n\u003Cli>对应 $A$ 的行块 ($BM   imes BK$) 与 $B$ 的列块 ($BK    imes BN$)。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>核心逻辑\u003C\u002Fstrong>：$C$ 的一个输出块对应 $A$ 的一整行块和 $B$ 的一整列块，通过沿 $K$ 维度遍历累加小矩阵乘结果。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>边界处理\u003C\u002Fstrong>：使用 \u003Ccode>cdiv\u003C\u002Fcode> (Ceiling Division) 向上取整，确保非整除情况下的数据完整性。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw02.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ne3%2FQ8s3c4y%2FfhKJ2sMqaaeBbqM%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw03.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=WBMD0oyUetXa1Fdxpge0ss0v7B0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"九齿实现-gemm\">\u003Ca class=\"anchor\" href=\"#九齿实现-gemm\" aria-label=\"跳转到标题：九齿实现 GEMM\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>九齿实现 GEMM\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 排布（Arrangement）分离计算\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw04.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=5o9BKpKD2HTrGj1eTw%2FGki16DxU%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Tile\u003C\u002Fstrong>：对 $A, B, C$ 进行基础分块；对 $A$ 按行、$B$ 按列进行二次 Tile，以匹配 $C$ 的计算需求。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Expand\u003C\u002Fstrong>：将 $A$ 的行块和 $B$ 的列块复制扩展，建立与 $C$ 所有输出块的映射关系（逻辑复制，无实际内存开销）。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Squeeze\u003C\u002Fstrong>：移除冗余的单例维度（长度为 1 的维度），简化 Application 中的索引编写。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw05.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=AW9M4vaNkxu8UqmEa1r8ywDcHLY%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. 计算（Application）\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>输入输出均为“排布后的块”而非原始张量。\u003C\u002Fli>\n\u003Cli>在 Application 内遍历 $K$ 维度的小块，执行小矩阵乘与累加。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>3. 自动推导机制\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>九齿无需手动配置 Grid\u002FBlock，编译器根据最外层张量形状的一致性自动推导 Launch 配置。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>原则\u003C\u002Fstrong>：$A, B, C$ 排布后的最外层形状必须一致。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"可视化辅助理解\">\u003Ca class=\"anchor\" href=\"#可视化辅助理解\" aria-label=\"跳转到标题：可视化辅助理解\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>可视化辅助理解\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 嵌套张量可视化\u003C\u002Fstrong>：直观展示 Tile 产生的层级结构（单层→双层→三层）。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw06.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=2InWUdjNxHd12RGaTvzyU8S1CnU%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw07.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=DZCQxXsKFDOT8%2BVkYqQBENoR6Dw%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw08.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=eCl%2BhOaQfDQQ0L%2F%2BamXaqrNjGq0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw09.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=AN3H3W21HlMcKBVOJyqx7t7exQQ%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. 排布可视化\u003C\u002Fstrong>：验证排布后的块与原始张量位置的对应关系，辅助 Debug。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw11.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ZiqDK5T1SBJJYwD1IIITt9rrztA%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. 代码与算法描述一致\u003C\u002Fstrong>：九齿代码结构与数学\u002F算法描述高度一致，降低认知负担。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw12.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=qDtd0B4rglyeb2ZcOr0S5k%2FSXS0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw13.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=D13MD06wliROWSrdcmX83YbCgIM%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch2 id=\"二-kernel-性能评估-roofline-model\">\u003Ca class=\"anchor\" href=\"#二-kernel-性能评估-roofline-model\" aria-label=\"跳转到标题：二、 Kernel 性能评估：Roofline Model\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>二、 Kernel 性能评估：Roofline Model\u003C\u002Fh2>\u003Ch3 id=\"roofline-model-核心概念\">\u003Ca class=\"anchor\" href=\"#roofline-model-核心概念\" aria-label=\"跳转到标题：Roofline Model 核心概念\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Roofline Model 核心概念\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw14.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=VLnfA92cIIqQw1SvvyTyK%2FKY2cM%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. 横轴\u003C\u002Fstrong>：Arithmetic Intensity，即计算密度（FLOPs \u002F Byte）。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. 纵轴\u003C\u002Fstrong>：Performance (FLOPS)。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. 两大区域\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Memory Bound\u003C\u002Fstrong>：受限于显存带宽\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Compute Bound\u003C\u002Fstrong>：受限于峰值算力\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>4. 拐点意义\u003C\u002Fstrong>：区分优化方向的关键，不同 Case 可能落在不同区域。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>5. 性能指标\u003C\u002Fstrong>：Compute Bound 看 FLOPS，Memory Bound 看 GB\u002Fs，通用标准看耗时。\u003C\u002Fp>\n\u003Ch3 id=\"benchmark-实战方法\">\u003Ca class=\"anchor\" href=\"#benchmark-实战方法\" aria-label=\"跳转到标题：Benchmark 实战方法\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Benchmark 实战方法\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw15.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Ktxk68oYIU2NImj6cgxEV1y%2BYao%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. \u003Ccode>perf\u003C\u002Fcode> 函数\u003C\u002Fstrong>：$2 \times M \times N \times K$ （乘+加各一次）。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. 数据搬运量\u003C\u002Fstrong>：$M \times K + K \times N + M \times N$。\u003C\u002Fp>\n\u003Ch2 id=\"三-flashattention\">\u003Ca class=\"anchor\" href=\"#三-flashattention\" aria-label=\"跳转到标题：三、 FlashAttention\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>三、 FlashAttention\u003C\u002Fh2>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw16.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=oSkul5iYqBFch8%2B8EiabbHu3nSw%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"为什么需要-flashattention\">\u003Ca class=\"anchor\" href=\"#为什么需要-flashattention\" aria-label=\"跳转到标题：为什么需要 FlashAttention？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>为什么需要 FlashAttention？\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. 传统 Attention 痛点\u003C\u002Fstrong>：$QK^T$ 结果巨大，多次读写 Global Memory 导致性能低下。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. 核心思想\u003C\u002Fstrong>：基于 Online Softmax 原理，将 MatMul + Softmax + MatMul 融合为一个 Kernel，减少全局内存访问。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. 算法特征\u003C\u002Fstrong>：$Q\u002FO$ 按 $BM$ 分块，$K\u002FV$ 按 $BN$ 分块；每个 $Q$ 块对应多个 $K\u002FV$ 块。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw17.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=sRBUdu9bJyhdX6pOtOfkK6%2FECto%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"九齿实现要点\">\u003Ca class=\"anchor\" href=\"#九齿实现要点\" aria-label=\"跳转到标题：九齿实现要点\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>九齿实现要点\u003C\u002Fh3>\u003Cp>\u003Cstrong>1. Arrangement 设计\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw18.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=QhHE8tCPq4iZxK7Q1tssiqN51g0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. Application 编写\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw19.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=XJlsWyewS%2BtMzBdWacXe7yFYJr0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. 张量可视化\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw20.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=EuegoQi7A25GRuxfqRCcIT3GqRI%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>4. 排布可视化\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_108_zw21.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=cCCE5DU%2BMNiYkgqyPCHG%2B8ubxtc%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch2 id=\"关注与交流\">\u003Ca class=\"anchor\" href=\"#关注与交流\" aria-label=\"跳转到标题：关注与交流\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>关注与交流\u003C\u002Fh2>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_ewm02.jpg?Expires=1792750031&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=G1NJskF7AaercUrU0ISrAy2%2F%2F6c%3D\" alt=\"\">\u003C\u002Fp>\n",[127,130,132,135,137,140,143,146,149,152,154],{"id":128,"text":129,"level":110},"一-矩阵乘法-gemm-的并行算法与九齿实现","一、 矩阵乘法（GEMM）的并行算法与九齿实现",{"id":131,"text":131,"level":9},"算法原理回顾",{"id":133,"text":134,"level":9},"九齿实现-gemm","九齿实现 GEMM",{"id":136,"text":136,"level":9},"可视化辅助理解",{"id":138,"text":139,"level":110},"二-kernel-性能评估-roofline-model","二、 Kernel 性能评估：Roofline Model",{"id":141,"text":142,"level":9},"roofline-model-核心概念","Roofline Model 核心概念",{"id":144,"text":145,"level":9},"benchmark-实战方法","Benchmark 实战方法",{"id":147,"text":148,"level":110},"三-flashattention","三、 FlashAttention",{"id":150,"text":151,"level":9},"为什么需要-flashattention","为什么需要 FlashAttention？",{"id":153,"text":153,"level":9},"九齿实现要点",{"id":155,"text":155,"level":110},"关注与交流"]