Matrix Multiply【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isaThis document describes matrix multiplication and matrix-vector operations.Total Operations:8OperationsTGEMV_MXFor detailed instruction documentation, see isa/TGEMV_MXAS Level 1 (SSA):%acc pto.tgemv.mx %a, %a_scale, %b, %b_scale : (!pto.tile..., !pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tgemv.mx ins(%a, %a_scale, %b, %b_scale : (!pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...)) outs(%acc : !pto.tile_buf...)TMATMUL_MXFor detailed instruction documentation, see isa/TMATMUL_MXAS Level 1 (SSA):%c pto.tmatmul.mx %a, %a_scale, %b, %b_scale : (!pto.tile..., !pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile... %c_out pto.tmatmul.mx.acc %c_in, %a, %a_scale, %b, %b_scale : (!pto.tile..., !pto.tile..., !pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile... %c pto.tmatmul.mx.bias %a, %a_scale, %b, %b_scale, %bias : (!pto.tile..., !pto.tile..., !pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tmatmul.mx ins(%a, %a_scale, %b, %b_scale : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...) pto.tmatmul.mx.acc ins(%c_in, %a, %a_scale, %b, %b_scale : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c_out : !pto.tile_buf...) pto.tmatmul.mx.bias ins(%a, %a_scale, %b, %b_scale, %bias : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...)TMATMULFor detailed instruction documentation, see isa/TMATMULAS Level 1 (SSA):%c pto.tmatmul %a, %b : (!pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tmatmul ins(%a, %b : !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...)TMATMUL_ACCFor detailed instruction documentation, see isa/TMATMUL_ACCAS Level 1 (SSA):%c_out pto.tmatmul.acc %c_in, %a, %b : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tmatmul.acc ins(%c_in, %a, %b : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c_out : !pto.tile_buf...)TMATMUL_BIASFor detailed instruction documentation, see isa/TMATMUL_BIASAS Level 1 (SSA):%c pto.tmatmul.bias %a, %b, %bias : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tmatmul.bias ins(%a, %b, %bias : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...)TGEMVFor detailed instruction documentation, see isa/TGEMVAS Level 1 (SSA):%c pto.tgemv %a, %b : (!pto.tile..., !pto.tile...) - !pto.tile... %c_out pto.tgemv.acc %c_in, %a, %b : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile... %c pto.tgemv.bias %a, %b, %bias : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tgemv ins(%a, %b : !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...) pto.tgemv.acc ins(%c_in, %a, %b : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c_out : !pto.tile_buf...) pto.tgemv.bias ins(%a, %b, %bias : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...)TGEMV_ACCFor detailed instruction documentation, see isa/TGEMV_ACCAS Level 1 (SSA):%c pto.tgemv %a, %b : (!pto.tile..., !pto.tile...) - !pto.tile... %c_out pto.tgemv.acc %c_in, %a, %b : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile... %c pto.tgemv.bias %a, %b, %bias : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tgemv ins(%a, %b : !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...) pto.tgemv.acc ins(%c_in, %a, %b : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c_out : !pto.tile_buf...) pto.tgemv.bias ins(%a, %b, %bias : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...)TGEMV_BIASFor detailed instruction documentation, see isa/TGEMV_BIASAS Level 1 (SSA):%c pto.tgemv %a, %b : (!pto.tile..., !pto.tile...) - !pto.tile... %c_out pto.tgemv.acc %c_in, %a, %b : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile... %c pto.tgemv.bias %a, %b, %bias : (!pto.tile..., !pto.tile..., !pto.tile...) - !pto.tile...AS Level 2 (DPS):pto.tgemv ins(%a, %b : !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...) pto.tgemv.acc ins(%c_in, %a, %b : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c_out : !pto.tile_buf...) pto.tgemv.bias ins(%a, %b, %bias : !pto.tile_buf..., !pto.tile_buf..., !pto.tile_buf...) outs(%c : !pto.tile_buf...)【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考