include/

PTO Tile Lib 对外的 C/C++ 头文件(以模板化、基本 header-only 为主)。上层框架/算子可以通过这些头文件生成 PTO ISA 的 Tile 指令序列。

快速开始

推荐直接 include 统一入口头:

#include <pto/pto-inst.hpp>

pto/pto-inst.hpp 会根据构建配置选择合适的后端(CPU 仿真/stub 或 NPU 实现)。详情见 include/pto/README_zh.md

目录结构

  • include/pto/:公共 PTO ISA API 与后端实现(common / cpu / npu / comm)

相关文档

PTO 指令实现状态(CPU / Costmodel / A2 / A3 / A5 / Kirin)

下表用于跟踪每条指令在不同后端的可用性:

  • CPU__CPU_SIM(CPU 仿真后端)。
  • Costmodel__COSTMODEL(A2 / A3 性能仿真后端,包含 stubfit 两条路径;任一路径支持即记为支持)。
  • A2(Ascend 910B)/ A3(Ascend 910C):当前共享 include/pto/npu/a2a3/ 的实现(因此两列状态相同)。
  • A5(Ascend 950):使用 include/pto/npu/a5/ 的实现。
  • Kirin:使用 include/pto/npu/kirin9030/ 的实现。
指令 CPU Costmodel A2 A3 A5 Kirin
MGATHER TODO TODO TODO TODO
MSCATTER TODO TODO TODO TODO
TABS
TADD
TADDC TODO TODO TODO TODO TODO
TADDS
TADDSC TODO TODO TODO TODO TODO
TAND TODO
TANDS TODO
TASSIGN TODO
TAXPY TODO TODO TODO
TBROADCAST TODO TODO
TCI TODO
TCMP
TCMPS TODO
TCOLARGMAX TODO TODO
TCOLARGMIN TODO TODO
TCOLEXPAND TODO
TCOLEXPANDADD TODO TODO TODO
TCOLEXPANDDIV TODO TODO TODO
TCOLEXPANDEXPDIF TODO TODO TODO
TCOLEXPANDMAX TODO TODO TODO
TCOLEXPANDMIN TODO TODO TODO
TCOLEXPANDMUL TODO TODO TODO
TCOLEXPANDSUB TODO TODO TODO
TCOLMAX
TCOLMIN
TCOLPROD TODO TODO TODO
TCOLSUM TODO
TConcat TODO TODO TODO TODO TODO
TCVT TODO
TDIV
TDIVS
TEXP
TEXPANDS TODO
TEXTRACT
TEXTRACT_FP TODO TODO
TFILLPAD TODO
TFILLPAD_EXPAND TODO TODO
TFILLPAD_INPLACE TODO TODO
TFMOD TODO TODO TODO
TFMODS TODO TODO TODO
TGATHER
TGATHERB TODO
TGEMV TODO TODO
TGEMV_ACC TODO TODO
TGEMV_BIAS TODO TODO
TGEMV_MX TODO TODO TODO TODO TODO
TGET TODO TODO
TGET_ASYNC TODO TODO
TGET_SCALE_ADDR TODO TODO TODO TODO TODO
TIMG2COL TODO TODO TODO
TINSERT TODO TODO TODO TODO TODO
TINSERT_FP TODO TODO
TLOAD
TLOG TODO
TLRELU TODO
TMATMUL
TMATMUL_ACC TODO
TMATMUL_BIAS TODO
TMATMUL_MX TODO TODO TODO
TMAX
TMAXS
TMIN
TMINS
TMOV
TMOV_FP TODO
TMRGSORT
TMUL
TMULS
TNEG
TNOT TODO
TNOTIFY TODO TODO
TOR TODO
TORS TODO
TPARTADD TODO
TPARTARGMAX TODO TODO TODO TODO TODO
TPARTARGMIN TODO TODO TODO TODO TODO
TPARTMAX TODO
TPARTMIN TODO
TPARTMUL TODO
TPREFETCH TODO
TPRELU TODO
TPRINT TODO TODO TODO
TPOW TODO TODO
TPUT TODO TODO
TPUT_ASYNC TODO TODO
TPOWS TODO TODO
TQUANT TODO TODO TODO TODO TODO
TRANDOM TODO TODO TODO TODO
TRECIP
TREDUCE TODO TODO
TRELU TODO
TREM TODO
TREMS TODO
TRESHAPE TODO TODO
TROWARGMAX TODO TODO TODO
TROWARGMIN TODO TODO TODO
TROWEXPAND
TROWEXPANDADD TODO TODO TODO
TROWEXPANDDIV TODO TODO
TROWEXPANDEXPDIF TODO TODO TODO
TROWEXPANDMAX TODO TODO
TROWEXPANDMIN TODO TODO TODO
TROWEXPANDMUL TODO TODO TODO
TROWEXPANDSUB TODO TODO
TROWMAX
TROWMIN
TROWPROD TODO TODO TODO
TROWSUM
TRSQRT
TSCATTER
TSEL
TSELS
SETFMATRIX TODO TODO TODO
SET_IMG2COL_PADDING TODO TODO TODO
SET_IMG2COL_RPT TODO TODO TODO
TSHL TODO
TSHLS TODO
TSHR TODO
TSHRS TODO
TSORT32
TSQRT
TSTORE TODO
TSTORE_FP TODO
TSUB
TSUBC TODO TODO TODO TODO TODO
TSUBS
TSUBSC TODO TODO TODO TODO TODO
TSUBVIEW TODO TODO TODO TODO
TSYNC TODO TODO
TTEST TODO TODO
TTRANS
TTRI TODO TODO
TWAIT TODO TODO
TXOR TODO
TXORS TODO

说明:

  • :该后端已提供可用实现。
  • TODO:该指令已进入公共 API 或文档范围,但对应后端实现暂未提供,或尚未在该后端接入。
  • :明确不支持或当前不计划在该后端提供实现。
  • 空白:状态尚未最终确认,或该项仍在整理中。