Skip to content

当前为尝鲜版本,CANNBot-DSL 的 API 接口不保证兼容性,后续版本可能发生变更。

Kernel API ​

Kernel API 面向 AI Core,在 @kernel 函数体或其展开的设备侧辅助函数中使用,用于描述设备上的数据访问、计算、同步和控制逻辑。

有关 @host、@jit 和 @kernel 的定义及基本调用方式,请参见装饰器。

接口分类 ​

分类主要内容接口
基本数据类型与操作dtype、Tensor、shape、layout、坐标、构造和视图DType、Tensor、Shape、Layout、make_tensor、tile_view
数据搬运存储层级间搬运和搬运引擎配置mem_copy、make_copy_engine
Reg矢量计算simd 模式下矢量数据寄存器与掩码寄存器的算术、复合计算、比较、归约、逻辑、类型转换、排布变换、广播、索引、直方图、掩码寄存器操作,以及 Reg数据搬入、Reg聚合搬入、Reg数据搬出、Reg离散搬出vadd、vselect、vreduce_sum、vcast、vload、vstore、create_mask 等
标量计算标量流水(PIPE_S)上的位运算、类型转换与不经过DCache的GM访存popc、clz、ffs、cast、load_bypass 等
原子操作GM 地址上的单点原子计算操作,多个 AI Core 的操作串行化执行(绕过 DCache)atomic_add、atomic_cas、atomic_inc 等
矩阵计算Mmad 矩阵乘加与 HF32/HiF8/FP8 计算模式配置matmul、enable_hf32、set_mmad_direction 等
同步与缓存控制Cube、Vector、全局同步和缓存维护dcci_single、dcci_entire_out、dcci_entire_atomic、dci
同步管理核间同步核间同步接口(cube_sync_block_arrive、global_sync_all 等 9 个)
系统变量访问block、物理核、子核、周期和状态查询get_block_idx、get_block_num、get_core_id 等
资源管理统一缓冲区(UB)、Buffer、Channel 和延迟线UB、make_buffer、make_channel、DelayLine
分布式通信通信上下文、通信引擎和设备地址distributed.get_comm_context、distributed.CommEngine 等
调试接口设备侧标量、Tensor 和寄存器调试print、dump_reg、dump_tensor
作用域与控制流设备控制流、编译期表达式和执行作用域range、select、const_expr、range_constexpr、cube、vf

CANNBot-DSL 开源项目文档