[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"study-material-detail-study-81":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=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Loo9mNcAiqrEJeoxKJGChNjsIP0%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=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=aQ7DEIPmeZ6G2GUnnO42fZDzkoY%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=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=rRUH7HCePjJ0x1Z1esoWYs0tjmE%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":125},{"img":106,"keywords":107,"treeType":44,"description":108,"showStatus":44,"updateTime":109,"type":110,"title":111,"content":112,"nextArticle":113,"createTime":109,"sortOrder":117,"canonicalPath":118,"id":119,"contentType":120,"prevArticle":121},"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_fm.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=dQvljMFxdFnN3E599SbQTaCeljA%3D","CPU 优化,GEMM,SIMD,OpenMP,Intel MKL","基于 C++ 与 xmake 搭建测试框架，实战 GEMM 优化，讲解 BLAS 标准、LD 维度、多线程、SIMD\u002FFMA、OpenMP 与 Intel MKL 数学库多层性能提升方案。","2026-10-22 20:38:11",2,"2026 夏季 InfiniTensor 训练营 CPU 并行编程 2：《CPU 指令集加速实战》","![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw01.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=pweZTiErRHGevPb8WLHf2HT8EM0%3D)\r\n\r\n\u003Cspan style=\"font-size:12px;color:#555;\">7 月 27 日，2026 夏季 InfiniTensor 训练营 CPU 并行编程方向第二课《CPU 指令集加速实战》开讲。\r\n前置课程《CPU 性能优化导论》讲了 CPU 性能优化核心方法，涵盖 CPU 多级缓存、局部性原理、SIMD 向量指令、多线程并行等优化手段。\u003C\u002Fspan>\r\n\r\n本节课我们将进入实战环节。通过搭建测试框架、手写矩阵乘法（GEMM）、多线程并行、SIMD 指令集优化以及调用厂商库（MKL），感知不同优化技术带来的真实性能提升。\r\n\r\n\r\n## 测试框架介绍\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw02.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ZURxHtIi3Uwxn4u71P49rTC0EC0%3D)\r\n\r\n1. **语言与构建**：基于 C++ 开发，使用 **xmake** 作为构建工具（相比 CMake 语法更简洁，工具链支持更丰富）。\r\n2. **代码组织结构**：\r\n   - `src\u002F`：主程序与通用源码。\r\n   - `kernels\u002F`：**核心关注目录**，存放具体的矩阵乘实现代码。\r\n3. **接口标准**：框架基于 **BLAS** 接口标准设计，只需实现核心 Kernel 即可直接接入测试。\r\n\r\n## BLAS 接口与 Leading Dimension 详解\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw03.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=rayB9xnUhTX%2FqYJvM1ewjzo%2BEx0%3D)\r\n\r\n### GEMM 接口核心参数解析\r\n1. **数据存储方式**：需显式指定行主序（Row-major）或列主序（Column-major），保证 A、B、C 三个矩阵存储方式一致。\r\n2. **转置选项**：定义 A 和 B 是否转置，利用转置定律避免外部显式转置带来的额外内存拷贝开销。\r\n3. **维度参数 (M, N, K)**：对应 $C(M \times N) = A(M \times K) \times B(K \times N)$\r\n4. **缩放系数 ($alpha, \beta$)**：支持线性变换操作；纯矩阵乘时通常设为 $alpha=1, \beta=0$。\r\n5. **Const 限定符**：A、B 指针通常为 `const`，确保输入数据不被修改，符合安全开发规范。\r\n\r\n### Leading Dimension (LD)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw04.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=sIrMJCudqfhPzv2mFKZFHdZaViw%3D)\r\n\r\n1. **定义**：内存中相邻行（行主序）或相邻列（列主序）元素之间的跨度。\r\n2. **存在意义**：\r\n   - 兼容**分块矩阵**运算（子矩阵在大矩阵中的索引）。\r\n   - 兼容硬件底层的**内存对齐 Padding**，例如矩阵每行可能扩展额外空间，使 Leading Dimension 大于逻辑矩阵维度，以满足 SIMD 加载和缓存访问要求。\r\n3. **避坑指南**：LD 不一定等于矩阵物理维度，设置错误会导致读取数据错位；建议通过画图或编写验证代码加深理解。\r\n\r\n## 实战演示\r\n### Ref GEMM (Baseline) 的问题\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw05.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=k2UKcGntA2Vnk%2ByiisLnGl0Kjsk%3D)\r\n\r\n- **实现**：三层 for 循环，最内层为 K 循环。\r\n- **瓶颈**：访问 B 矩阵时跨列读取（stride = LDB），导致严重的 **Cache Miss**，性能极低。\r\n\r\n### Naive GEMM 的改进\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw06.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=pfcXc1mrP9lkEF1K%2Fr0aNobmOPs%3D)\r\n\r\n- **循环变换**：将 K 循环提至外层，J 循环置于最内层。\r\n- **访存优化**：\r\n  - A 矩阵按行遍历，B 矩阵按行遍历，C 矩阵按行写入。\r\n  - 保证内存连续访问，大幅提升 Cache 命中率。\r\n- **效果**：性能提升 10~20 倍。\r\n\r\n\r\n### 多线程实现思路\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw07.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=DCN3uLvoW5camtGwgb7ZjhvRSSk%3D)\r\n\r\n- **任务划分 (GEMMTask)**：定义 `begin` 和 `end` 参数，按**行范围**切分 A 和 C 矩阵的计算任务。\r\n- **Worker 机制**：每个线程执行一个 Job，处理指定行范围内的 GEMM 计算。\r\n- **线程管理**：\r\n  - 获取硬件最大线程数（设定最小值保底，如 4 线程）。\r\n  - 预创建线程池，避免重复创建销毁开销。\r\n  - 使用 `join` 同步原语等待所有任务完成。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw08.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=TgkERPGDd304iS8ognMiOReLru4%3D)\r\n\r\n\r\n### SIMD 指令集加速\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw09.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=WoSJ1unmqMRqdC%2BBN1Vd2YSrQ2A%3D)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw10.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=WKv7%2FDSdBQJ3X%2Fwc2gikz%2F6W7DY%3D)\r\n\r\n2. **核心操作流**：\r\n   - **Broadcast**：将 A 的元素广播填满寄存器。\r\n   - **Load**：批量加载 B 和 C 的数据到 256 位寄存器。\r\n   - **FMA**：执行乘加融合运算 ($A \times B + C$)，单次处理 8 个双精度浮点数。\r\n   - **Store**：将结果写回内存。\r\n\r\n3. **边界处理**：非对齐尾部元素使用标量循环处理。\r\n4. **性能观察**：相比多线程有进一步提升，但现代编译器自动向量化能力较强，手动优化边际收益递减。\r\n\r\n### OpenMP 并行加速\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw11.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=oz%2FT5jTxnkHu3Nr6prU%2BfXveaG4%3D)\r\n\r\n- **优势**：通过预编译指令（Pragma）自动实现循环并行，代码侵入性低。\r\n- **集成**：仅需 `include` 头文件并在 xmake 中添加编译 flag。\r\n- **性能表现**：优于简单的手写多线程实现（底层包含更多调度优化），且具备良好的可复现性。\r\n\r\n\r\n### 厂商数学库 (Intel MKL)\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw12.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=m77nOMd4u8qe%2F7B5QhZ%2FfsoO2tE%3D)\r\n\r\n- **特点**：系统级底层优化，针对特定硬件架构极致调优。\r\n- **使用**：完全兼容 BLAS 接口，零迁移成本，仅需传入正确参数。\r\n- **性能对比**：\r\n  - 相比 OpenMP 性能翻倍。\r\n  - 相比手写优化版本提升 5~6 倍。\r\n- **工程启示**：通用算法优先使用官方成熟库，避免重复造轮子，将精力聚焦于业务特有逻辑的优化。\r\n\r\n\r\n\r\n\r\n\r\n## 加入训练营\r\n#### 📺完整课程内容，请观看直播或查看课程回放：\r\n**InfiniTensor 官网**： https:\u002F\u002Fwww.infinitensor.com\r\n\r\n**B站直播**： InfiniTensor 官方直播间\r\n\r\n**视频号直播**： InfiniTensor 视频号预约\r\n\r\n**答疑交流**： 训练营官方社群⬇️\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002F2026-xjq.png?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=wGzqtB9HsaU4IHS5eDT0qyV2lsg%3D)\r\n\r\n## 关注与交流\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_ewm02.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=9Am%2FQfw7y%2BpppXGy6g1VG29SISM%3D)",{"publishTime":7,"createTime":109,"canonicalPath":114,"id":115,"title":116},"\u002Fstudy-material\u002Fstudy-80","study-80","2026 夏季 InfiniTensor 训练营 CUDA 编程 4：《CUDA 基础入门：向量规约》",28,"\u002Fstudy-material\u002Fstudy-81","study-81","markdown",{"publishTime":7,"createTime":109,"canonicalPath":122,"id":123,"title":124},"\u002Fstudy-material\u002Fstudy-82","study-82","2026 夏季 InfiniTensor 训练营 AI 编程与智能体应用 4：《AI 编程与智能体应用实践：从需求到原型实现》",{"htmlContent":126,"headings":127},"\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw01.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=pweZTiErRHGevPb8WLHf2HT8EM0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cspan style=\"font-size:12px;color:#555;\">7 月 27 日，2026 夏季 InfiniTensor 训练营 CPU 并行编程方向第二课《CPU 指令集加速实战》开讲。\u003Cbr>前置课程《CPU 性能优化导论》讲了 CPU 性能优化核心方法，涵盖 CPU 多级缓存、局部性原理、SIMD 向量指令、多线程并行等优化手段。\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>本节课我们将进入实战环节。通过搭建测试框架、手写矩阵乘法（GEMM）、多线程并行、SIMD 指令集优化以及调用厂商库（MKL），感知不同优化技术带来的真实性能提升。\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\u002FKnowledge_Base\u002FKB_81_zw02.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ZURxHtIi3Uwxn4u71P49rTC0EC0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>语言与构建\u003C\u002Fstrong>：基于 C++ 开发，使用 \u003Cstrong>xmake\u003C\u002Fstrong> 作为构建工具（相比 CMake 语法更简洁，工具链支持更丰富）。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>代码组织结构\u003C\u002Fstrong>：\u003Cul>\n\u003Cli>\u003Ccode>src\u002F\u003C\u002Fcode>：主程序与通用源码。\u003C\u002Fli>\n\u003Cli>\u003Ccode>kernels\u002F\u003C\u002Fcode>：\u003Cstrong>核心关注目录\u003C\u002Fstrong>，存放具体的矩阵乘实现代码。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>接口标准\u003C\u002Fstrong>：框架基于 \u003Cstrong>BLAS\u003C\u002Fstrong> 接口标准设计，只需实现核心 Kernel 即可直接接入测试。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"blas-接口与-leading-dimension-详解\">\u003Ca class=\"anchor\" href=\"#blas-接口与-leading-dimension-详解\" aria-label=\"跳转到标题：BLAS 接口与 Leading Dimension 详解\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>BLAS 接口与 Leading Dimension 详解\u003C\u002Fh2>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw03.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=rayB9xnUhTX%2FqYJvM1ewjzo%2BEx0%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>\u003Col>\n\u003Cli>\u003Cstrong>数据存储方式\u003C\u002Fstrong>：需显式指定行主序（Row-major）或列主序（Column-major），保证 A、B、C 三个矩阵存储方式一致。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>转置选项\u003C\u002Fstrong>：定义 A 和 B 是否转置，利用转置定律避免外部显式转置带来的额外内存拷贝开销。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>维度参数 (M, N, K)\u003C\u002Fstrong>：对应 $C(M   imes N) = A(M   imes K)     imes B(K    imes N)$\u003C\u002Fli>\n\u003Cli>\u003Cstrong>缩放系数 ($alpha, \beta$)\u003C\u002Fstrong>：支持线性变换操作；纯矩阵乘时通常设为 $alpha=1, \beta=0$。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Const 限定符\u003C\u002Fstrong>：A、B 指针通常为 \u003Ccode>const\u003C\u002Fcode>，确保输入数据不被修改，符合安全开发规范。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3 id=\"leading-dimension-ld\">\u003Ca class=\"anchor\" href=\"#leading-dimension-ld\" aria-label=\"跳转到标题：Leading Dimension (LD)\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Leading Dimension (LD)\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw04.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=sIrMJCudqfhPzv2mFKZFHdZaViw%3D\" alt=\"\">\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>定义\u003C\u002Fstrong>：内存中相邻行（行主序）或相邻列（列主序）元素之间的跨度。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>存在意义\u003C\u002Fstrong>：\u003Cul>\n\u003Cli>兼容\u003Cstrong>分块矩阵\u003C\u002Fstrong>运算（子矩阵在大矩阵中的索引）。\u003C\u002Fli>\n\u003Cli>兼容硬件底层的\u003Cstrong>内存对齐 Padding\u003C\u002Fstrong>，例如矩阵每行可能扩展额外空间，使 Leading Dimension 大于逻辑矩阵维度，以满足 SIMD 加载和缓存访问要求。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>避坑指南\u003C\u002Fstrong>：LD 不一定等于矩阵物理维度，设置错误会导致读取数据错位；建议通过画图或编写验证代码加深理解。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"实战演示\">\u003Ca class=\"anchor\" href=\"#实战演示\" aria-label=\"跳转到标题：实战演示\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>实战演示\u003C\u002Fh2>\u003Ch3 id=\"ref-gemm-baseline-的问题\">\u003Ca class=\"anchor\" href=\"#ref-gemm-baseline-的问题\" aria-label=\"跳转到标题：Ref GEMM (Baseline) 的问题\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Ref GEMM (Baseline) 的问题\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw05.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=k2UKcGntA2Vnk%2ByiisLnGl0Kjsk%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>实现\u003C\u002Fstrong>：三层 for 循环，最内层为 K 循环。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>瓶颈\u003C\u002Fstrong>：访问 B 矩阵时跨列读取（stride = LDB），导致严重的 \u003Cstrong>Cache Miss\u003C\u002Fstrong>，性能极低。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"naive-gemm-的改进\">\u003Ca class=\"anchor\" href=\"#naive-gemm-的改进\" aria-label=\"跳转到标题：Naive GEMM 的改进\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Naive GEMM 的改进\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw06.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=pfcXc1mrP9lkEF1K%2Fr0aNobmOPs%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>循环变换\u003C\u002Fstrong>：将 K 循环提至外层，J 循环置于最内层。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>访存优化\u003C\u002Fstrong>：\u003Cul>\n\u003Cli>A 矩阵按行遍历，B 矩阵按行遍历，C 矩阵按行写入。\u003C\u002Fli>\n\u003Cli>保证内存连续访问，大幅提升 Cache 命中率。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>效果\u003C\u002Fstrong>：性能提升 10~20 倍。\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>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw07.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=DCN3uLvoW5camtGwgb7ZjhvRSSk%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>任务划分 (GEMMTask)\u003C\u002Fstrong>：定义 \u003Ccode>begin\u003C\u002Fcode> 和 \u003Ccode>end\u003C\u002Fcode> 参数，按\u003Cstrong>行范围\u003C\u002Fstrong>切分 A 和 C 矩阵的计算任务。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Worker 机制\u003C\u002Fstrong>：每个线程执行一个 Job，处理指定行范围内的 GEMM 计算。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>线程管理\u003C\u002Fstrong>：\u003Cul>\n\u003Cli>获取硬件最大线程数（设定最小值保底，如 4 线程）。\u003C\u002Fli>\n\u003Cli>预创建线程池，避免重复创建销毁开销。\u003C\u002Fli>\n\u003Cli>使用 \u003Ccode>join\u003C\u002Fcode> 同步原语等待所有任务完成。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw08.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=TgkERPGDd304iS8ognMiOReLru4%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"simd-指令集加速\">\u003Ca class=\"anchor\" href=\"#simd-指令集加速\" aria-label=\"跳转到标题：SIMD 指令集加速\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>SIMD 指令集加速\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw09.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=WoSJ1unmqMRqdC%2BBN1Vd2YSrQ2A%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw10.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=WKv7%2FDSdBQJ3X%2Fwc2gikz%2F6W7DY%3D\" alt=\"\">\u003C\u002Fp>\n\u003Col start=\"2\">\n\u003Cli>\u003Cp>\u003Cstrong>核心操作流\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Broadcast\u003C\u002Fstrong>：将 A 的元素广播填满寄存器。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Load\u003C\u002Fstrong>：批量加载 B 和 C 的数据到 256 位寄存器。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>FMA\u003C\u002Fstrong>：执行乘加融合运算 ($A     imes B + C$)，单次处理 8 个双精度浮点数。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Store\u003C\u002Fstrong>：将结果写回内存。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>边界处理\u003C\u002Fstrong>：非对齐尾部元素使用标量循环处理。\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>性能观察\u003C\u002Fstrong>：相比多线程有进一步提升，但现代编译器自动向量化能力较强，手动优化边际收益递减。\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3 id=\"openmp-并行加速\">\u003Ca class=\"anchor\" href=\"#openmp-并行加速\" aria-label=\"跳转到标题：OpenMP 并行加速\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>OpenMP 并行加速\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw11.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=oz%2FT5jTxnkHu3Nr6prU%2BfXveaG4%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>优势\u003C\u002Fstrong>：通过预编译指令（Pragma）自动实现循环并行，代码侵入性低。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>集成\u003C\u002Fstrong>：仅需 \u003Ccode>include\u003C\u002Fcode> 头文件并在 xmake 中添加编译 flag。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>性能表现\u003C\u002Fstrong>：优于简单的手写多线程实现（底层包含更多调度优化），且具备良好的可复现性。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"厂商数学库-intel-mkl\">\u003Ca class=\"anchor\" href=\"#厂商数学库-intel-mkl\" aria-label=\"跳转到标题：厂商数学库 (Intel MKL)\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>厂商数学库 (Intel MKL)\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_81_zw12.jpg?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=m77nOMd4u8qe%2F7B5QhZ%2FfsoO2tE%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>特点\u003C\u002Fstrong>：系统级底层优化，针对特定硬件架构极致调优。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>使用\u003C\u002Fstrong>：完全兼容 BLAS 接口，零迁移成本，仅需传入正确参数。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>性能对比\u003C\u002Fstrong>：\u003Cul>\n\u003Cli>相比 OpenMP 性能翻倍。\u003C\u002Fli>\n\u003Cli>相比手写优化版本提升 5~6 倍。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>工程启示\u003C\u002Fstrong>：通用算法优先使用官方成熟库，避免重复造轮子，将精力聚焦于业务特有逻辑的优化。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"加入训练营\">\u003Ca class=\"anchor\" href=\"#加入训练营\" aria-label=\"跳转到标题：加入训练营\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>加入训练营\u003C\u002Fh2>\u003Ch4 id=\"完整课程内容-请观看直播或查看课程回放\">\u003Ca class=\"anchor\" href=\"#完整课程内容-请观看直播或查看课程回放\" aria-label=\"跳转到标题：📺完整课程内容，请观看直播或查看课程回放：\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>📺完整课程内容，请观看直播或查看课程回放：\u003C\u002Fh4>\u003Cp>\u003Cstrong>InfiniTensor 官网\u003C\u002Fstrong>： \u003Ca href=\"https:\u002F\u002Fwww.infinitensor.com\">https:\u002F\u002Fwww.infinitensor.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>B站直播\u003C\u002Fstrong>： InfiniTensor 官方直播间\u003C\u002Fp>\n\u003Cp>\u003Cstrong>视频号直播\u003C\u002Fstrong>： InfiniTensor 视频号预约\u003C\u002Fp>\n\u003Cp>\u003Cstrong>答疑交流\u003C\u002Fstrong>： 训练营官方社群⬇️\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002F2026-xjq.png?Expires=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=wGzqtB9HsaU4IHS5eDT0qyV2lsg%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=1792752563&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=9Am%2FQfw7y%2BpppXGy6g1VG29SISM%3D\" alt=\"\">\u003C\u002Fp>\n",[128,130,133,136,139,141,144,147,149,152,155,158,160,164],{"id":129,"text":129,"level":110},"测试框架介绍",{"id":131,"text":132,"level":110},"blas-接口与-leading-dimension-详解","BLAS 接口与 Leading Dimension 详解",{"id":134,"text":135,"level":9},"gemm-接口核心参数解析","GEMM 接口核心参数解析",{"id":137,"text":138,"level":9},"leading-dimension-ld","Leading Dimension (LD)",{"id":140,"text":140,"level":110},"实战演示",{"id":142,"text":143,"level":9},"ref-gemm-baseline-的问题","Ref GEMM (Baseline) 的问题",{"id":145,"text":146,"level":9},"naive-gemm-的改进","Naive GEMM 的改进",{"id":148,"text":148,"level":9},"多线程实现思路",{"id":150,"text":151,"level":9},"simd-指令集加速","SIMD 指令集加速",{"id":153,"text":154,"level":9},"openmp-并行加速","OpenMP 并行加速",{"id":156,"text":157,"level":9},"厂商数学库-intel-mkl","厂商数学库 (Intel MKL)",{"id":159,"text":159,"level":110},"加入训练营",{"id":161,"text":162,"level":163},"完整课程内容-请观看直播或查看课程回放","📺完整课程内容，请观看直播或查看课程回放：",4,{"id":165,"text":165,"level":110},"关注与交流"]