随着AI模型迭代不断加速,算子开发正面临前所未有的挑战。算法验证阶段,开发者更看重易用性与快速迭代;而部署阶段则追求极致性能,力求榨干硬件每一分潜能。面对如此多元的场景需求,算子编程语言领域正在形成全新的格局:既有基于C/C++的Ascend C,也有基于Python的DSL(如PyPTO、Triton和TileLang),它们共同构建起覆盖从算法探索到生产部署的全流程生态体系。
    面对Ascend 950引入的 SIMT 矢量计算单元、基于 Reg 的 SIMD 矢量计算、AIC/AIV 数据通路增强,以及 Cube MXFP4/MXFP8 低精度数据类型,开发者该如何选择语言,并充分利用这些新特性?让我们先从他们的定位看起:

  • Ascend C:贴合 C/C++ 开发习惯,提供多层级 API,以“手工”方式释放芯片完整能力,适合追求高性能的场景。PyPTO:基于 Python 的 DSL,Tensor 编程范式让计算层更自然地表达复杂数学运算,编译框架自动优化让开发者无需感知硬件细节即可获得高性能。

  • Triton:开源社区流行的 Python-like,tiled-based DSL,语言层与硬件解耦,硬件特性由编译器完成适配,兼顾易用性与可移植性。

  • TileLang:面向Tile计算的 DSL,提供 Developer/Expert 双模式,通过原语级表达实现灵活性与跨代兼容。

新硬件特性如何赋能算子开发?

Vector 算子开发

  • Ascend C 构建多层级 API,支持业界通用的 SIMT 编程(适合离散计算),同时扩展 Reg 矢量编程提升连续计算性能,更首创 SIMT+SIMD 混合编程模式;

  • PyPTO 前端接口保持统一,框架屏蔽底层硬件差异,通过 Tile Fusion 与 BiSheng 编译器自动优化,充分利用寄存器能力,提升 Vector Core 性能;

  • Triton 保持语言层硬件特性无感,SIMT/SIMD、regbased、VF融合等硬件特性由编译器完成适配;

  • TileLang 通过 Parallel 原语与 SIMT 结合,增强前端表达能力,更好处理条件分支与离散操作;

矩阵算子开发: 各语言均逐步增加对 MX FP4/FP8 低比特矩阵计算的支持。

融合算子创新: 

Ascend 950为更高效地支持融合算子中AIC与AIV的频繁数据交互与同步控制,新增了UB<->L1、L0C->UB数据通路、DualDest特性,以及用于AIC/AIV快速传输控制消息的SSBuf等。

  • Ascend C 扩展数据传输接口等,提供完备接口支持自主控制AIC/AIV数据交互和同步能力,更好支撑融合算子的创新;

  • PyPTO 前端硬件无感,支持通过后端编译优化,自动使能硬件新特性,可以让程序员无感知;

  • Triton 通过编译器自动支持CV耦合架构下的快速通路和通路上随路转化能力、自动使能CV1:2配比和CV自动流水并行能力,保证CV融合算子性能;

  • TileLang Developer模式下可自动启用硬件新特性,开发者无感知;Expert模式通过tilelang-ascend扩展API实现数据搬运、计算、流水排布设计等,更好支撑融合算子创新;

开发者如何选型?场景驱动是关键

算法验证阶段(追求快速迭代): 

  • Ascend C

    • 熟悉SIMT编程:Ascend C 提供匹配业界习惯的 SIMT API;

    • 熟悉SIMD编程:

  1. 对性能不敏感的,可先使用SIMD 语言扩展层C API带sync后缀的简易计算接口,

  2. 对性能敏感的,可基于CATLASS/ATVOSS等算子模板库;

  • PyPTO 让开发者无需感知硬件细节与多核Tiling 策略,专注算法流程;

  • Triton-Ascend 可以让开发者只关注多核Tiling策略,而核内由编译器自动优化完成,支撑新算法快速验证; 

  • TileLang 可基于Developer 模式快速完成算子开发和验证。

算法部署阶段(追求高性能): 

  • Ascend C 语言扩展层C API(基于指针计算)或基础API(基于Tensor计算)均可暴露芯片完备能力,支持自主调优,释放更高性能;

  • PyPTO 提供多样化调优旋钮,支持手动/agent 深度调优;

  • Triton-Ascend编译器自动优化保证通过昇腾亲和扩展接口保障性能;

  • TileLang 提供 Expert 模式接口实现更友好的流程控制。

异构环境(追求跨平台兼容): 

  • Ascend C 95%左右基础API可保障从 Ascend 910系列 到Ascend 950的平滑兼容,对于不兼容的API会提供兼容迁移指导;

  • PyPTO 用户无感昇腾代际差异;

  • Triton-Ascend 架构支持昇腾跨代际部署;

  • TileLang Developer 模式通过原语机制实现跨代兼容。

  • B站直播预约链接:https://www.bilibili.com/opus/1180735390742478867

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐