include/¶
Public C/C++ headers for PTO Tile Lib (primarily header-only, template-based). Upper-layer frameworks or operator code can include these headers to emit PTO ISA Tile-level operations.
Quick Start¶
Include the unified entry header:
#include <pto/pto-inst.hpp>
pto/pto-inst.hpp selects the appropriate backend (CPU simulation/stub or NPU implementation) based on build configuration. See include/pto/README.md for details.
Layout¶
include/pto/: Public PTO ISA API and backend implementations (common / cpu / npu / comm)
Related Docs¶
PTO Instruction Implementation Status (CPU / Costmodel / A2 / A3 / A5 / Kirin)¶
This table tracks per-instruction backend availability:
- CPU:
__CPU_SIM(CPU simulation backend). More information about this backend can be found in docs/coding/cpu_sim.md - Costmodel:
__COSTMODEL(A2 / A3 cost model backend, includingstubandfitpaths; if either path supports an instruction, it is marked as supported). - A2 (Ascend 910B) / A3 (Ascend 910C): share the
include/pto/npu/a2a3/implementation today (so the status is identical for both columns). - A5 (Ascend 950): uses the
include/pto/npu/a5/implementation. - Kirin: uses the
include/pto/npu/kirin9030/implementation.
| Instruction | CPU | Costmodel | A2 | A3 | A5 | Kirin |
|---|---|---|---|---|---|---|
MGATHER |
Yes | TODO | TODO | TODO | Yes | TODO |
MSCATTER |
Yes | TODO | TODO | TODO | Yes | TODO |
TABS |
Yes | Yes | Yes | Yes | Yes | Yes |
TADD |
Yes | Yes | Yes | Yes | Yes | Yes |
TADDC |
Yes | TODO | TODO | TODO | TODO | TODO |
TADDS |
Yes | Yes | Yes | Yes | Yes | Yes |
TADDSC |
Yes | TODO | TODO | TODO | TODO | TODO |
TAND |
Yes | TODO | Yes | Yes | Yes | Yes |
TANDS |
Yes | TODO | Yes | Yes | Yes | Yes |
TASSIGN |
Yes | TODO | Yes | Yes | Yes | Yes |
TAXPY |
TODO | TODO | Yes | Yes | Yes | TODO |
TBROADCAST |
Yes | TODO | Yes | Yes | Yes | TODO |
TCI |
Yes | TODO | Yes | Yes | Yes | Yes |
TCMP |
Yes | Yes | Yes | Yes | Yes | Yes |
TCMPS |
Yes | TODO | Yes | Yes | Yes | Yes |
TCOLARGMAX |
TODO | TODO | Yes | Yes | Yes | Yes |
TCOLARGMIN |
TODO | TODO | Yes | Yes | Yes | Yes |
TCOLEXPAND |
Yes | TODO | Yes | Yes | Yes | Yes |
TCOLEXPANDADD |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLEXPANDDIV |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLEXPANDEXPDIF |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLEXPANDMAX |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLEXPANDMIN |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLEXPANDMUL |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLEXPANDSUB |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLMAX |
Yes | Yes | Yes | Yes | Yes | Yes |
TCOLMIN |
Yes | Yes | Yes | Yes | Yes | Yes |
TCOLPROD |
TODO | TODO | Yes | Yes | Yes | TODO |
TCOLSUM |
Yes | Yes | Yes | Yes | Yes | TODO |
TConcat |
TODO | TODO | TODO | TODO | Yes | TODO |
TCVT |
Yes | Yes | Yes | Yes | Yes | TODO |
TDIV |
Yes | Yes | Yes | Yes | Yes | Yes |
TDIVS |
Yes | Yes | Yes | Yes | Yes | Yes |
TEXP |
Yes | Yes | Yes | Yes | Yes | Yes |
TEXPANDS |
Yes | TODO | Yes | Yes | Yes | Yes |
TEXTRACT |
Yes | Yes | Yes | Yes | Yes | Yes |
TEXTRACT_FP |
TODO | TODO | Yes | Yes | Yes | Yes |
TFILLPAD |
Yes | TODO | Yes | Yes | Yes | Yes |
TFILLPAD_EXPAND |
TODO | TODO | Yes | Yes | Yes | Yes |
TFILLPAD_INPLACE |
TODO | TODO | Yes | Yes | Yes | Yes |
TFMOD |
TODO | TODO | Yes | Yes | Yes | TODO |
TFMODS |
TODO | TODO | Yes | Yes | Yes | TODO |
TGATHER |
Yes | Yes | Yes | Yes | Yes | Yes |
TGATHERB |
Yes | TODO | Yes | Yes | Yes | Yes |
TGEMV |
TODO | TODO | Yes | Yes | Yes | Yes |
TGEMV_ACC |
TODO | TODO | Yes | Yes | Yes | Yes |
TGEMV_BIAS |
TODO | TODO | Yes | Yes | Yes | Yes |
TGEMV_MX |
TODO | TODO | TODO | TODO | Yes | TODO |
TGET |
Yes | TODO | Yes | Yes | Yes | TODO |
TGET_ASYNC |
Yes | TODO | Yes | Yes | Yes | TODO |
TGET_SCALE_ADDR |
TODO | TODO | TODO | TODO | Yes | TODO |
TIMG2COL |
TODO | TODO | Yes | Yes | Yes | TODO |
TINSERT |
TODO | TODO | TODO | TODO | Yes | TODO |
TINSERT_FP |
TODO | TODO | Yes | Yes | Yes | Yes |
TLOAD |
Yes | Yes | Yes | Yes | Yes | Yes |
TLOG |
Yes | TODO | Yes | Yes | Yes | Yes |
TLRELU |
Yes | TODO | Yes | Yes | Yes | Yes |
TMATMUL |
Yes | Yes | Yes | Yes | Yes | Yes |
TMATMUL_ACC |
Yes | TODO | Yes | Yes | Yes | Yes |
TMATMUL_BIAS |
Yes | TODO | Yes | Yes | Yes | Yes |
TMATMUL_MX |
Yes | TODO | TODO | TODO | Yes | Yes |
TMAX |
Yes | Yes | Yes | Yes | Yes | Yes |
TMAXS |
Yes | Yes | Yes | Yes | Yes | Yes |
TMIN |
Yes | Yes | Yes | Yes | Yes | Yes |
TMINS |
Yes | Yes | Yes | Yes | Yes | Yes |
TMOV |
Yes | Yes | Yes | Yes | Yes | Yes |
TMOV_FP |
Yes | TODO | Yes | Yes | Yes | Yes |
TMRGSORT |
Yes | Yes | Yes | Yes | Yes | Yes |
TMUL |
Yes | Yes | Yes | Yes | Yes | Yes |
TMULS |
Yes | Yes | Yes | Yes | Yes | Yes |
TNEG |
Yes | Yes | Yes | Yes | Yes | Yes |
TNOT |
Yes | TODO | Yes | Yes | Yes | Yes |
TNOTIFY |
Yes | TODO | Yes | Yes | Yes | TODO |
TOR |
Yes | TODO | Yes | Yes | Yes | Yes |
TORS |
Yes | TODO | Yes | Yes | Yes | Yes |
TPARTADD |
Yes | TODO | Yes | Yes | Yes | Yes |
TPARTARGMAX |
TODO | TODO | TODO | TODO | Yes | TODO |
TPARTARGMIN |
TODO | TODO | TODO | TODO | Yes | TODO |
TPARTMAX |
Yes | TODO | Yes | Yes | Yes | Yes |
TPARTMIN |
Yes | TODO | Yes | Yes | Yes | Yes |
TPARTMUL |
No | TODO | Yes | Yes | Yes | Yes |
TPREFETCH |
Yes | TODO | Yes | Yes | Yes | Yes |
TPREFETCH_ASYNC |
Yes | TODO | Yes | Yes | Yes | TODO |
TPRELU |
Yes | TODO | Yes | Yes | Yes | Yes |
TPRINT |
TODO | TODO | Yes | Yes | Yes | TODO |
TPOW |
Yes | TODO | Yes | Yes | Yes | TODO |
TPUT |
Yes | TODO | Yes | Yes | Yes | TODO |
TPUT_ASYNC |
Yes | TODO | Yes | Yes | Yes | TODO |
TPOWS |
Yes | TODO | Yes | Yes | Yes | TODO |
TQUANT |
TODO | TODO | TODO | TODO | Yes | TODO |
TRANDOM |
No | TODO | TODO | TODO | Yes | TODO |
TRECIP |
Yes | Yes | Yes | Yes | Yes | Yes |
TREDUCE |
Yes | TODO | Yes | Yes | Yes | TODO |
TRELU |
Yes | TODO | Yes | Yes | Yes | Yes |
TREM |
Yes | TODO | Yes | Yes | Yes | Yes |
TREMS |
Yes | TODO | Yes | Yes | Yes | Yes |
TRESHAPE |
Yes | TODO | Yes | Yes | Yes | TODO |
TROWARGMAX |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWARGMIN |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWEXPAND |
Yes | Yes | Yes | Yes | Yes | Yes |
TROWEXPANDADD |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWEXPANDDIV |
Yes | TODO | Yes | Yes | Yes | TODO |
TROWEXPANDEXPDIF |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWEXPANDMAX |
Yes | TODO | Yes | Yes | Yes | TODO |
TROWEXPANDMIN |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWEXPANDMUL |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWEXPANDSUB |
Yes | TODO | Yes | Yes | Yes | TODO |
TROWMAX |
Yes | Yes | Yes | Yes | Yes | Yes |
TROWMIN |
Yes | Yes | Yes | Yes | Yes | Yes |
TROWPROD |
TODO | TODO | Yes | Yes | Yes | TODO |
TROWSUM |
Yes | Yes | Yes | Yes | Yes | Yes |
TRSQRT |
Yes | Yes | Yes | Yes | Yes | Yes |
TSCATTER |
Yes | Yes | Yes | Yes | Yes | Yes |
TSEL |
Yes | Yes | Yes | Yes | Yes | Yes |
TSELS |
Yes | Yes | Yes | Yes | Yes | Yes |
SETFMATRIX |
TODO | TODO | Yes | Yes | Yes | TODO |
SET_IMG2COL_PADDING |
TODO | TODO | Yes | Yes | Yes | TODO |
SET_IMG2COL_RPT |
TODO | TODO | Yes | Yes | Yes | TODO |
TSHL |
Yes | TODO | Yes | Yes | Yes | Yes |
TSHLS |
Yes | TODO | Yes | Yes | Yes | Yes |
TSHR |
Yes | TODO | Yes | Yes | Yes | Yes |
TSHRS |
Yes | TODO | Yes | Yes | Yes | Yes |
TSORT32 |
Yes | Yes | Yes | Yes | Yes | Yes |
TSQRT |
Yes | Yes | Yes | Yes | Yes | Yes |
TSTORE |
Yes | Yes | Yes | Yes | Yes | TODO |
TSTORE_FP |
Yes | TODO | Yes | Yes | Yes | Yes |
TSUB |
Yes | Yes | Yes | Yes | Yes | Yes |
TSUBC |
Yes | TODO | TODO | TODO | TODO | TODO |
TSUBS |
Yes | Yes | Yes | Yes | Yes | Yes |
TSUBSC |
Yes | TODO | TODO | TODO | TODO | TODO |
TSUBVIEW |
TODO | TODO | Yes | Yes | TODO | TODO |
TSYNC |
TODO | TODO | Yes | Yes | Yes | Yes |
TTEST |
Yes | TODO | Yes | Yes | Yes | TODO |
TTRANS |
Yes | Yes | Yes | Yes | Yes | Yes |
TTRI |
TODO | TODO | Yes | Yes | Yes | Yes |
TWAIT |
Yes | TODO | Yes | Yes | Yes | TODO |
TXOR |
Yes | TODO | Yes | Yes | Yes | Yes |
TXORS |
Yes | TODO | Yes | Yes | Yes | Yes |
Notes:
Yes: the backend has an available implementation.TODO: the instruction is already part of the public API or documented ISA surface, but the backend implementation is not available yet or has not been integrated for that backend.No: explicitly unsupported, or not planned for that backend at the moment.- Blank: the status has not been finalized yet, or the entry is still being reviewed.