NineToothed 0.24.0 发布:AOT 更稳定,构建更高效,张量表达能力进一步增强

我们正式发布 NineToothed 0.24.0。此版本围绕 AOT 编译链路、构建能力、自动调优机制及张量元操作体验进行完善,在保持 DSL 抽象优势的同时,进一步强化 NineToothed 稳定性与工程能力。

本次更新重点

1. AOT 编译与启动机制全面增强

0.24.0 对 AOT kernel launching 机制进行了系统性重构与稳定化,重点包括:

  • 优化 AOT kernel 的生成与启动流程
  • 修复冗余 kernel launch function 生成问题
  • 改进 launch 参数处理方式
  • 支持多设备系统下的 AOT 编译与运行
  • 支持更稳定的多上下文 kernel 管理

这意味着 NineToothed 在复杂 CUDA 环境、多设备场景与工程化部署中的可用性进一步提升。

2. 新增 ninetoothed.build

本版本新增了 ninetoothed.build,用于基于 premake 函数和配置集合批量构建 kernel。

借助这一能力,开发者可以更方便地:

  • 为不同配置生成多组 kernel
  • 自动组织参数与分发逻辑
  • 降低手工管理多个 kernel 版本的复杂度

这为面向多配置、多候选实现的 kernel 构建工作流提供了更统一的入口。

3. ninetoothed.build 构建速度提升

在新增 build 的基础上,NineToothed 进一步通过 concurrent.futures 对构建流程进行了并行化优化。

对于需要批量编译多个配置的场景,这一改进能够显著提升构建效率,进一步增强 build 在实际工程中的可用性。

4. 新增 ninetoothed.auto_tuner.AutoTuner

0.24.0 引入了 AutoTuner,用于在多个候选实现之间进行自动 benchmark 与最优选择。

其主要特性包括:

  • 支持多个候选函数的性能比较
  • 根据输入参数自动选择更优实现
  • 支持 benchmark 结果缓存与复用
  • 降低手工调参与人工选择配置的成本

这为 NineToothed 后续在自动优化方向上的演进提供了重要基础。

5. 新增 Tensor.getitem

本版本为 Tensor 引入了 getitem 支持,使张量索引和切片表达更加自然。

当前已支持包括以下形式在内的常见访问方式:

  • 整数索引
  • slice
  • None
  • Ellipsis
  • 多维组合索引

这让 NineToothed 的张量表达更贴近 Python / NumPy 风格,进一步提升了 DSL 的可读性与易用性。

6. 新增 Tensor.pad

0.24.0 同时新增了 Tensor.pad 元操作,并补充了相应测试与文档支持。

这为 padding 相关的张量变换场景提供了更直接的表达方式,尤其适用于卷积等涉及边界扩展的算子实现。

其他改进

除以上重点更新外,本版本还包含多项底层增强与稳定性改进,包括:

  • 新增 stride 方法支持
  • 支持直接索引 source tensors
  • 改进 tensor intrinsic 的表达式解析
  • 完善 constexpr tensor size 处理
  • 优化符号分析与元数据一致性
  • 增强 AST 处理过程的健壮性
  • 补充和调整多项测试用例

同时,文档中也已加入:

  • ninetoothed.build
  • Tensor.pad

总结

总体来看,NineToothed 0.24.0 是一次围绕“工程能力”和“表达能力”同步推进的重要更新

它不仅带来了更丰富的 API 和更自然的张量操作方式,也进一步增强了 AOT、多设备支持、批量构建与自动调优等关键能力。

欢迎大家升级体验 NineToothed 0.24.0,也欢迎继续向我们反馈使用中的建议与问题。

访问项目

欢迎访问 NineToothed 的 GitHub 主页了解更多详情:
🔗 https://github.com/InfiniTensor/ninetoothed

您也可以直接点击文末的 【阅读原文】 快速跳转。

2026年夏季InfiniTensor大模型与人工智能系统训练营
正在直播
点击进入直播间
x