[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"study-material-detail-study-90":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=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=fLKIdTmv5ztTF5lNyW4vFO%2FwiU4%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=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=IfcKyBkOe6Ug2cb8ODO9I1IUNkA%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=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Ev4DWdZSXJ0t1T4u2JL5qybAazs%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_90_fm.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=8aks1OaXMz2F1zHTKWllINwwIu0%3D","寒武纪 BANG,MLU 算子开发,NRAM,异步访存,PyTorch 自定义算子","基于 BANG 平台实战 Sigmoid、MatMul 算子，讲解 BANG C++ 内核编写、异步访存、NRAM 片上存储优化、多级任务拆分与 PyTorch 算子完整集成调优流程。","2026-10-22 20:38:11",2,"2026 夏季 InfiniTensor 训练营 CUDA 编程 7：《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 2》","![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw01.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=IInqAgs1YQu7lZousE8OI52GZFE%3D)\r\n\r\n\u003Cspan style=\"font-size:12px;color:#555;\"> 8 月 3 日，2026 夏季 InfiniTensor 训练营 CUDA 编程方向第七课《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 2》开讲。\r\n上节课《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 1》讲解了寒武纪 NeuWare 软件栈架构与 BANG 异构计算平台，涵盖 PyTorch\u002FTensorFlow 框架适配、CNToolkit 工具链、算子库开发及性能调优等核心知识点。\u003C\u002Fspan>\r\n\r\n本节课聚焦 BANG 异构计算平台，通过 Sigmoid 和 MatMul 两个案例，串联了 MLU 编程的核心概念。带大家掌握 PyTorch 自定义算子开发流程及性能调优思路。\r\n\r\n\r\n## 算子开发与集成实验\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw02.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Vtr5YbfoYfwvrJ1bDA3DrEqPJo4%3D)\r\n\r\n### 实现 Sigmoid 算子\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw03.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=alttFqHhhwBJjWqfLNBSKSER5s4%3D)\r\n\r\n#### 1. 工程目录结构解析\r\n- **顶层**：扩展算子代码目录 + 构建脚本 + 测试用例\r\n- **源码分层**：\r\n  - `mlu\u002F`：存放 BANG C++ 实现的算子 Kernel 及 API\r\n  - `cpp\u002F`：PyTorch C++ API 封装层\r\n  - `.py`：Python 接口包装层\r\n\r\n#### 2. BANG C++ Kernel 开发核心\r\n1.**Built-in 接口调用**：使用 CNCC\u002FBANG C++ 手册中的 `active_sigmoid` 向量 SIMD 接口\r\n\r\n2.**Kernel定义**：使用 `__mlu_global__` 修饰符，模板化支持多数据类型\r\n\r\n3.**任务拆分策略**：\r\n- 利用内置变量 `taskDim` 进行总元素拆分（虚拟 Task 映射到物理核\u002FCluster）\r\n- **多级拆分**：先按多核多任务拆分，再在单任务内用循环处理\r\n- **边界处理**：针对非对齐数据，增加尾部余数段处理代码\r\n\r\n4.**异步访存模型（高性能关键）**：\r\n- **Async 流程**：`async copy (DRAM→NRAM)` → `sync IO` → `Compute` → `sync Compute` → `async copy (NRAM→DRAM)` → `sync IO`\r\n- **入门建议**：初期可省略 async\u002Fsync，依赖 CNCC 编译器自动管理依赖；功能验证无误后，再切换至显式异步控制以追求极致性能\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw04.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=qYJA2OuUPK83nEXja9FoH4CC22g%3D)\r\n\r\n### 集成进 PyTorch\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw05.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=bJAlzmAxtkjOHFJJQTFshkmAfoI%3D)\r\n\r\n1.**C++封装**：将 Kernel 指针\u002F大小参数转换为 PyTorch Tensor 对象\r\n\r\n2.**算子注册**：使用 PyTorch 官方宏将自定义算子注册到分发机制中\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw06.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=9iJEBV5iC6%2BJtgoZm8%2Fp2fkQmrk%3D)\r\n\r\n3.**混合编译流程**：\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw07.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tjLC%2BHR3tv4AEi5Cdg%2BVhItVbt8%3D)\r\n\r\n\r\n## 算子性能优化实验\r\n### 原始标量版本矩阵乘\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw08.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Dn76oDUv9xmDpZh185P1UePy5w4%3D)\r\n\r\n1. 直接将 CPU 标量代码移植为 MLU Kernel\r\n2. 单核单 Block 执行（1×1×1配置）\r\n3. 使用 `notifier` 挂在队列进行精准耗时统计\r\n4. 结果：性能极差，仅作为 Baseline\r\n\r\n### 使用片上 NRAM 的矩阵乘\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw09.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=B8KnLgynwJ54HX%2BfbMdVgyBvyX0%3D)\r\n\r\n1. **优化原理**：利用片上 NRAM（几百K~2MB）的数据局部性，降低访存延迟\r\n2. **编程约束**：NRAM 属于片上高速存储空间，需手动申请静态数组并按块拆分\r\n3. **访存模式**：两读一写，数据搬运至 NRAM 后进行标量计算\r\n4. **结果**：2000ms+ → 96ms（仍有差距）\r\n\r\n### 向量化计算替换\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw10.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=teZIMmkh7zML7ECUGBp7CEv0m2M%3D)\r\n\r\n1.将标量循环替换为 BANG Built-in 函数 `__bang_matmul`\r\n\r\n2.释放 MLU 张量\u002F向量运算单元能力\r\n\r\n### 使用多核的矩阵乘\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw11.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=e%2Bve%2FUvxOZ1RgFU9Al0IglyKlOg%3D)\r\n\r\n1.**Host端**：增大 Block 数量（如 128），匹配数据规模\r\n\r\n2.**Device端**：\r\n- 总任务按 Block 数切分 + 循环迭代\r\n- **循环不变量外提**：W 矩阵复用，将其从 Global DRAM 到 NRAM 的搬运移至循环外（编译器亦可自动优化）\r\n- 循环内仅切片访问左矩阵并计算写回\r\n\r\n3.**结果**：对比 46008ms，MLU 仅需0.595ms\r\n\r\n### 使用三级流水的矩阵乘\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw12.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ILBu86sNPevAEWc53FvOhbVlTKI%3D)\r\n\r\n1.**依赖控制**：\r\n- 显式 Async 写法：区分 `sync_io` \u002F `sync_compute` \u002F `sync_move`\r\n- 简化写法：使用全 `sync` 保证正确性（牺牲少量性能换取开发效率）\r\n\r\n2.**实战备注**：\r\n- 本例因数据规整且编译器已做自动优化，显式流水收益有限\r\n- 真实场景：面对可变 Shape、NRAM 容量限制等复杂情况，手动流水与精细化内存管理是必备技能\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\u002FKnowledge_Base\u002Fqun_1072.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=O6qiJ56kps86x5e6nua5CYAAaqU%3D)\r\n\r\n## 关注与交流\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_ewm02.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ne2IbUxGKCs8rwPiAjr5B%2BpodTI%3D)",{"publishTime":7,"createTime":109,"canonicalPath":114,"id":115,"title":116},"\u002Fstudy-material\u002Fstudy-88","study-88","2026 夏季 InfiniTensor 训练营推理引擎 4：《大模型计算优化与分布式推理》",20,"\u002Fstudy-material\u002Fstudy-90","study-90","markdown",{"publishTime":7,"createTime":109,"canonicalPath":122,"id":123,"title":124},"\u002Fstudy-material\u002Fstudy-91","study-91","2026 夏季 InfiniTensor 训练营 AI 编译器 3：《AI 编译器中的后端优化》",{"htmlContent":126,"headings":127},"\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw01.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=IInqAgs1YQu7lZousE8OI52GZFE%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cspan style=\"font-size:12px;color:#555;\"> 8 月 3 日，2026 夏季 InfiniTensor 训练营 CUDA 编程方向第七课《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 2》开讲。\u003Cbr>上节课《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 1》讲解了寒武纪 NeuWare 软件栈架构与 BANG 异构计算平台，涵盖 PyTorch\u002FTensorFlow 框架适配、CNToolkit 工具链、算子库开发及性能调优等核心知识点。\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>本节课聚焦 BANG 异构计算平台，通过 Sigmoid 和 MatMul 两个案例，串联了 MLU 编程的核心概念。带大家掌握 PyTorch 自定义算子开发流程及性能调优思路。\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_90_zw02.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Vtr5YbfoYfwvrJ1bDA3DrEqPJo4%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"实现-sigmoid-算子\">\u003Ca class=\"anchor\" href=\"#实现-sigmoid-算子\" aria-label=\"跳转到标题：实现 Sigmoid 算子\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>实现 Sigmoid 算子\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw03.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=alttFqHhhwBJjWqfLNBSKSER5s4%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch4 id=\"1-工程目录结构解析\">\u003Ca class=\"anchor\" href=\"#1-工程目录结构解析\" aria-label=\"跳转到标题：1. 工程目录结构解析\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>1. 工程目录结构解析\u003C\u002Fh4>\u003Cul>\n\u003Cli>\u003Cstrong>顶层\u003C\u002Fstrong>：扩展算子代码目录 + 构建脚本 + 测试用例\u003C\u002Fli>\n\u003Cli>\u003Cstrong>源码分层\u003C\u002Fstrong>：\u003Cul>\n\u003Cli>\u003Ccode>mlu\u002F\u003C\u002Fcode>：存放 BANG C++ 实现的算子 Kernel 及 API\u003C\u002Fli>\n\u003Cli>\u003Ccode>cpp\u002F\u003C\u002Fcode>：PyTorch C++ API 封装层\u003C\u002Fli>\n\u003Cli>\u003Ccode>.py\u003C\u002Fcode>：Python 接口包装层\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4 id=\"2-bang-c-kernel-开发核心\">\u003Ca class=\"anchor\" href=\"#2-bang-c-kernel-开发核心\" aria-label=\"跳转到标题：2. BANG C++ Kernel 开发核心\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>2. BANG C++ Kernel 开发核心\u003C\u002Fh4>\u003Cp>1.\u003Cstrong>Built-in 接口调用\u003C\u002Fstrong>：使用 CNCC\u002FBANG C++ 手册中的 \u003Ccode>active_sigmoid\u003C\u002Fcode> 向量 SIMD 接口\u003C\u002Fp>\n\u003Cp>2.\u003Cstrong>Kernel定义\u003C\u002Fstrong>：使用 \u003Ccode>__mlu_global__\u003C\u002Fcode> 修饰符，模板化支持多数据类型\u003C\u002Fp>\n\u003Cp>3.\u003Cstrong>任务拆分策略\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>利用内置变量 \u003Ccode>taskDim\u003C\u002Fcode> 进行总元素拆分（虚拟 Task 映射到物理核\u002FCluster）\u003C\u002Fli>\n\u003Cli>\u003Cstrong>多级拆分\u003C\u002Fstrong>：先按多核多任务拆分，再在单任务内用循环处理\u003C\u002Fli>\n\u003Cli>\u003Cstrong>边界处理\u003C\u002Fstrong>：针对非对齐数据，增加尾部余数段处理代码\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>4.\u003Cstrong>异步访存模型（高性能关键）\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Async 流程\u003C\u002Fstrong>：\u003Ccode>async copy (DRAM→NRAM)\u003C\u002Fcode> → \u003Ccode>sync IO\u003C\u002Fcode> → \u003Ccode>Compute\u003C\u002Fcode> → \u003Ccode>sync Compute\u003C\u002Fcode> → \u003Ccode>async copy (NRAM→DRAM)\u003C\u002Fcode> → \u003Ccode>sync IO\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>入门建议\u003C\u002Fstrong>：初期可省略 async\u002Fsync，依赖 CNCC 编译器自动管理依赖；功能验证无误后，再切换至显式异步控制以追求极致性能\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw04.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=qYJA2OuUPK83nEXja9FoH4CC22g%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"集成进-pytorch\">\u003Ca class=\"anchor\" href=\"#集成进-pytorch\" aria-label=\"跳转到标题：集成进 PyTorch\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>集成进 PyTorch\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw05.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=bJAlzmAxtkjOHFJJQTFshkmAfoI%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>1.\u003Cstrong>C++封装\u003C\u002Fstrong>：将 Kernel 指针\u002F大小参数转换为 PyTorch Tensor 对象\u003C\u002Fp>\n\u003Cp>2.\u003Cstrong>算子注册\u003C\u002Fstrong>：使用 PyTorch 官方宏将自定义算子注册到分发机制中\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw06.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=9iJEBV5iC6%2BJtgoZm8%2Fp2fkQmrk%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>3.\u003Cstrong>混合编译流程\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw07.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tjLC%2BHR3tv4AEi5Cdg%2BVhItVbt8%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch2 id=\"算子性能优化实验\">\u003Ca class=\"anchor\" href=\"#算子性能优化实验\" aria-label=\"跳转到标题：算子性能优化实验\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>算子性能优化实验\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_90_zw08.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Dn76oDUv9xmDpZh185P1UePy5w4%3D\" alt=\"\">\u003C\u002Fp>\n\u003Col>\n\u003Cli>直接将 CPU 标量代码移植为 MLU Kernel\u003C\u002Fli>\n\u003Cli>单核单 Block 执行（1×1×1配置）\u003C\u002Fli>\n\u003Cli>使用 \u003Ccode>notifier\u003C\u002Fcode> 挂在队列进行精准耗时统计\u003C\u002Fli>\n\u003Cli>结果：性能极差，仅作为 Baseline\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3 id=\"使用片上-nram-的矩阵乘\">\u003Ca class=\"anchor\" href=\"#使用片上-nram-的矩阵乘\" aria-label=\"跳转到标题：使用片上 NRAM 的矩阵乘\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>使用片上 NRAM 的矩阵乘\u003C\u002Fh3>\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_90_zw09.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=B8KnLgynwJ54HX%2BfbMdVgyBvyX0%3D\" alt=\"\">\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>优化原理\u003C\u002Fstrong>：利用片上 NRAM（几百K~2MB）的数据局部性，降低访存延迟\u003C\u002Fli>\n\u003Cli>\u003Cstrong>编程约束\u003C\u002Fstrong>：NRAM 属于片上高速存储空间，需手动申请静态数组并按块拆分\u003C\u002Fli>\n\u003Cli>\u003Cstrong>访存模式\u003C\u002Fstrong>：两读一写，数据搬运至 NRAM 后进行标量计算\u003C\u002Fli>\n\u003Cli>\u003Cstrong>结果\u003C\u002Fstrong>：2000ms+ → 96ms（仍有差距）\u003C\u002Fli>\n\u003C\u002Fol>\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_90_zw10.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=teZIMmkh7zML7ECUGBp7CEv0m2M%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>1.将标量循环替换为 BANG Built-in 函数 \u003Ccode>__bang_matmul\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>2.释放 MLU 张量\u002F向量运算单元能力\u003C\u002Fp>\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_90_zw11.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=e%2Bve%2FUvxOZ1RgFU9Al0IglyKlOg%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>1.\u003Cstrong>Host端\u003C\u002Fstrong>：增大 Block 数量（如 128），匹配数据规模\u003C\u002Fp>\n\u003Cp>2.\u003Cstrong>Device端\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>总任务按 Block 数切分 + 循环迭代\u003C\u002Fli>\n\u003Cli>\u003Cstrong>循环不变量外提\u003C\u002Fstrong>：W 矩阵复用，将其从 Global DRAM 到 NRAM 的搬运移至循环外（编译器亦可自动优化）\u003C\u002Fli>\n\u003Cli>循环内仅切片访问左矩阵并计算写回\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>3.\u003Cstrong>结果\u003C\u002Fstrong>：对比 46008ms，MLU 仅需0.595ms\u003C\u002Fp>\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_90_zw12.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ILBu86sNPevAEWc53FvOhbVlTKI%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>1.\u003Cstrong>依赖控制\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>显式 Async 写法：区分 \u003Ccode>sync_io\u003C\u002Fcode> \u002F \u003Ccode>sync_compute\u003C\u002Fcode> \u002F \u003Ccode>sync_move\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>简化写法：使用全 \u003Ccode>sync\u003C\u002Fcode> 保证正确性（牺牲少量性能换取开发效率）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>2.\u003Cstrong>实战备注\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>本例因数据规整且编译器已做自动优化，显式流水收益有限\u003C\u002Fli>\n\u003Cli>真实场景：面对可变 Shape、NRAM 容量限制等复杂情况，手动流水与精细化内存管理是必备技能\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\u002FKnowledge_Base\u002Fqun_1072.jpg?Expires=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=O6qiJ56kps86x5e6nua5CYAAaqU%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=1792752590&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ne2IbUxGKCs8rwPiAjr5B%2BpodTI%3D\" alt=\"\">\u003C\u002Fp>\n",[128,130,133,137,140,143,145,147,150,152,154,156,158,161],{"id":129,"text":129,"level":110},"算子开发与集成实验",{"id":131,"text":132,"level":9},"实现-sigmoid-算子","实现 Sigmoid 算子",{"id":134,"text":135,"level":136},"1-工程目录结构解析","1. 工程目录结构解析",4,{"id":138,"text":139,"level":136},"2-bang-c-kernel-开发核心","2. BANG C++ Kernel 开发核心",{"id":141,"text":142,"level":9},"集成进-pytorch","集成进 PyTorch",{"id":144,"text":144,"level":110},"算子性能优化实验",{"id":146,"text":146,"level":9},"原始标量版本矩阵乘",{"id":148,"text":149,"level":9},"使用片上-nram-的矩阵乘","使用片上 NRAM 的矩阵乘",{"id":151,"text":151,"level":9},"向量化计算替换",{"id":153,"text":153,"level":9},"使用多核的矩阵乘",{"id":155,"text":155,"level":9},"使用三级流水的矩阵乘",{"id":157,"text":157,"level":110},"加入训练营",{"id":159,"text":160,"level":136},"完整课程内容-请观看直播或查看课程回放","📺 完整课程内容，请观看直播或查看课程回放：",{"id":162,"text":162,"level":110},"关注与交流"]