【进迭开发者活动】让 Triton 跑在 SpacemiT AI CPU 上!

进迭开发者活动 | 开启硬核挑战!加入SpacemiT Triton内测,编写Triton Kernel,赢RISC-V笔记本电脑。

SpacemiT Triton 是什么?

SpacemiT Triton是进迭时空基于Triton-Shared开发的 Triton → MLIR Linalg 中间件。

它负责将 Triton 的 TTIR 转换为 Linalg IR,并补全 Triton 在 CPU/通用场景上的关键能力,包括:

  • 完善算子语法支持

  • Tensor Desc描述

  • 异步访存

  • 更友好的调度抽象(Cluster-based)

换句话说: 开发者可以直接写 Triton Kernel,然后跑在 SpacemiT AI CPU 上。

github仓库:

spacemit-com/spine-triton

本次内测包含的核心内容

1. 算子扩充

spine-triton/language/cpu/libdevice.py 中通过 extern_elementwise 新增许多 Triton 中未原生提供的数学算子,例如:

  • abs

  • exp

  • gelu_tanh

  • gelu_none

这些算子可直接在 Triton Kernel 中使用,最终会被 Lower 成 Linalg + Arith IR。

2. 语法增强 & 运行时行为完善

tl.make_block_ptr

  • 修复边界检查逻辑

  • 完整实现 offset 累加 适合更复杂的 block memory pattern。

smt 扩展语法(Cluster 调度模型)

SpacemiT Triton 引入了 smt.* 系列语法,认为 Triton Kernel 在 CPU 端的执行是基于一个cluster 。

扩展语法 功能说明
smt.parallel 控制 kernel 并行执行
smt.descriptor_load 基于 Tensor 描述 + Layout 的 load
smt.view 无访存的 Tensor slicing
smt.alloc local / shared 的多级存储申请
smt.dot 扩展 dot,lower 到 matrix 指令

这些扩展让 Triton Kernel 更贴近 CPU 的执行模型,更易生成高效 Linalg/Vector IR。

3. 示例程序

可参考:spine-triton/python/examples/test_smt_mm.py

spine-triton/python/examples/test_smt_mm.py

这个示例展示了如何使用 smt.dot、descriptor_load 等功能实现高效的矩阵乘法。

内测活动信息

招募对象:

  • 熟悉 Triton 或 MLIR 的开发者

  • 从事 AI 编译器、深度学习框架的开发者

  • 想验证 SpacemiT AI CPU 向量/矩阵能力的开发者

如何参与内测?

参与本次 Spacemit Triton 内测非常简单,只需要 三步

  1. 获取 SpacemiT Triton 内测版本

下载源码,运行示例,尝试编写自己的 Triton Kernel。
spacemit-com/spine-triton

  1. 进行测试或贡献(任选其一或全部)
  • 运行典型算子 / 性能测试

  • 提交 Issue(bug / 功能建议 / 体验优化)

  • 提交 PR(代码修复 / 文档补充 / 示例扩展)

  • 编写自己的 Triton kernel 并给出 IR 转换结果

  • 分享使用体验或性能分析

  1. 在论坛发布一篇帖子

帖子内容可以包括:

  • 你的测试过程/截图/benchmark

  • 遇到的问题(并附 Issue/PR 链接)

  • 你做的优化、代码示例

  • 对 SpacemiT Triton 的建议或想法

  • 对 TTIR → Linalg 转换的观察

你贡献得越完整、越有技术含量,评奖概率越高!

评奖方式

本次评奖由 进迭时空研发团队 根据以下维度进行综合评分:

技术贡献(核心权重)

  • Issue 的有效性与准确性

  • PR 的质量、合理性、可维护性

  • Kernel/算子示例的价值

  • 对 TTIR→Linalg 或 smt 语法的深入分析

论坛帖子质量

  • 内容是否具有技术深度

  • 是否给出代码片段 / IR 输出 / 性能对比

  • 是否复现步骤清晰、可读

  • 是否能对其他开发者产生价值(教程、经验分享等)

我们将由内部研发团队统一打分,并最终选出获奖者。

内测奖励

一等奖(1 名)

  • 进迭时空MUSEBOOK笔记本电脑 1 台

优胜奖(2 名)

  • SpacemiT 周边礼盒1份

参与奖(若干)

  • 进迭周边礼品

活动时间

  • 内测时间:2025.12.2 – 2025.12.15
    在此期间,你可以体验SpacemiT Triton、提交 Issue/PR、运行示例、编写 kernel,并发布论坛帖子。

  • 评奖时间:2025.12.16 – 2025.12.22
    研发工程师将根据提交内容与帖子质量进行综合评审,并在周期结束后公布获奖名单。

SpacemiT Triton后续开源计划

  1. Launch Kernel Runtime 优化

  2. 异步访存与 Barrier 支持

  3. 显式向量化 & 部分 Inline ASM 前移

  4. 更多 Triton 语法/算子补齐

  5. 每月定期同步 GitHub

3 个赞

I have written a full kernel for this expecting to be able to compile it in a vm or a container and test it. I have spent a great deal of time trying to get the bianbu image to boot in qemu. It just doesn’t seem possible on the machines I tried it on. I can’t get BianbuCloud time, it gives me an error that there aren’t enough resources to allocate an instance for me.

I am preparing to submit my kernel with out IR or full testing. Will this be okay?

1 个赞