[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"news-detail-news-39":49,"site-header-camps":147},{"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],{"newsDetail":50,"processedData":71},{"publishTime":51,"img":52,"keywords":53,"treeType":44,"description":54,"showStatus":44,"updateTime":55,"type":44,"title":56,"content":57,"nextArticle":58,"createTime":55,"sortOrder":62,"canonicalPath":63,"id":64,"contentType":65,"prevArticle":66},"2026-05-15 08:00:00","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_fm.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=VllAl6HZ3xFGiBR%2FzQD7oVrP7zs%3D","NineToothed,Operator Skill,AI Skill,算子开发,AOT编译","文章围绕 NineToothed Operator Skill 给出算子开发实战路径，说明如何借助 AI Skill 完成算子编写、调试与落地。","2026-10-22 20:38:11","用 AI Skill 写九齿算子：NineToothed Operator Skill 实战指南",">写 GPU 算子一定要手搓 Triton kernel 吗？有了 NineToothed Operator Skill，你只需要提供一段 CPU 参考实现，剩下的交给 AI。\r\n\r\n## 写 GPU 算子，到底痛在哪？\r\n做过算子开发的同学，大概都经历过这样一套\"折磨流程\"：\r\n\r\n1. **先写 CPU 版本**——用 NumPy 或 PyTorch 快速验证算法对不对；\r\n2. **再翻译成 Triton kernel**——处理指针运算、mask、数据类型转换等底层细节；\r\n3. **反复调精度**——fp16 和 fp32 的差异、累加溢出、各种边界 case；\r\n4. **手动调参**——'BLOCK_SIZE'、'num_warps'、'num_stages'……一个个试。\r\n\r\n整个过程不仅耗时，而且极其容易出错。尤其是从 CPU 实现到 Triton kernel 的翻译环节，充斥着大量重复的模板代码，写多了真的会怀疑人生。\r\n\r\n后来有了 NineToothed 框架，用 Python 风格的语法替代了原始 Triton，自动处理指针运算和 mask，已经省了不少事。但你仍然需要理解 arrangement（分块策略）和 application（计算逻辑）的设计，掌握 'tile()'、'expand()'、'squeeze()' 等元操作。\r\n\r\n门槛降低了，但还没低到\"人人都能写\"的程度。\r\n\r\n而 **NineToothed Operator Skill** 的目标更强：让 AI 完成从 CPU 实现到 NineToothed 算子的全流程——代码生成、自动调优、精度验证、性能优化，一条龙服务。\r\n\r\n## NineToothed Operator Skill\u003Cbr>是什么？\r\n简单说，它是一个为 Claude Code（或兼容 AI 编程助手）设计的 Skill，定义在项目的 '.claude\u002Fskills\u002Fninetoothed-operator\u002FSKILL.md' 中。\r\n\r\n它教会 AI 做四件事：\r\n\r\n- 分析用户提供的 CPU 参考实现\r\n- 判断算子类型（element-wise、reduction、matmul、attention……）\r\n- 生成符合 NineToothed 规范的 GPU 算子代码\r\n- 执行完整的\"自动调优 → 精度验证 → 性能优化\"闭环\r\n\r\n你给 CPU 代码，AI 还你 GPU 算子。\r\n\r\n## 核心工作流：严格的六阶段闭环\r\nSkill 定义了一个**不允许跳过任何阶段**的六阶段工作流：\r\n\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw01.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=lA4B3%2FX1514QD3IS2lp6otgTIBY%3D)\r\n\r\n\r\n### 为什么\"CPU 实现是唯一的精度基准\"？\r\n这是 Skill 设计中一个非常关键的决策：\r\n1. **消除歧义**：自然语言描述可能有多种理解，但代码不会说谎\r\n2. **可复现**：每次精度验证都对比同一份 CPU 代码的输出\r\n3. **完整性**：CPU 实现通常已覆盖边界情况（None 值、空 tensor 等）\r\n\r\n### 什么时候会停止迭代？\r\n迭代不会无限循环，以下情况触发终止：\r\n1. 连续 3 次精度验证不通过 → 报告精度问题\r\n2. 连续 3 次性能改进幅度 \u003C 5% → 接受当前最优\r\n3. 达到最大迭代次数（默认 10 次）→ 输出当前结果\r\n\r\n## 两个核心概念：\u003Cbr>Arrangement & Application\r\n在看实战之前，有两个 NineToothed 的核心概念必须理解：\r\n\r\n### Arrangement（分块策略）——数据怎么切\r\nArrangement 决定 GPU 线程网格如何映射到 tensor 的各个维度。\r\n\r\n'''Python\r\ndef arrangement(input, output, BLOCK_SIZE=block_size()):\r\n    return input.tile((BLOCK_SIZE,)), output.tile((BLOCK_SIZE,))\r\n'''\r\n翻译成人话：把 'input' 和 'output' 都切成 'BLOCK_SIZE' 大小的块，每个 GPU 线程块处理一块。\r\n\r\n不同算子的 Arrangement 复杂度差异巨大：\r\n\r\n| 算子类型 | 复杂度 | 典型模式 |\r\n| --- | --- | --- |\r\n| Element-wise | 低 | 所有 tensor 同样切法 |\r\n| Reduction | 中 | 需指定规约维度 |\r\n| Matmul | 高 | tile + expand + squeeze 组合 |\r\n| Attention | 很高 | 多级层次结构 + online softmax |\r\n\r\n### Application（计算逻辑）——每块数据怎么算\r\n'''python\r\ndef application(input, output):\r\n    output = input + 1\r\n'''\r\n接收切好的 tensor 块，执行实际计算，就这么简单。\r\n\r\n### 常用原语速查表\r\n\r\n| 操作 | 语法 | 用途 |\r\n| --- | --- | --- |\r\n| 分块 | 'x.tile((BLOCK_SIZE,))' | 将 tensor 切成固定大小的块 |\r\n| 扩展 | 'x.expand((-1, N))' | 广播单维度（-1 表示保持原样） |\r\n| 压缩 | 'x.dtype.squeeze(0)' | 移除广播引入的退化维度 |\r\n| 规约 | 'ntl.sum(x) \u002F ntl.max(x)' | 求和 \u002F 最大值 |\r\n| 条件 | 'ntl.where(cond, a, b)' | 条件选择 |\r\n| 类型转换 | 'ntl.cast(x, ntl.float32)' | 精度转换 |\r\n\r\n## 精度验证：AI 怎么保证结果正确？\r\n这是整个工作流中最关键的环节。Skill 定义了详细的验证策略：\r\n\r\n### 按数据类型的容差标准：\r\n\r\n| 数据类型 | rtol | atol | 标准说明 |\r\n| --- | --- | --- | --- |\r\n| float32 | 1e-5 | 1e-5 | 标准精度 |\r\n| float16 | 1e-3 | 1e-3 | 低精度 |\r\n| bfloat16 | 1e-2 | 1e-2 | 更低精度 |\r\n| int32\u002Fint64 | 0 | 0 | 必须精确匹配 |\r\n\r\n### 按算子类型的容差标准\r\n不同算子因为计算特性不同，允许的误差范围也不同。比如 element-wise 算子（add、relu）误差极小，而 softmax 和 attention 因为涉及指数运算，误差会更大。\r\n\r\n### 四项必检\r\n1. 'torch.allclose' 在设定容差下通过\r\n2. 无 NaN 值\r\n3. 无 Inf 值\r\n4. 整数运算精确匹配\r\n\r\n## 性能优化：六策略逐项评估\r\nAuto-tune 已经处理了底层参数（BLOCK_SIZE、num_warps、num_stages）的搜索。在此基础上，性能优化子 Agent 会**严格按顺序**评估以下六项高层策略：\r\n\r\n| 优先级 | 策略 | 说明 |\r\n| --- | --- | --- |\r\n| 1 | 内存访问模式优化 | 确保合并访问（coalesced access），减少 bank conflict |\r\n| 2 | 算子融合 | 合并相邻操作，减少 kernel launch 和内存搬运 |\r\n| 3 | 循环展开 |  小循环手动展开，减少循环开销 |\r\n| 4 | 减少同步开销 | 移除不必要的同步点 |\r\n| 5 | 精度策略调整 | 在精度允许的前提下使用更低精度 |\r\n| 6 | 计算重组 | 调整计算顺序，提升指令级并行度 |\r\n\r\n>每项策略都必须显式标注\"已评估\"或\"不适用（附原因）\"，不允许跳过。\r\n\r\n## Skill 的设计哲学\r\n###  精度优先——先正确，再快速\r\n整个工作流中，精度验证在性能优化之前。精度不通过？不会进行任何性能优化。\r\n\r\n### 自我迭代——不到山穷水尽不停手\r\n性能优化不是一次性的。只有连续 3 次改进幅度低于 5% 时才停止。这意味着 AI 会不断尝试不同策略，直到性能提升空间被耗尽。\r\n\r\n>NineToothed Operator Skill 目前仍在持续迭代中。文中所描述的工作流、验证策略和优化机制，代表当前的设计思路和已实践验证的部分，并非最终形态。\r\n>**欢迎反馈，帮助我们打磨得更好**。\r\n\r\n## 实战演示：AI 生成一个 Clamp 算子\r\n光说不练假把式,来看一个完整的实战案例。根据提供的 cpu 算法，实现对应的九齿算子:\r\n'''Python\r\ndef clamp(x, min_val=None, max_val=None):\r\n    \"\"\"标准的 clamp 算子\"\"\"\r\n    y = x.copy()\r\n    if min_val is not None:\r\n        y = np.maximum(y, min_val)\r\n    if max_val is not None:\r\n        y = np.minimum(y, max_val)\r\n    return y\r\n'''\r\n#### Step 1️⃣：触发 Skill，创建任务清单\r\n根据触发机制自动加载 ninetoothed-operator skill，主 Agent 立即创建包含 6 个阶段的任务清单：分析 CPU 实现→生成初始算子→自动调优→精度验证→性能优化→输出报告。有条不紊地逐步推进。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw02.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=c6urvpo0L05dkyJU64FxSjGFdEc%3D)\r\n\r\n#### Step 2️⃣：分析 CPU 实现\r\n主 Agent 提取关键信息：\r\n- 算子类型：Element-wise（逐元素）\r\n- 输入：1 个张量 + 2 个可选标量参数（'min_val'、'max_val'）\r\n- 输出：形状与输入相同\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw03.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=GpJVIAzx7CCtqOZaZZZW4y5jxcg%3D)\r\n\r\n#### Step 3️⃣：探索代码库 + 生成初始代码\r\n子 Agent 探索 NineToothed 代码库，查找已有的逐元素算子作为参考，了解标量参数的声明方式'（Tensor(0)）'以及 'ntl.maximum'、'ntl.minimum' 等 API 的使用模式。\r\n\r\n生成的 NineToothed 核心逻辑仅需 三行：先用 'ntl.minimum '截断上界，再用 'ntl.maximum' 截断下界。\r\n\r\n'min_val' 和 'max_val' 以 'Tensor(0)' 声明为标量，未提供时默认为 'inf\u002F-inf'，对应的截断操作不产生实际效果。同时生成覆盖各种边界条件的测试用例。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw04.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ttUA4pFj4%2Bk18dQ6ESD5%2B82krMM%3D)\r\n\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw05.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=fR7CzOSEne2Pb2JySaenjhVtelc%3D)\r\n\r\n#### Step 4️⃣：精度验证\r\n以 CPU 实现为基准，对比 GPU 输出。测试覆盖：\r\n- float32 \u002F float16 两种数据类型\r\n- 不同输入规模\r\n- 五种场景：\"同时限定上下界\"、\"仅限下界\"、\"仅限上界\"、\"无限定\"、\"多维输入\"\r\n\r\n**全部测试通过，精度验证合格。**\r\n\r\n#### Step 5️⃣：性能优化\r\n按六项策略优先级依次评估。对于 'clamp' 这种简单的逐元素算子，Auto-tune 已达最优，6 项策略均无额外提升空间。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw06.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ysMSi7OSO5hgEXZVkci23VNqQvY%3D)\r\n\r\n#### Step 6️⃣：输出报告\r\n主 Agent 输出完整报告：最终代码位置、精度验证结果（28\u002F28 通过）、自动调优结果、以及性能优化策略评估记录，整个算子生成流程结束。\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw07.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=LwprrChSbFvLXju%2F9gOsSrddDvc%3D)\r\n\r\n\r\n## 写在最后\r\nNineToothed Operator Skill 本质上在做一件事：把\"写 GPU 算子\"这件事的门槛，从\"懂 Triton + 懂调优 + 懂精度\"降到了\"写一段能跑的 CPU 代码\"。\r\n\r\n你不需要理解 tile\u002Fexpand\u002Fsqueeze 怎么组合，不需要手动调 BLOCK_SIZE，甚至不需要知道什么是 bank conflict——AI 帮你全包了。\r\n\r\n> **NineToothed（九齿）** 开源仓库：https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002Fninetoothed\r\n **2026春季启元人工智能大赛同步开放「九齿 · skill」创新挑战赛道**，欢迎报名参与： https:\u002F\u002Fwww.infinitensor.com\u002F， 或点击 **【阅读原文】** 直达报名网站",{"publishTime":51,"createTime":55,"canonicalPath":59,"id":60,"title":61},"\u002Fnews\u002Fnews-38","news-38","九源智能计算系统生态联合体走进西北工业大学，共探国产智能计算产学研协同创新路径",35,"\u002Fnews\u002Fnews-39","news-39","markdown",{"publishTime":67,"createTime":55,"canonicalPath":68,"id":69,"title":70},"2026-05-17 08:00:00","\u002Fnews\u002Fnews-40","news-40","今晚 8 点，2026 春季启元人工智能大赛启动会等你来！",{"htmlContent":72,"headings":73},"\u003Cblockquote>\n\u003Cp>写 GPU 算子一定要手搓 Triton kernel 吗？有了 NineToothed Operator Skill，你只需要提供一段 CPU 参考实现，剩下的交给 AI。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"写-gpu-算子-到底痛在哪\">\u003Ca class=\"anchor\" href=\"#写-gpu-算子-到底痛在哪\" aria-label=\"跳转到标题：写 GPU 算子，到底痛在哪？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>写 GPU 算子，到底痛在哪？\u003C\u002Fh2>\u003Cp>做过算子开发的同学，大概都经历过这样一套&quot;折磨流程&quot;：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>先写 CPU 版本\u003C\u002Fstrong>——用 NumPy 或 PyTorch 快速验证算法对不对；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>再翻译成 Triton kernel\u003C\u002Fstrong>——处理指针运算、mask、数据类型转换等底层细节；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>反复调精度\u003C\u002Fstrong>——fp16 和 fp32 的差异、累加溢出、各种边界 case；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>手动调参\u003C\u002Fstrong>——&#39;BLOCK_SIZE&#39;、&#39;num_warps&#39;、&#39;num_stages&#39;……一个个试。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>整个过程不仅耗时，而且极其容易出错。尤其是从 CPU 实现到 Triton kernel 的翻译环节，充斥着大量重复的模板代码，写多了真的会怀疑人生。\u003C\u002Fp>\n\u003Cp>后来有了 NineToothed 框架，用 Python 风格的语法替代了原始 Triton，自动处理指针运算和 mask，已经省了不少事。但你仍然需要理解 arrangement（分块策略）和 application（计算逻辑）的设计，掌握 &#39;tile()&#39;、&#39;expand()&#39;、&#39;squeeze()&#39; 等元操作。\u003C\u002Fp>\n\u003Cp>门槛降低了，但还没低到&quot;人人都能写&quot;的程度。\u003C\u002Fp>\n\u003Cp>而 \u003Cstrong>NineToothed Operator Skill\u003C\u002Fstrong> 的目标更强：让 AI 完成从 CPU 实现到 NineToothed 算子的全流程——代码生成、自动调优、精度验证、性能优化，一条龙服务。\u003C\u002Fp>\n\u003Ch2 id=\"ninetoothed-operator-skill是什么\">\u003Ca class=\"anchor\" href=\"#ninetoothed-operator-skill是什么\" aria-label=\"跳转到标题：NineToothed Operator Skill是什么？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>NineToothed Operator Skill\u003Cbr>是什么？\u003C\u002Fh2>\u003Cp>简单说，它是一个为 Claude Code（或兼容 AI 编程助手）设计的 Skill，定义在项目的 &#39;.claude\u002Fskills\u002Fninetoothed-operator\u002FSKILL.md&#39; 中。\u003C\u002Fp>\n\u003Cp>它教会 AI 做四件事：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>分析用户提供的 CPU 参考实现\u003C\u002Fli>\n\u003Cli>判断算子类型（element-wise、reduction、matmul、attention……）\u003C\u002Fli>\n\u003Cli>生成符合 NineToothed 规范的 GPU 算子代码\u003C\u002Fli>\n\u003Cli>执行完整的&quot;自动调优 → 精度验证 → 性能优化&quot;闭环\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>你给 CPU 代码，AI 还你 GPU 算子。\u003C\u002Fp>\n\u003Ch2 id=\"核心工作流-严格的六阶段闭环\">\u003Ca class=\"anchor\" href=\"#核心工作流-严格的六阶段闭环\" aria-label=\"跳转到标题：核心工作流：严格的六阶段闭环\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>核心工作流：严格的六阶段闭环\u003C\u002Fh2>\u003Cp>Skill 定义了一个\u003Cstrong>不允许跳过任何阶段\u003C\u002Fstrong>的六阶段工作流：\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw01.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=lA4B3%2FX1514QD3IS2lp6otgTIBY%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch3 id=\"为什么-quot-cpu-实现是唯一的精度基准-quot\">\u003Ca class=\"anchor\" href=\"#为什么-quot-cpu-实现是唯一的精度基准-quot\" aria-label=\"跳转到标题：为什么&amp;quot;CPU 实现是唯一的精度基准&amp;quot;？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>为什么&quot;CPU 实现是唯一的精度基准&quot;？\u003C\u002Fh3>\u003Cp>这是 Skill 设计中一个非常关键的决策：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>消除歧义\u003C\u002Fstrong>：自然语言描述可能有多种理解，但代码不会说谎\u003C\u002Fli>\n\u003Cli>\u003Cstrong>可复现\u003C\u002Fstrong>：每次精度验证都对比同一份 CPU 代码的输出\u003C\u002Fli>\n\u003Cli>\u003Cstrong>完整性\u003C\u002Fstrong>：CPU 实现通常已覆盖边界情况（None 值、空 tensor 等）\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>迭代不会无限循环，以下情况触发终止：\u003C\u002Fp>\n\u003Col>\n\u003Cli>连续 3 次精度验证不通过 → 报告精度问题\u003C\u002Fli>\n\u003Cli>连续 3 次性能改进幅度 &lt; 5% → 接受当前最优\u003C\u002Fli>\n\u003Cli>达到最大迭代次数（默认 10 次）→ 输出当前结果\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"两个核心概念-arrangement-amp-application\">\u003Ca class=\"anchor\" href=\"#两个核心概念-arrangement-amp-application\" aria-label=\"跳转到标题：两个核心概念：Arrangement &amp;amp; Application\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>两个核心概念：\u003Cbr>Arrangement &amp; Application\u003C\u002Fh2>\u003Cp>在看实战之前，有两个 NineToothed 的核心概念必须理解：\u003C\u002Fp>\n\u003Ch3 id=\"arrangement-分块策略-数据怎么切\">\u003Ca class=\"anchor\" href=\"#arrangement-分块策略-数据怎么切\" aria-label=\"跳转到标题：Arrangement（分块策略）——数据怎么切\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Arrangement（分块策略）——数据怎么切\u003C\u002Fh3>\u003Cp>Arrangement 决定 GPU 线程网格如何映射到 tensor 的各个维度。\u003C\u002Fp>\n\u003Cp>&#39;&#39;&#39;Python\u003Cbr>def arrangement(input, output, BLOCK_SIZE=block_size()):\u003Cbr>    return input.tile((BLOCK_SIZE,)), output.tile((BLOCK_SIZE,))\u003Cbr>&#39;&#39;&#39;\u003Cbr>翻译成人话：把 &#39;input&#39; 和 &#39;output&#39; 都切成 &#39;BLOCK_SIZE&#39; 大小的块，每个 GPU 线程块处理一块。\u003C\u002Fp>\n\u003Cp>不同算子的 Arrangement 复杂度差异巨大：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>算子类型\u003C\u002Fth>\n\u003Cth>复杂度\u003C\u002Fth>\n\u003Cth>典型模式\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Element-wise\u003C\u002Ftd>\n\u003Ctd>低\u003C\u002Ftd>\n\u003Ctd>所有 tensor 同样切法\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Reduction\u003C\u002Ftd>\n\u003Ctd>中\u003C\u002Ftd>\n\u003Ctd>需指定规约维度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Matmul\u003C\u002Ftd>\n\u003Ctd>高\u003C\u002Ftd>\n\u003Ctd>tile + expand + squeeze 组合\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Attention\u003C\u002Ftd>\n\u003Ctd>很高\u003C\u002Ftd>\n\u003Ctd>多级层次结构 + online softmax\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3 id=\"application-计算逻辑-每块数据怎么算\">\u003Ca class=\"anchor\" href=\"#application-计算逻辑-每块数据怎么算\" aria-label=\"跳转到标题：Application（计算逻辑）——每块数据怎么算\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Application（计算逻辑）——每块数据怎么算\u003C\u002Fh3>\u003Cp>&#39;&#39;&#39;python\u003Cbr>def application(input, output):\u003Cbr>    output = input + 1\u003Cbr>&#39;&#39;&#39;\u003Cbr>接收切好的 tensor 块，执行实际计算，就这么简单。\u003C\u002Fp>\n\u003Ch3 id=\"常用原语速查表\">\u003Ca class=\"anchor\" href=\"#常用原语速查表\" aria-label=\"跳转到标题：常用原语速查表\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>常用原语速查表\u003C\u002Fh3>\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>操作\u003C\u002Fth>\n\u003Cth>语法\u003C\u002Fth>\n\u003Cth>用途\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>分块\u003C\u002Ftd>\n\u003Ctd>&#39;x.tile((BLOCK_SIZE,))&#39;\u003C\u002Ftd>\n\u003Ctd>将 tensor 切成固定大小的块\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>扩展\u003C\u002Ftd>\n\u003Ctd>&#39;x.expand((-1, N))&#39;\u003C\u002Ftd>\n\u003Ctd>广播单维度（-1 表示保持原样）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>压缩\u003C\u002Ftd>\n\u003Ctd>&#39;x.dtype.squeeze(0)&#39;\u003C\u002Ftd>\n\u003Ctd>移除广播引入的退化维度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>规约\u003C\u002Ftd>\n\u003Ctd>&#39;ntl.sum(x) \u002F ntl.max(x)&#39;\u003C\u002Ftd>\n\u003Ctd>求和 \u002F 最大值\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>条件\u003C\u002Ftd>\n\u003Ctd>&#39;ntl.where(cond, a, b)&#39;\u003C\u002Ftd>\n\u003Ctd>条件选择\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>类型转换\u003C\u002Ftd>\n\u003Ctd>&#39;ntl.cast(x, ntl.float32)&#39;\u003C\u002Ftd>\n\u003Ctd>精度转换\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2 id=\"精度验证-ai-怎么保证结果正确\">\u003Ca class=\"anchor\" href=\"#精度验证-ai-怎么保证结果正确\" aria-label=\"跳转到标题：精度验证：AI 怎么保证结果正确？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>精度验证：AI 怎么保证结果正确？\u003C\u002Fh2>\u003Cp>这是整个工作流中最关键的环节。Skill 定义了详细的验证策略：\u003C\u002Fp>\n\u003Ch3 id=\"按数据类型的容差标准\">\u003Ca class=\"anchor\" href=\"#按数据类型的容差标准\" aria-label=\"跳转到标题：按数据类型的容差标准：\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>按数据类型的容差标准：\u003C\u002Fh3>\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>数据类型\u003C\u002Fth>\n\u003Cth>rtol\u003C\u002Fth>\n\u003Cth>atol\u003C\u002Fth>\n\u003Cth>标准说明\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>float32\u003C\u002Ftd>\n\u003Ctd>1e-5\u003C\u002Ftd>\n\u003Ctd>1e-5\u003C\u002Ftd>\n\u003Ctd>标准精度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>float16\u003C\u002Ftd>\n\u003Ctd>1e-3\u003C\u002Ftd>\n\u003Ctd>1e-3\u003C\u002Ftd>\n\u003Ctd>低精度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bfloat16\u003C\u002Ftd>\n\u003Ctd>1e-2\u003C\u002Ftd>\n\u003Ctd>1e-2\u003C\u002Ftd>\n\u003Ctd>更低精度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>int32\u002Fint64\u003C\u002Ftd>\n\u003Ctd>0\u003C\u002Ftd>\n\u003Ctd>0\u003C\u002Ftd>\n\u003Ctd>必须精确匹配\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3 id=\"按算子类型的容差标准\">\u003Ca class=\"anchor\" href=\"#按算子类型的容差标准\" aria-label=\"跳转到标题：按算子类型的容差标准\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>按算子类型的容差标准\u003C\u002Fh3>\u003Cp>不同算子因为计算特性不同，允许的误差范围也不同。比如 element-wise 算子（add、relu）误差极小，而 softmax 和 attention 因为涉及指数运算，误差会更大。\u003C\u002Fp>\n\u003Ch3 id=\"四项必检\">\u003Ca class=\"anchor\" href=\"#四项必检\" aria-label=\"跳转到标题：四项必检\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>四项必检\u003C\u002Fh3>\u003Col>\n\u003Cli>&#39;torch.allclose&#39; 在设定容差下通过\u003C\u002Fli>\n\u003Cli>无 NaN 值\u003C\u002Fli>\n\u003Cli>无 Inf 值\u003C\u002Fli>\n\u003Cli>整数运算精确匹配\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>\u003Cp>Auto-tune 已经处理了底层参数（BLOCK_SIZE、num_warps、num_stages）的搜索。在此基础上，性能优化子 Agent 会\u003Cstrong>严格按顺序\u003C\u002Fstrong>评估以下六项高层策略：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>优先级\u003C\u002Fth>\n\u003Cth>策略\u003C\u002Fth>\n\u003Cth>说明\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>内存访问模式优化\u003C\u002Ftd>\n\u003Ctd>确保合并访问（coalesced access），减少 bank conflict\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>2\u003C\u002Ftd>\n\u003Ctd>算子融合\u003C\u002Ftd>\n\u003Ctd>合并相邻操作，减少 kernel launch 和内存搬运\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>3\u003C\u002Ftd>\n\u003Ctd>循环展开\u003C\u002Ftd>\n\u003Ctd>小循环手动展开，减少循环开销\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>4\u003C\u002Ftd>\n\u003Ctd>减少同步开销\u003C\u002Ftd>\n\u003Ctd>移除不必要的同步点\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>5\u003C\u002Ftd>\n\u003Ctd>精度策略调整\u003C\u002Ftd>\n\u003Ctd>在精度允许的前提下使用更低精度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>6\u003C\u002Ftd>\n\u003Ctd>计算重组\u003C\u002Ftd>\n\u003Ctd>调整计算顺序，提升指令级并行度\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cblockquote>\n\u003Cp>每项策略都必须显式标注&quot;已评估&quot;或&quot;不适用（附原因）&quot;，不允许跳过。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"skill-的设计哲学\">\u003Ca class=\"anchor\" href=\"#skill-的设计哲学\" aria-label=\"跳转到标题：Skill 的设计哲学\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Skill 的设计哲学\u003C\u002Fh2>\u003Ch3 id=\"精度优先-先正确-再快速\">\u003Ca class=\"anchor\" href=\"#精度优先-先正确-再快速\" aria-label=\"跳转到标题：精度优先——先正确，再快速\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>精度优先——先正确，再快速\u003C\u002Fh3>\u003Cp>整个工作流中，精度验证在性能优化之前。精度不通过？不会进行任何性能优化。\u003C\u002Fp>\n\u003Ch3 id=\"自我迭代-不到山穷水尽不停手\">\u003Ca class=\"anchor\" href=\"#自我迭代-不到山穷水尽不停手\" aria-label=\"跳转到标题：自我迭代——不到山穷水尽不停手\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>自我迭代——不到山穷水尽不停手\u003C\u002Fh3>\u003Cp>性能优化不是一次性的。只有连续 3 次改进幅度低于 5% 时才停止。这意味着 AI 会不断尝试不同策略，直到性能提升空间被耗尽。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>NineToothed Operator Skill 目前仍在持续迭代中。文中所描述的工作流、验证策略和优化机制，代表当前的设计思路和已实践验证的部分，并非最终形态。\u003Cbr>\u003Cstrong>欢迎反馈，帮助我们打磨得更好\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"实战演示-ai-生成一个-clamp-算子\">\u003Ca class=\"anchor\" href=\"#实战演示-ai-生成一个-clamp-算子\" aria-label=\"跳转到标题：实战演示：AI 生成一个 Clamp 算子\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>实战演示：AI 生成一个 Clamp 算子\u003C\u002Fh2>\u003Cp>光说不练假把式,来看一个完整的实战案例。根据提供的 cpu 算法，实现对应的九齿算子:\u003Cbr>&#39;&#39;&#39;Python\u003Cbr>def clamp(x, min_val=None, max_val=None):\u003Cbr>    &quot;&quot;&quot;标准的 clamp 算子&quot;&quot;&quot;\u003Cbr>    y = x.copy()\u003Cbr>    if min_val is not None:\u003Cbr>        y = np.maximum(y, min_val)\u003Cbr>    if max_val is not None:\u003Cbr>        y = np.minimum(y, max_val)\u003Cbr>    return y\u003Cbr>&#39;&#39;&#39;\u003C\u002Fp>\n\u003Ch4 id=\"step-1-触发-skill-创建任务清单\">\u003Ca class=\"anchor\" href=\"#step-1-触发-skill-创建任务清单\" aria-label=\"跳转到标题：Step 1️⃣：触发 Skill，创建任务清单\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Step 1️⃣：触发 Skill，创建任务清单\u003C\u002Fh4>\u003Cp>根据触发机制自动加载 ninetoothed-operator skill，主 Agent 立即创建包含 6 个阶段的任务清单：分析 CPU 实现→生成初始算子→自动调优→精度验证→性能优化→输出报告。有条不紊地逐步推进。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw02.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=c6urvpo0L05dkyJU64FxSjGFdEc%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch4 id=\"step-2-分析-cpu-实现\">\u003Ca class=\"anchor\" href=\"#step-2-分析-cpu-实现\" aria-label=\"跳转到标题：Step 2️⃣：分析 CPU 实现\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Step 2️⃣：分析 CPU 实现\u003C\u002Fh4>\u003Cp>主 Agent 提取关键信息：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>算子类型：Element-wise（逐元素）\u003C\u002Fli>\n\u003Cli>输入：1 个张量 + 2 个可选标量参数（&#39;min_val&#39;、&#39;max_val&#39;）\u003C\u002Fli>\n\u003Cli>输出：形状与输入相同\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw03.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=GpJVIAzx7CCtqOZaZZZW4y5jxcg%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch4 id=\"step-3-探索代码库-生成初始代码\">\u003Ca class=\"anchor\" href=\"#step-3-探索代码库-生成初始代码\" aria-label=\"跳转到标题：Step 3️⃣：探索代码库 + 生成初始代码\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Step 3️⃣：探索代码库 + 生成初始代码\u003C\u002Fh4>\u003Cp>子 Agent 探索 NineToothed 代码库，查找已有的逐元素算子作为参考，了解标量参数的声明方式&#39;（Tensor(0)）&#39;以及 &#39;ntl.maximum&#39;、&#39;ntl.minimum&#39; 等 API 的使用模式。\u003C\u002Fp>\n\u003Cp>生成的 NineToothed 核心逻辑仅需 三行：先用 &#39;ntl.minimum &#39;截断上界，再用 &#39;ntl.maximum&#39; 截断下界。\u003C\u002Fp>\n\u003Cp>&#39;min_val&#39; 和 &#39;max_val&#39; 以 &#39;Tensor(0)&#39; 声明为标量，未提供时默认为 &#39;inf\u002F-inf&#39;，对应的截断操作不产生实际效果。同时生成覆盖各种边界条件的测试用例。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw04.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ttUA4pFj4%2Bk18dQ6ESD5%2B82krMM%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw05.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=fR7CzOSEne2Pb2JySaenjhVtelc%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch4 id=\"step-4-精度验证\">\u003Ca class=\"anchor\" href=\"#step-4-精度验证\" aria-label=\"跳转到标题：Step 4️⃣：精度验证\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Step 4️⃣：精度验证\u003C\u002Fh4>\u003Cp>以 CPU 实现为基准，对比 GPU 输出。测试覆盖：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>float32 \u002F float16 两种数据类型\u003C\u002Fli>\n\u003Cli>不同输入规模\u003C\u002Fli>\n\u003Cli>五种场景：&quot;同时限定上下界&quot;、&quot;仅限下界&quot;、&quot;仅限上界&quot;、&quot;无限定&quot;、&quot;多维输入&quot;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>全部测试通过，精度验证合格。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4 id=\"step-5-性能优化\">\u003Ca class=\"anchor\" href=\"#step-5-性能优化\" aria-label=\"跳转到标题：Step 5️⃣：性能优化\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Step 5️⃣：性能优化\u003C\u002Fh4>\u003Cp>按六项策略优先级依次评估。对于 &#39;clamp&#39; 这种简单的逐元素算子，Auto-tune 已达最优，6 项策略均无额外提升空间。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw06.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=ysMSi7OSO5hgEXZVkci23VNqQvY%3D\" alt=\"\">\u003C\u002Fp>\n\u003Ch4 id=\"step-6-输出报告\">\u003Ca class=\"anchor\" href=\"#step-6-输出报告\" aria-label=\"跳转到标题：Step 6️⃣：输出报告\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Step 6️⃣：输出报告\u003C\u002Fh4>\u003Cp>主 Agent 输出完整报告：最终代码位置、精度验证结果（28\u002F28 通过）、自动调优结果、以及性能优化策略评估记录，整个算子生成流程结束。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002Fportal_news\u002Fnews_39_zw07.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=LwprrChSbFvLXju%2F9gOsSrddDvc%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>NineToothed Operator Skill 本质上在做一件事：把&quot;写 GPU 算子&quot;这件事的门槛，从&quot;懂 Triton + 懂调优 + 懂精度&quot;降到了&quot;写一段能跑的 CPU 代码&quot;。\u003C\u002Fp>\n\u003Cp>你不需要理解 tile\u002Fexpand\u002Fsqueeze 怎么组合，不需要手动调 BLOCK_SIZE，甚至不需要知道什么是 bank conflict——AI 帮你全包了。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>NineToothed（九齿）\u003C\u002Fstrong> 开源仓库：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002Fninetoothed\">https:\u002F\u002Fgithub.com\u002FInfiniTensor\u002Fninetoothed\u003C\u002Fa>\u003Cbr> \u003Cstrong>2026春季启元人工智能大赛同步开放「九齿 · skill」创新挑战赛道\u003C\u002Fstrong>，欢迎报名参与： \u003Ca href=\"https:\u002F\u002Fwww.infinitensor.com\u002F%EF%BC%8C\">https:\u002F\u002Fwww.infinitensor.com\u002F，\u003C\u002Fa> 或点击 \u003Cstrong>【阅读原文】\u003C\u002Fstrong> 直达报名网站\u003C\u002Fp>\n\u003C\u002Fblockquote>\n",[74,78,81,84,87,90,93,96,99,101,104,107,109,111,114,117,120,123,126,130,133,136,139,142,145],{"id":75,"text":76,"level":77},"写-gpu-算子-到底痛在哪","写 GPU 算子，到底痛在哪？",2,{"id":79,"text":80,"level":77},"ninetoothed-operator-skill是什么","NineToothed Operator Skill是什么？",{"id":82,"text":83,"level":77},"核心工作流-严格的六阶段闭环","核心工作流：严格的六阶段闭环",{"id":85,"text":86,"level":9},"为什么-quot-cpu-实现是唯一的精度基准-quot","为什么&quot;CPU 实现是唯一的精度基准&quot;？",{"id":88,"text":89,"level":9},"什么时候会停止迭代","什么时候会停止迭代？",{"id":91,"text":92,"level":77},"两个核心概念-arrangement-amp-application","两个核心概念：Arrangement &amp; Application",{"id":94,"text":95,"level":9},"arrangement-分块策略-数据怎么切","Arrangement（分块策略）——数据怎么切",{"id":97,"text":98,"level":9},"application-计算逻辑-每块数据怎么算","Application（计算逻辑）——每块数据怎么算",{"id":100,"text":100,"level":9},"常用原语速查表",{"id":102,"text":103,"level":77},"精度验证-ai-怎么保证结果正确","精度验证：AI 怎么保证结果正确？",{"id":105,"text":106,"level":9},"按数据类型的容差标准","按数据类型的容差标准：",{"id":108,"text":108,"level":9},"按算子类型的容差标准",{"id":110,"text":110,"level":9},"四项必检",{"id":112,"text":113,"level":77},"性能优化-六策略逐项评估","性能优化：六策略逐项评估",{"id":115,"text":116,"level":77},"skill-的设计哲学","Skill 的设计哲学",{"id":118,"text":119,"level":9},"精度优先-先正确-再快速","精度优先——先正确，再快速",{"id":121,"text":122,"level":9},"自我迭代-不到山穷水尽不停手","自我迭代——不到山穷水尽不停手",{"id":124,"text":125,"level":77},"实战演示-ai-生成一个-clamp-算子","实战演示：AI 生成一个 Clamp 算子",{"id":127,"text":128,"level":129},"step-1-触发-skill-创建任务清单","Step 1️⃣：触发 Skill，创建任务清单",4,{"id":131,"text":132,"level":129},"step-2-分析-cpu-实现","Step 2️⃣：分析 CPU 实现",{"id":134,"text":135,"level":129},"step-3-探索代码库-生成初始代码","Step 3️⃣：探索代码库 + 生成初始代码",{"id":137,"text":138,"level":129},"step-4-精度验证","Step 4️⃣：精度验证",{"id":140,"text":141,"level":129},"step-5-性能优化","Step 5️⃣：性能优化",{"id":143,"text":144,"level":129},"step-6-输出报告","Step 6️⃣：输出报告",{"id":146,"text":146,"level":77},"写在最后",{"total":45,"list":148,"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":201,"navigateFirstPage":44,"navigateLastPage":44},[149,160,171,182,192],{"id":150,"slug":151,"title":152,"logo":153,"publicLiveEmbedUrl":14,"description":154,"introduction":155,"organizer":18,"coOrganizer":5,"sponsor":16,"startTime":156,"endTime":157,"status":22,"dashboardVisibility":158,"createdAt":156,"updatedAt":159},"019eeeff-6b00-7d55-a629-efafded3e232","summer2026","2026年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2026-06\u002F019eef7f-7816-7828-9309-79c2c61dd568.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=SqASSorKbGqbBwQFQ5RjfAe6ISQ%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。","...","2026-06-22 08:00:00","2026-10-19 08:00:00","public","2026-10-12 08:00:00",{"id":161,"slug":162,"title":163,"logo":164,"publicLiveEmbedUrl":7,"description":165,"introduction":155,"organizer":18,"coOrganizer":5,"sponsor":166,"startTime":167,"endTime":168,"status":33,"dashboardVisibility":23,"createdAt":169,"updatedAt":170},"019af3f3-e06a-7245-aa8d-37dc99a69c73","winter2025","2025年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-12\u002F019afc69-b7ca-7805-91fb-605429671c01.png?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=R5JKr8bO3hHaCXaP1wzWmJLE%2F1s%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":172,"slug":36,"title":173,"logo":174,"publicLiveEmbedUrl":7,"description":175,"introduction":155,"organizer":18,"coOrganizer":5,"sponsor":176,"startTime":177,"endTime":178,"status":179,"dashboardVisibility":23,"createdAt":180,"updatedAt":181},"01980342-208c-7803-b3f3-19e1d31960ba","2025年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-07\u002F0198045e-28fe-78f0-95fe-23835ce58395.jpg?Expires=1792752856&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=4gC4JkvFTMfNf4MMYpG%2BY8amgGQ%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":183,"slug":184,"title":185,"logo":186,"publicLiveEmbedUrl":7,"description":187,"introduction":155,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":188,"endTime":189,"status":179,"dashboardVisibility":23,"createdAt":190,"updatedAt":191},"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":193,"slug":194,"title":195,"logo":196,"publicLiveEmbedUrl":7,"description":197,"introduction":155,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":198,"endTime":199,"status":179,"dashboardVisibility":23,"createdAt":190,"updatedAt":200},"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]]