Ascend C 算子开发文档目录
基于 CANN 社区版 8.2.RC1 制作
Ascend C 算子开发
- 快速入门
- 3.1. HelloWorld
- 3.2. 基于Kernel直调工程的算子开发
- 3.3. 基于自定义算子工程的算子开发
- 快速入门
- 算子实现
- 6.1. 概述
- 6.2. 矢量编程
- 6.3. 矩阵编程(高阶API)
- 6.3.1. 基础知识
- 6.3.2. 算子实现
- 6.3.3. 特性场景
- 6.3.3.1. Matmul特性介绍
- 6.3.3.2. 多核对齐切分
- 6.3.3.3. 多核非对齐切分
- 6.3.3.4. 异步场景处理
- 6.3.3.5. 矩阵乘输出的量化/反量化
- 6.3.3.6. 矩阵乘输出的Channel拆分
- 6.3.3.7. 矩阵向量乘
- 6.3.3.8. 4:2稀疏矩阵乘
- 6.3.3.9. TSCM输入的矩阵乘
- 6.3.3.10. 矩阵乘输出的N方向对齐
- 6.3.3.11. 单次矩阵乘局部输出
- 6.3.3.12. AIC和AIV独立运行机制
- 6.3.3.13. Batch Matmul基础功能
- 6.4. 矩阵编程(基础API)
- 6.5. 融合算子编程
- 6.6. Kernel直调算子开发
- 6.7. 工程化算子开发
- 6.7.1. 概述
- 6.7.2. 创建算子工程
- 6.7.3. 算子原型定义
- 6.7.4. Kernel侧算子实现
- 6.7.5. Host侧tiling实现
- 6.7.6. 算子包编译
- 6.7.7. 算子动态库编译
- 6.7.8. 单算子API调用
- 算子实现
- AI框架算子适配
- 9.1. 概述
- 9.2. PyTorch框架
- 9.3. ONNX框架
- 9.4. TensorFlow框架
- AI框架算子适配
- 常用操作
- 11.1. 如何开发动态输入算子
- 11.2. 如何在矢量编程时使能Vector Core
- 11.3. 如何开发通算融合算子
- 11.4. 如何使用Tensor高维切分计算API
- 11.5. 如何使用归约指令
- 11.6. 如何使用掩码操作API
- 11.7. 如何使用workspace
- 11.8. 如何进行Tiling调测
- 11.9. 如何使用SPM Buffer
- 11.10. 如何使用更底层编程方式提升算子性能
- 11.11. 如何使用Tensor原地操作提升算子性能
- 常用操作
- 附录
- 12.1. 简易自定义算子工程
- 12.2. showkerneldebug_data工具
- 12.3. msobjdump工具
- 附录
- FAQ
Ascend C API
- 数据类型定义
- 3.1. LocalTensor
- 3.1.1. 简介
- 3.1.2. 构造函数
- 3.1.3. SetValue
- 3.1.4. GetValue
- 3.1.5. operator[]
- 3.1.6. operator()
- 3.1.7. SetSize
- 3.1.8. GetSize
- 3.1.9. SetUserTag
- 3.1.10. GetUserTag
- 3.1.11. ReinterpretCast
- 3.1.12. GetPhyAddr
- 3.1.13. GetPosition
- 3.1.14. GetLength
- 3.1.15. SetShapeInfo
- 3.1.16. GetShapeInfo
- 3.1.17. SetAddrWithOffset
- 3.1.18. SetBufferLen
- 3.1.19. ToFile
- 3.1.20. Print
- 3.2. GlobalTensor
- 3.2.1. 简介
- 3.2.2. 构造函数
- 3.2.3. SetGlobalBuffer
- 3.2.4. GetPhyAddr
- 3.2.5. GetValue
- 3.2.6. operator()
- 3.2.7. SetValue
- 3.2.8. GetSize
- 3.2.9. operator[]
- 3.2.10. SetShapeInfo
- 3.2.11. GetShapeInfo
- 3.2.12. SetL2CacheHint
- 3.3. ShapeInfo
- 3.4. ListTensorDesc
- 3.5. TensorDesc
- 3.5.1. 简介
- 3.5.2. 构造和析构函数
- 3.5.3. SetShapeAddr
- 3.5.4. GetDim
- 3.5.5. GetIndex
- 3.5.6. GetShape
- 3.5.7. GetDataPtr
- 3.5.8. GetDataObj
- 3.6. TensorTrait
- 3.7. Layout
- 3.7.1. 简介
- 3.7.2. 构造函数
- 3.7.3. layout
- 3.7.4. GetShape
- 3.7.5. GetStride
- 3.7.6. MakeShape
- 3.7.7. MakeStride
- 3.7.8. MakeLayout
- 3.7.9. is_layout
- 3.8. LocalMemAllocator
- 3.8.1. 简介
- 3.8.2. 构造函数
- 3.8.3. GetCurAddr
- 3.8.4. Alloc
- 3.9. UnaryRepeatParams
- 3.10. BinaryRepeatParams
- 3.1. LocalTensor
- 数据类型定义
- 基础API
- 4.1. 标量计算
- 4.1.1. ScalarGetCountOfValue
- 4.1.2. ScalarCountLeadingZero
- 4.1.3. ScalarCast
- 4.1.4. CountBitsCntSameAsSignBit
- 4.1.5. ScalarGetSFFValue
- 4.1.6. ToBfloat16
- 4.1.7. ToFloat
- 4.2. 矢量计算
- 4.2.1. 单目指令
- 4.2.1.1. Exp
- 4.2.1.2. Ln
- 4.2.1.3. Abs
- 4.2.1.4. Reciprocal
- 4.2.1.5. Sqrt
- 4.2.1.6. Rsqrt
- 4.2.1.7. Not
- 4.2.1.8. Relu
- 4.2.1.9. VectorPadding(ISASI)
- 4.2.1.10. 更多样例
- 4.2.2. 双目指令
- 4.2.2.1. Add
- 4.2.2.2. Sub
- 4.2.2.3. Mul
- 4.2.2.4. Div
- 4.2.2.5. Max
- 4.2.2.6. Min
- 4.2.2.7. And
- 4.2.2.8. Or
- 4.2.2.9. AddRelu
- 4.2.2.10. AddReluCast
- 4.2.2.11. AddDeqRelu
- 4.2.2.12. SubRelu
- 4.2.2.13. SubReluCast
- 4.2.2.14. MulAddDst
- 4.2.2.15. MulCast
- 4.2.2.16. FusedMulAdd
- 4.2.2.17. FusedMulAddRelu
- 4.2.2.18. BilinearInterpolation(ISASI)
- 4.2.2.19. 更多样例
- 4.2.3. 标量双目指令
- 4.2.4. 标量三目指令
- 4.2.5. 比较指令
- 4.2.5.1. Compare
- 4.2.5.2. Compare(结果存入寄存器)
- 4.2.5.3. CompareScalar
- 4.2.5.4. GetCmpMask(ISASI)
- 4.2.5.5. SetCmpMask(ISASI)
- 4.2.6. 选择指令
- 4.2.6.1. Select
- 4.2.6.2. GatherMask
- 4.2.7. 精度转换指令
- 4.2.8. 归约指令
- 4.2.8.1. ReduceMax
- 4.2.8.2. ReduceMin
- 4.2.8.3. ReduceSum
- 4.2.8.4. WholeReduceMax
- 4.2.8.5. WholeReduceMin
- 4.2.8.6. WholeReduceSum
- 4.2.8.7. BlockReduceMax
- 4.2.8.8. BlockReduceMin
- 4.2.8.9. BlockReduceSum
- 4.2.8.10. PairReduceSum
- 4.2.8.11. RepeatReduceSum
- 4.2.8.12. GetAccVal(ISASI)
- 4.2.8.13. GetReduceMaxMinCount(ISASI)
- 4.2.9. 数据转换
- 4.2.9.1. Transpose
- 4.2.9.2. TransDataTo5HD
- 4.2.10. 数据填充
- 4.2.10.1. Duplicate
- 4.2.10.2. Brcb
- 4.2.10.3. CreateVecIndex
- 4.2.11. 排序组合(ISASI)
- 4.2.11.1. ProposalConcat
- 4.2.11.2. ProposalExtract
- 4.2.11.3. RpSort16
- 4.2.11.4. MrgSort4
- 4.2.11.5. Sort32
- 4.2.11.6. MrgSort
- 4.2.11.7. GetMrgSortResult
- 4.2.12. 数据分散/数据收集
- 4.2.12.1. Gather
- 4.2.12.2. Gatherb(ISASI)
- 4.2.12.3. Scatter(ISASI)
- 4.2.13. 掩码操作
- 4.2.13.1. SetMaskCount
- 4.2.13.2. SetMaskNorm
- 4.2.13.3. SetVectorMask
- 4.2.13.4. ResetMask
- 4.2.14. 量化设置
- 4.2.14.1. SetDeqScale
- 4.2.1. 单目指令
- 4.3. 数据搬运
- 4.3.1. DataCopy
- 4.3.2. Copy
- 4.3.3. DataCopyPad(ISASI)
- 4.3.4. SetPadValue(ISASI)
- 4.3.5. SetFixPipeConfig(ISASI)
- 4.3.6. SetFixpipeNz2ndFlag(ISASI)
- 4.3.7. SetFixpipePreQuantFlag(ISASI)
- 4.3.8. SetFixPipeClipRelu(ISASI)
- 4.3.9. SetFixPipeAddr(ISASI)
- 4.4. 内存管理与同步控制
- 4.4.1. TPipe
- 4.4.1.1. TPipe构造函数
- 4.4.1.2. Init
- 4.4.1.3. Destroy
- 4.4.1.4. InitBuffer
- 4.4.1.5. Reset
- 4.4.1.6. AllocEventID
- 4.4.1.7. ReleaseEventID
- 4.4.1.8. FetchEventID
- 4.4.1.9. GetBaseAddr
- 4.4.1.10. InitBufPool
- 4.4.2. GetTPipePtr
- 4.4.3. TBufPool
- 4.4.3.1. 简介
- 4.4.3.2. 构造函数
- 4.4.3.3. InitBufPool
- 4.4.3.4. InitBuffer
- 4.4.3.5. Reset
- 4.4.4. 自定义TBufPool
- 4.4.4.1. EXTERNIMPLBUFPOOL宏
- 4.4.4.2. Reset
- 4.4.4.3. Init
- 4.4.4.4. GetBufHandle
- 4.4.4.5. SetCurAddr
- 4.4.4.6. GetCurAddr
- 4.4.4.7. SetCurBufSize
- 4.4.4.8. GetCurBufSize
- 4.4.5. TQue
- 4.4.5.1. 简介
- 4.4.5.2. AllocTensor
- 4.4.5.3. FreeTensor
- 4.4.5.4. EnQue
- 4.4.5.5. DeQue
- 4.4.5.6. VacantInQue
- 4.4.5.7. HasTensorInQue
- 4.4.5.8. GetTensorCountInQue
- 4.4.5.9. HasIdleBuffer
- 4.4.6. TQueBind
- 4.4.6.1. 简介
- 4.4.6.2. 构造函数
- 4.4.6.3. AllocTensor
- 4.4.6.4. FreeTensor
- 4.4.6.5. EnQue
- 4.4.6.6. DeQue
- 4.4.6.7. VacantInQue
- 4.4.6.8. HasTensorInQue
- 4.4.6.9. GetTensorCountInQue
- 4.4.6.10. HasIdleBuffer
- 4.4.6.11. FreeAllEvent
- 4.4.6.12. InitBufHandle
- 4.4.6.13. InitStartBufHandle
- 4.4.7. TBuf
- 4.4.7.1. TBuf简介
- 4.4.7.2. 构造函数
- 4.4.7.3. Get
- 4.4.7.4. GetWithOffset
- 4.4.8. SPM Buffer
- 4.4.8.1. InitSpmBuffer
- 4.4.8.2. WriteSpmBuffer
- 4.4.8.3. ReadSpmBuffer
- 4.4.9. workspace
- 4.4.9.1. GetSysWorkSpacePtr
- 4.4.9.2. SetSysWorkSpace
- 4.4.9.3. GetUserWorkspace
- 4.4.10. 核内同步
- 4.4.10.1. TQueSync
- 4.4.10.1.1. 同步控制简介
- 4.4.10.1.2. 模板参数
- 4.4.10.1.3. SetFlag/WaitFlag
- 4.4.10.2. SetFlag/WaitFlag(ISASI)
- 4.4.10.3. PipeBarrier(ISASI)
- 4.4.10.4. DataSyncBarrier(ISASI)
- 4.4.10.1. TQueSync
- 4.4.11. 核间同步
- 4.4.11.1. IBSet
- 4.4.11.2. IBWait
- 4.4.11.3. SyncAll
- 4.4.11.4. CrossCoreSetFlag(ISASI)
- 4.4.11.5. CrossCoreWaitFlag(ISASI)
- 4.4.11.6. InitDetermineComputeWorkspace
- 4.4.11.7. NotifyNextBlock
- 4.4.11.8. WaitPreBlock
- 4.4.12. 任务间同步
- 4.4.12.1. SetNextTaskStart
- 4.4.12.2. WaitPreTaskEnd
- 4.4.13. TPosition
- 4.4.1. TPipe
- 4.5. 缓存处理
- 4.5.1. DataCachePreload
- 4.5.2. DataCacheCleanAndInvalid
- 4.5.3. ICachePreLoad(ISASI)
- 4.5.4. GetICachePreloadStatus(ISASI)
- 4.6. 系统变量访问
- 4.6.1. GetBlockNum
- 4.6.2. GetBlockIdx
- 4.6.3. GetDataBlockSizeInBytes
- 4.6.4. GetArchVersion
- 4.6.5. GetTaskRation
- 4.6.6. InitSocState
- 4.6.7. GetProgramCounter(ISASI)
- 4.6.8. GetSubBlockNum(ISASI)
- 4.6.9. GetSubBlockIdx(ISASI)
- 4.6.10. GetSystemCycle(ISASI)
- 4.7. 原子操作
- 4.7.1. SetAtomicAdd
- 4.7.2. SetAtomicType
- 4.7.3. SetAtomicNone
- 4.7.4. SetAtomicMax(ISASI)
- 4.7.5. SetAtomicMin(ISASI)
- 4.7.6. SetStoreAtomicConfig(ISASI)
- 4.7.7. GetStoreAtomicConfig(ISASI)
- 4.8. 矩阵计算(ISASI)
- 4.8.1. InitConstValue
- 4.8.2. LoadData
- 4.8.3. LoadDataWithTranspose
- 4.8.4. SetAippFunctions
- 4.8.5. LoadImageToLocal
- 4.8.6. LoadUnzipIndex
- 4.8.7. LoadDataUnzip
- 4.8.8. LoadDataWithSparse
- 4.8.9. SetFmatrix
- 4.8.10. SetLoadDataBoundary
- 4.8.11. SetLoadDataRepeat
- 4.8.12. SetLoadDataPaddingValue
- 4.8.13. Mmad
- 4.8.14. MmadWithSparse
- 4.8.15. Fixpipe
- 4.8.16. SetHF32Mode
- 4.8.17. SetHF32TransMode
- 4.8.18. SetMMLayoutTransform
- 4.8.19. CheckLocalMemoryIA
- 4.8.20. Conv2D
- 4.8.21. Gemm
- 4.9. 资源管理(ISASI)
- 4.9.1. CubeResGroupHandle
- 4.9.1.1. 使用说明
- 4.9.1.2. CubeResGroupHandle构造函数
- 4.9.1.3. CreateCubeResGroup
- 4.9.1.4. AssignQueue
- 4.9.1.5. AllocMessage
- 4.9.1.6. PostMessage
- 4.9.1.7. PostFakeMsg
- 4.9.1.8. SetQuit
- 4.9.1.9. Wait
- 4.9.1.10. FreeMessage
- 4.9.1.11. SetSkipMsg
- 4.9.2. GroupBarrier
- 4.9.2.1. 使用说明
- 4.9.2.2. GroupBarrier构造函数
- 4.9.2.3. Arrive
- 4.9.2.4. Wait
- 4.9.2.5. GetWorkspaceLen
- 4.9.3. KfcWorkspace
- 4.9.3.1. 构造函数与析构函数
- 4.9.3.2. UpdateKfcWorkspace
- 4.9.3.3. GetKfcWorkspace
- 4.9.1. CubeResGroupHandle
- 4.10. Kernel Tiling
- 4.10.1. GETTILINGDATA
- 4.10.2. GETTILINGDATAWITHSTRUCT
- 4.10.3. GETTILINGDATA_MEMBER
- 4.10.4. TILINGKEYIS
- 4.10.5. REGISTERTILINGDEFAULT
- 4.10.6. REGISTERTILINGFOR_TILINGKEY
- 4.10.7. 设置kernel类型
- 4.1. 标量计算
- 基础API
- 高阶API
- 5.1. 数学库
- 5.1.1. Tanh
- 5.1.1.1. Tanh
- 5.1.1.2. GetTanhMaxMinTmpSize
- 5.1.1.3. GetTanhTmpBufferFactorSize
- 5.1.2. Asin
- 5.1.2.1. Asin
- 5.1.2.2. GetAsinMaxMinTmpSize
- 5.1.2.3. GetAsinTmpBufferFactorSize
- 5.1.3. Sin
- 5.1.3.1. Sin
- 5.1.3.2. GetSinMaxMinTmpSize
- 5.1.3.3. GetSinTmpBufferFactorSize
- 5.1.4. Acos
- 5.1.4.1. Acos
- 5.1.4.2. GetAcosMaxMinTmpSize
- 5.1.4.3. GetAcosTmpBufferFactorSize
- 5.1.5. Cos
- 5.1.5.1. Cos
- 5.1.5.2. GetCosMaxMinTmpSize
- 5.1.5.3. GetCosTmpBufferFactorSize
- 5.1.6. Log
- 5.1.6.1. Log
- 5.1.6.2. GetLogMaxMinTmpSize
- 5.1.6.3. GetLogTmpBufferFactorSize
- 5.1.7. Atan
- 5.1.7.1. Atan
- 5.1.7.2. GetAtanMaxMinTmpSize
- 5.1.7.3. GetAtanTmpBufferFactorSize
- 5.1.8. Power
- 5.1.8.1. Power
- 5.1.8.2. GetPowerMaxMinTmpSize
- 5.1.8.3. GetPowerTmpBufferFactorSize
- 5.1.9. Sinh
- 5.1.9.1. Sinh
- 5.1.9.2. GetSinhMaxMinTmpSize
- 5.1.9.3. GetSinhTmpBufferFactorSize
- 5.1.10. Cosh
- 5.1.10.1. Cosh
- 5.1.10.2. GetCoshMaxMinTmpSize
- 5.1.10.3. GetCoshTmpBufferFactorSize
- 5.1.11. Tan
- 5.1.11.1. Tan
- 5.1.11.2. GetTanMaxMinTmpSize
- 5.1.11.3. GetTanTmpBufferFactorSize
- 5.1.12. Trunc
- 5.1.12.1. Trunc
- 5.1.12.2. GetTruncMaxMinTmpSize
- 5.1.12.3. GetTruncTmpBufferFactorSize
- 5.1.13. Frac
- 5.1.13.1. Frac
- 5.1.13.2. GetFracMaxMinTmpSize
- 5.1.13.3. GetFracTmpBufferFactorSize
- 5.1.14. Erf
- 5.1.14.1. Erf
- 5.1.14.2. GetErfMaxMinTmpSize
- 5.1.14.3. GetErfTmpBufferFactorSize
- 5.1.15. Erfc
- 5.1.15.1. Erfc
- 5.1.15.2. GetErfcMaxMinTmpSize
- 5.1.15.3. GetErfcTmpBufferFactorSize
- 5.1.16. Sign
- 5.1.16.1. Sign
- 5.1.16.2. GetSignMaxMinTmpSize
- 5.1.16.3. GetSignTmpBufferFactorSize
- 5.1.17. Atanh
- 5.1.17.1. Atanh
- 5.1.17.2. GetAtanhMaxMinTmpSize
- 5.1.17.3. GetAtanhTmpBufferFactorSize
- 5.1.18. Asinh
- 5.1.18.1. Asinh
- 5.1.18.2. GetAsinhMaxMinTmpSize
- 5.1.18.3. GetAsinhTmpBufferFactorSize
- 5.1.19. Acosh
- 5.1.19.1. Acosh
- 5.1.19.2. GetAcoshMaxMinTmpSize
- 5.1.19.3. GetAcoshTmpBufferFactorSize
- 5.1.20. Floor
- 5.1.20.1. Floor
- 5.1.20.2. GetFloorMaxMinTmpSize
- 5.1.20.3. GetFloorTmpBufferFactorSize
- 5.1.21. Ceil
- 5.1.21.1. Ceil
- 5.1.21.2. GetCeilMaxMinTmpSize
- 5.1.21.3. GetCeilTmpBufferFactorSize
- 5.1.22. Clamp
- 5.1.22.1. ClampMax
- 5.1.22.2. ClampMin
- 5.1.22.3. GetClampMaxMinTmpSize
- 5.1.22.4. GetClampTmpBufferFactorSize
- 5.1.23. Round
- 5.1.23.1. Round
- 5.1.23.2. GetRoundMaxMinTmpSize
- 5.1.23.3. GetRoundTmpBufferFactorSize
- 5.1.24. Axpy
- 5.1.24.1. Axpy
- 5.1.24.2. GetAxpyMaxMinTmpSize
- 5.1.24.3. GetAxpyTmpBufferFactorSize
- 5.1.25. Exp
- 5.1.25.1. Exp
- 5.1.25.2. GetExpMaxMinTmpSize
- 5.1.25.3. GetExpTmpBufferFactorSize
- 5.1.26. Lgamma
- 5.1.26.1. Lgamma
- 5.1.26.2. GetLgammaMaxMinTmpSize
- 5.1.26.3. GetLgammaTmpBufferFactorSize
- 5.1.27. Digamma
- 5.1.27.1. Digamma
- 5.1.27.2. GetDigammaMaxMinTmpSize
- 5.1.27.3. GetDigammaTmpBufferFactorSize
- 5.1.28. Xor
- 5.1.28.1. Xor
- 5.1.28.2. GetXorMaxMinTmpSize
- 5.1.28.3. GetXorTmpBufferFactorSize
- 5.1.29. CumSum
- 5.1.29.1. CumSum
- 5.1.29.2. GetCumSumMaxMinTmpSize
- 5.1.30. Fmod
- 5.1.30.1. Fmod
- 5.1.30.2. GetFmodMaxMinTmpSize
- 5.1.30.3. GetFmodTmpBufferFactorSize
- 5.1.31. 更多样例
- 5.1.1. Tanh
- 5.2. Matmul
- 5.2.1. Matmul
- 5.2.1.1. 使用说明
- 5.2.1.2. Matmul模板参数
- 5.2.1.3. MatmulConfig
- 5.2.1.4. MatmulCallBackFunc
- 5.2.1.5. MatmulPolicy
- 5.2.1.6. Matmul特性场景
- 5.2.1.7. GetNormalConfig
- 5.2.1.8. GetMDLConfig
- 5.2.1.9. GetSpecialMDLConfig
- 5.2.1.10. GetIBShareNormConfig
- 5.2.1.11. GetBasicConfig
- 5.2.1.12. GetSpecialBasicConfig
- 5.2.1.13. GetMMConfig
- 5.2.1.14. REGISTMATMULOBJ
- 5.2.1.15. Init
- 5.2.1.16. SetTensorA
- 5.2.1.17. SetTensorB
- 5.2.1.18. SetBias
- 5.2.1.19. DisableBias
- 5.2.1.20. GetBatchTensorC
- 5.2.1.21. Iterate
- 5.2.1.22. GetTensorC
- 5.2.1.23. IterateAll
- 5.2.1.24. WaitIterateAll
- 5.2.1.25. IterateBatch
- 5.2.1.26. WaitIterateBatch
- 5.2.1.27. IterateNBatch
- 5.2.1.28. End
- 5.2.1.29. SetHF32
- 5.2.1.30. SetTail
- 5.2.1.31. SetBatchNum
- 5.2.1.32. SetQuantScalar
- 5.2.1.33. SetQuantVector
- 5.2.1.34. SetOrgShape
- 5.2.1.35. SetSingleShape
- 5.2.1.36. SetLocalWorkspace
- 5.2.1.37. SetWorkspace
- 5.2.1.38. SetAntiQuantScalar
- 5.2.1.39. SetAntiQuantVector
- 5.2.1.40. WaitGetTensorC
- 5.2.1.41. GetOffsetC
- 5.2.1.42. AsyncGetTensorC
- 5.2.1.43. SetUserDefInfo
- 5.2.1.44. SetSelfDefineData
- 5.2.1.45. GetMatmulApiTiling
- 5.2.1.46. ClearBias
- 5.2.1.47. GetBatchC
- 5.2.1.48. SetSparseIndex
- 5.2.2. Matmul Tiling
- 5.2.2.1. Matmul Tiling类
- 5.2.2.1.1. 使用说明
- 5.2.2.1.2. 构造函数
- 5.2.2.1.3. TCubeTiling结构体
- 5.2.2.1.4. SetAType
- 5.2.2.1.5. SetBType
- 5.2.2.1.6. SetCType
- 5.2.2.1.7. SetBiasType
- 5.2.2.1.8. SetSingleShape
- 5.2.2.1.9. SetShape
- 5.2.2.1.10. SetOrgShape
- 5.2.2.1.11. SetFixSplit
- 5.2.2.1.12. EnableMultiCoreSplitK
- 5.2.2.1.13. EnableBias
- 5.2.2.1.14. SetBufferSpace
- 5.2.2.1.15. SetTraverse
- 5.2.2.1.16. SetMadType
- 5.2.2.1.17. SetSplitRange
- 5.2.2.1.18. SetDoubleBuffer
- 5.2.2.1.19. GetBaseM
- 5.2.2.1.20. GetBaseN
- 5.2.2.1.21. GetBaseK
- 5.2.2.1.22. GetTiling
- 5.2.2.1.23. SetDim
- 5.2.2.1.24. SetSingleRange
- 5.2.2.1.25. GetSingleShape
- 5.2.2.1.26. GetCoreNum
- 5.2.2.1.27. SetAlignSplit
- 5.2.2.1.28. SetDequantType
- 5.2.2.1.29. SetALayout
- 5.2.2.1.30. SetBLayout
- 5.2.2.1.31. SetCLayout
- 5.2.2.1.32. SetBatchNum
- 5.2.2.1.33. SetBatchInfoForNormal
- 5.2.2.1.34. SetMatmulConfigParams
- 5.2.2.1.35. SetBias
- 5.2.2.1.36. SetSplitK
- 5.2.2.1.37. SetSparse
- 5.2.2.2. 获取Matmul计算所需空间
- 5.2.2.2.1. MultiCoreMatmulGetTmpBufSize
- 5.2.2.2.2. MultiCoreMatmulGetTmpBufSizeV2
- 5.2.2.2.3. BatchMatmulGetTmpBufSize
- 5.2.2.2.4. BatchMatmulGetTmpBufSizeV2
- 5.2.2.2.5. MatmulGetTmpBufSize
- 5.2.2.2.6. MatmulGetTmpBufSizeV2
- 5.2.2.1. Matmul Tiling类
- 5.2.1. Matmul
- 5.3. 激活函数
- 5.3.1. SoftMax
- 5.3.1.1. SoftMax
- 5.3.1.2. SimpleSoftMax
- 5.3.1.3. SoftmaxFlash
- 5.3.1.4. SoftmaxGrad
- 5.3.1.5. SoftmaxFlashV2
- 5.3.1.6. SoftmaxFlashV3
- 5.3.1.7. SoftmaxGradFront
- 5.3.1.8. AdjustSoftMaxRes
- 5.3.1.9. SoftMax Tiling使用说明
- 5.3.1.10. SoftMax/SimpleSoftMax Tiling
- 5.3.1.11. SoftmaxFlash Tiling接口
- 5.3.1.12. SoftmaxGrad Tiling接口
- 5.3.1.13. SoftmaxFlashV2 Tiling接口
- 5.3.1.14. SoftmaxFlashV3 Tiling接口
- 5.3.1.15. IsBasicBlockInSoftMax
- 5.3.2. LogSoftMax
- 5.3.2.1. LogSoftMax
- 5.3.2.2. LogSoftMax Tiling
- 5.3.3. Gelu
- 5.3.3.1. Gelu
- 5.3.3.2. FasterGelu
- 5.3.3.3. FasterGeluV2
- 5.3.3.4. GetGeluMaxMinTmpSize
- 5.3.4. SwiGLU
- 5.3.4.1. SwiGLU
- 5.3.4.2. GetSwiGLUMaxMinTmpSize
- 5.3.4.3. GetSwiGLUTmpBufferFactorSize
- 5.3.5. Silu
- 5.3.5.1. Silu
- 5.3.5.2. GetSiluTmpSize
- 5.3.6. Swish
- 5.3.6.1. Swish
- 5.3.6.2. GetSwishTmpSize
- 5.3.7. GeGLU
- 5.3.7.1. GeGLU
- 5.3.7.2. GetGeGLUMaxMinTmpSize
- 5.3.7.3. GetGeGLUTmpBufferFactorSize
- 5.3.8. ReGlu
- 5.3.8.1. ReGlu
- 5.3.8.2. GetReGluMaxMinTmpSize
- 5.3.9. Sigmoid
- 5.3.9.1. Sigmoid
- 5.3.9.2. GetSigmoidMaxMinTmpSize
- 5.3.1. SoftMax
- 5.4. 数据归一化
- 5.4.1. LayerNorm
- 5.4.1.1. LayerNorm
- 5.4.1.2. LayerNormGrad
- 5.4.1.3. LayerNormGradBeta
- 5.4.2. LayerNorm Tiling
- 5.4.2.1. LayerNorm Tiling
- 5.4.2.2. LayerNormGrad Tiling
- 5.4.2.3. LayerNormGradBeta Tiling
- 5.4.3. RmsNorm
- 5.4.4. RmsNorm Tiling
- 5.4.5. BatchNorm
- 5.4.6. BatchNorm Tiling
- 5.4.7. DeepNorm
- 5.4.8. DeepNorm Tiling
- 5.4.9. Normalize
- 5.4.10. Normalize Tiling
- 5.4.11. WelfordUpdate
- 5.4.12. WelfordUpdate Tiling
- 5.4.13. WelfordFinalize
- 5.4.14. WelfordFinalize Tiling
- 5.4.15. GroupNorm
- 5.4.16. GroupNorm Tiling
- 5.4.1. LayerNorm
- 5.5. 量化反量化
- 5.5.1. AscendQuant
- 5.5.2. GetAscendQuantMaxMinTmpSize
- 5.5.3. AscendDequant
- 5.5.4. GetAscendDequantMaxMinTmpSize
- 5.5.5. AscendAntiQuant
- 5.5.6. GetAscendAntiQuantMaxMinTmpSize
- 5.6. 归约操作
- 5.6.1. Sum
- 5.6.1.1. Sum
- 5.6.1.2. GetSumMaxMinTmpSize
- 5.6.2. Mean
- 5.6.2.1. Mean
- 5.6.2.2. GetMeanMaxMinTmpSize
- 5.6.2.3. GetMeanTmpBufferFactorSize
- 5.6.3. ReduceXorSum
- 5.6.3.1. ReduceXorSum
- 5.6.3.2. GetReduceXorSumMaxMinTmpSize
- 5.6.4. ReduceSum
- 5.6.4.1. ReduceSum
- 5.6.4.2. GetReduceSumMaxMinTmpSize
- 5.6.5. ReduceMean
- 5.6.5.1. ReduceMean
- 5.6.5.2. GetReduceMeanMaxMinTmpSize
- 5.6.6. ReduceMax
- 5.6.6.1. ReduceMax
- 5.6.6.2. GetReduceMaxMaxMinTmpSize
- 5.6.7. ReduceMin
- 5.6.7.1. ReduceMin
- 5.6.7.2. GetReduceMinMaxMinTmpSize
- 5.6.8. ReduceAny
- 5.6.8.1. ReduceAny
- 5.6.8.2. GetReduceAnyMaxMinTmpSize
- 5.6.9. ReduceAll
- 5.6.9.1. ReduceAll
- 5.6.9.2. GetReduceAllMaxMinTmpSize
- 5.6.10. ReduceProd
- 5.6.10.1. ReduceProd
- 5.6.10.2. GetReduceProdMaxMinTmpSize
- 5.6.1. Sum
- 5.7. 排序
- 5.7.1. TopK
- 5.7.2. TopK Tiling
- 5.7.3. Sort
- 5.7.3.1. Concat
- 5.7.3.2. GetConcatTmpSize
- 5.7.3.3. Extract
- 5.7.3.4. Sort
- 5.7.3.5. GetSortTmpSize
- 5.7.3.6. GetSortOffset
- 5.7.3.7. GetSortLen
- 5.7.3.8. MrgSort
- 5.8. 数据填充
- 5.8.1. Pad
- 5.8.2. Pad Tiling
- 5.8.3. UnPad
- 5.8.4. UnPad Tiling
- 5.8.5. Broadcast
- 5.8.6. GetBroadCastMaxMinTmpSize
- 5.9. 索引操作
- 5.9.1. ArithProgression
- 5.9.2. GetArithProgressionMaxMinTmpSize
- 5.10. 比较选择
- 5.10.1. SelectWithBytesMask
- 5.10.2. GetSelectWithBytesMaskMaxMinTmpSize
- 5.11. 数据过滤
- 5.11.1. DropOut
- 5.11.2. GetDropOutMaxMinTmpSize
- 5.12. 变形
- 5.12.1. ConfusionTranspose
- 5.12.2. ConfusionTranspose Tiling
- 5.12.3. TransData
- 5.12.4. GetTransDataMaxMinTmpSize
- 5.13. Hccl
- 5.13.1. Hccl
- 5.13.1.1. 使用说明
- 5.13.1.2. Hccl模板参数
- 5.13.1.3. Init
- 5.13.1.4. SetCcTiling
- 5.13.1.5. AllReduce
- 5.13.1.6. AllGather
- 5.13.1.7. ReduceScatter
- 5.13.1.8. AlltoAll
- 5.13.1.9. AlltoAllV
- 5.13.1.10. BatchWrite
- 5.13.1.11. Commit
- 5.13.1.12. Wait
- 5.13.1.13. Iterate
- 5.13.1.14. Query
- 5.13.1.15. InterHcclGroupSync
- 5.13.1.16. Finalize
- 5.13.1.17. GetWindowsInAddr
- 5.13.1.18. GetWindowsOutAddr
- 5.13.1.19. GetRankId
- 5.13.1.20. GetRankDim
- 5.13.2. Hccl Tiling
- 5.13.2.1. 使用说明
- 5.13.2.2. TilingData结构体
- 5.13.2.3. 构造函数
- 5.13.2.4. GetTiling
- 5.13.2.5. SetOpType
- 5.13.2.6. SetGroupName
- 5.13.2.7. SetAlgConfig
- 5.13.2.8. SetReduceType
- 5.13.2.9. SetStepSize
- 5.13.2.10. SetSkipLocalRankCopy
- 5.13.2.11. SetSkipBufferWindowCopy
- 5.13.2.12. SetDebugMode
- 5.13.2.13. v1版本TilingData(废弃)
- 5.13.2.14. v2版本TilingData(废弃)
- 5.13.3. Hccl Context
- 5.13.3.1. 简介
- 5.13.3.2. SetHcclContext
- 5.13.3.3. GetHcclContext
- 5.13.1. Hccl
- 5.14. 工具类
- 5.14.1. InitGlobalMemory
- 5.15. 卷积正向
- 5.15.1. Conv3D
- 5.15.1.1. Conv3D
- 5.15.1.1.1. 使用说明
- 5.15.1.1.2. Conv3D模板参数
- 5.15.1.1.3. Init
- 5.15.1.1.4. SetInput
- 5.15.1.1.5. SetWeight
- 5.15.1.1.6. SetBias
- 5.15.1.1.7. SetSingleOutputShape
- 5.15.1.1.8. SetInputStartPosition
- 5.15.1.1.9. IterateAll
- 5.15.1.1.10. End
- 5.15.1.2. Conv3D Tiling
- 5.15.1.2.1. 使用说明
- 5.15.1.2.2. 构造函数
- 5.15.1.2.3. TConv3DApiTiling结构体
- 5.15.1.2.4. GetTiling
- 5.15.1.2.5. SetOrgWeightShape
- 5.15.1.2.6. SetOrgInputShape
- 5.15.1.2.7. SetSingleWeightShape
- 5.15.1.2.8. SetSingleOutputShape
- 5.15.1.2.9. SetInputType
- 5.15.1.2.10. SetWeightType
- 5.15.1.2.11. SetBiasType
- 5.15.1.2.12. SetOutputType
- 5.15.1.2.13. SetPadding
- 5.15.1.2.14. SetDilation
- 5.15.1.2.15. SetStride
- 5.15.1.2.16. SetGroups
- 5.15.1.1. Conv3D
- 5.15.1. Conv3D
- 5.16. 卷积反向
- 5.16.1. Conv3DBackpropInput
- 5.16.1.1. Conv3DBackpropInput
- 5.16.1.1.1. 使用说明
- 5.16.1.1.2. Init
- 5.16.1.1.3. SetGradOutput
- 5.16.1.1.4. SetWeight
- 5.16.1.1.5. SetSingleShape
- 5.16.1.1.6. SetStartPosition
- 5.16.1.1.7. Iterate
- 5.16.1.1.8. GetTensorC
- 5.16.1.1.9. End
- 5.16.1.2. Conv3DBackpropInput Tiling
- 5.16.1.2.1. 使用说明
- 5.16.1.2.2. 构造函数
- 5.16.1.2.3. TConv3DBackpropInputTiling结构体
- 5.16.1.2.4. GetTiling
- 5.16.1.2.5. SetWeightShape
- 5.16.1.2.6. SetInputShape
- 5.16.1.2.7. SetGradOutputShape
- 5.16.1.2.8. SetWeightType
- 5.16.1.2.9. SetInputType
- 5.16.1.2.10. SetGradOutputType
- 5.16.1.2.11. SetPadding
- 5.16.1.2.12. SetStride
- 5.16.1.2.13. SetDilation
- 5.16.1.2.14. SetOutputPadding
- 5.16.1.1. Conv3DBackpropInput
- 5.16.2. Conv3DBackpropFilter
- 5.16.2.1. Conv3DBackpropFilter
- 5.16.2.1.1. 使用说明
- 5.16.2.1.2. Init
- 5.16.2.1.3. SetInput
- 5.16.2.1.4. SetGradOutput
- 5.16.2.1.5. SetSingleShape
- 5.16.2.1.6. SetStartPosition
- 5.16.2.1.7. Iterate
- 5.16.2.1.8. GetTensorC
- 5.16.2.1.9. End
- 5.16.2.2. Conv3DBackpropFilter Tiling
- 5.16.2.2.1. 使用说明
- 5.16.2.2.2. 构造函数
- 5.16.2.2.3. TConv3DBpFilterTiling结构体
- 5.16.2.2.4. GetTiling
- 5.16.2.2.5. SetWeightShape
- 5.16.2.2.6. SetInputShape
- 5.16.2.2.7. SetGradOutputShape
- 5.16.2.2.8. SetWeightType
- 5.16.2.2.9. SetInputType
- 5.16.2.2.10. SetGradOutputType
- 5.16.2.2.11. SetPadding
- 5.16.2.2.12. SetStride
- 5.16.2.2.13. SetDilation
- 5.16.2.1. Conv3DBackpropFilter
- 5.16.1. Conv3DBackpropInput
- 5.17. 模板库函数
- 5.17.1. max
- 5.17.2. min
- 5.17.3. index_sequence
- 5.17.4. 容器函数
- 5.17.4.1. tuple
- 5.17.4.2. get
- 5.17.4.3. make_tuple
- 5.17.5. typetraits
- 5.17.5.1. is_convertible
- 5.17.5.2. isbaseof
- 5.17.5.3. is_same
- 5.17.5.4. enable_if
- 5.17.5.5. [conditional](https://www.hiascend.com/doc
- 5.1. 数学库
- 高阶API
- Host API
- 6.1. 原型注册与管理
- 6.1.1. 原型注册接口(OP_ADD)
- 6.1.2. OpDef
- 6.1.2.1. Input
- 6.1.2.2. Output
- 6.1.2.3. Attr
- 6.1.2.4. SetInferShape
- 6.1.2.5. SetInferShapeRange
- 6.1.2.6. SetInferDataType
- 6.1.2.7. AICore
- 6.1.2.8. MC2
- 6.1.2.9. EnableFallBack
- 6.1.2.10. Comment
- 6.1.2.11. FormatMatchMode
- 6.1.3. OpParamDef
- 6.1.3.1. ParamType
- 6.1.3.2. DataType
- 6.1.3.3. DataTypeForBinQuery
- 6.1.3.4. DataTypeList
- 6.1.3.5. Format
- 6.1.3.6. FormatForBinQuery
- 6.1.3.7. FormatList
- 6.1.3.8. UnknownShapeFormat(废弃)
- 6.1.3.9. ValueDepend
- 6.1.3.10. IgnoreContiguous
- 6.1.3.11. AutoContiguous
- 6.1.3.12. Scalar
- 6.1.3.13. ScalarList
- 6.1.3.14. To
- 6.1.3.15. Version
- 6.1.3.16. InitValue
- 6.1.3.17. OutputShapeDependOnCompute
- 6.1.3.18. Follow
- 6.1.3.19. Comment
- 6.1.4. OpAttrDef
- 6.1.5. OpAICoreDef
- 6.1.5.1. SetTiling
- 6.1.5.2. SetCheckSupport
- 6.1.5.3. SetOpSelectFormat
- 6.1.5.4. AddConfig
- 6.1.6. OpAICoreConfig
- 6.1.6.1. Input
- 6.1.6.2. Output
- 6.1.6.3. DynamicCompileStaticFlag
- 6.1.6.4. DynamicFormatFlag
- 6.1.6.5. DynamicRankSupportFlag
- 6.1.6.6. DynamicShapeSupportFlag
- 6.1.6.7. NeedCheckSupportFlag
- 6.1.6.8. PrecisionReduceFlag
- 6.1.6.9. ExtendCfgInfo
- 6.1.7. OpMC2Def
- 6.2. Tiling数据结构注册
- 6.2.1. TilingData结构定义
- 6.2.2. TilingData结构注册
- 6.2.3. ContextBuilder
- 6.2.3.1. 简介
- 6.2.3.2. 构造函数
- 6.2.3.3. KernelRunContextHolder结构定义
- 6.2.3.4. Inputs
- 6.2.3.5. Outputs
- 6.2.3.6. BuildKernelRunContext
- 6.2.3.7. NodeIoNum
- 6.2.3.8. SetOpNameType
- 6.2.3.9. IrInstanceNum
- 6.2.3.10. AddInputTd
- 6.2.3.11. AddOutputTd
- 6.2.3.12. AddAttr
- 6.2.3.13. CompileInfo
- 6.2.3.14. PlatformInfo
- 6.2.3.15. AddPlatformInfo
- 6.2.3.16. TilingData
- 6.2.3.17. Workspace
- 6.2.3.18. BuildTilingContext
- 6.2.4. OpTilingRegistry
- 6.2.4.1. 简介
- 6.2.4.2. 构造和析构函数
- 6.2.4.3. GetTilingFunc
- 6.2.4.4. LoadTilingLibrary
- 6.2.5. 模板参数定义
- 6.2.6. GETTPLTILING_KEY
- 6.2.7. ASCENDCTPLSEL_PARAM
- 6.2.8. DEVICEIMPLOP_OPTILING
- 6.3. 平台信息获取
- 6.3.1. PlatformAscendC
- 6.3.1.1. 简介
- 6.3.1.2. 构造及析构函数
- 6.3.1.3. GetCoreNum
- 6.3.1.4. GetSocVersion
- 6.3.1.5. GetCoreNumAic
- 6.3.1.6. GetCoreNumAiv
- 6.3.1.7. GetCoreNumVector
- 6.3.1.8. CalcTschBlockDim
- 6.3.1.9. GetCoreMemSize
- 6.3.1.10. GetCoreMemBw
- 6.3.1.11. GetLibApiWorkSpaceSize
- 6.3.1.12. GetResGroupBarrierWorkSpaceSize
- 6.3.1.13. GetResCubeGroupWorkSpaceSize
- 6.3.1.14. ReserveLocalMemory
- 6.3.2. PlatformAscendCManager
- 6.3.1. PlatformAscendC
- 6.4. 单算子API执行相关接口
- 6.4.1. 单算子API执行相关接口列表
- 6.4.2. 框架能力接口
- 6.4.2.1. 常用宏和类
- 6.4.2.1.1. ADDTOLAUNCHERLISTAICORE
- 6.4.2.1.2. ADDTOLAUNCHERLISTAICPU
- 6.4.2.1.3. CREATE_EXECUTOR
- 6.4.2.1.4. DFX_IN
- 6.4.2.1.5. DFX_OUT
- 6.4.2.1.6. INFER_SHAPE
- 6.4.2.1.7. L0_DFX
- 6.4.2.1.8. L2DFXPHASE_1
- 6.4.2.1.9. L2DFXPHASE_2
- 6.4.2.1.10. OP_ATTR
- 6.4.2.1.11. OPATTRNAMES
- 6.4.2.1.12. OPEMPTYARG
- 6.4.2.1.13. OP_INPUT
- 6.4.2.1.14. OP_MODE
- 6.4.2.1.15. OP_OUTPUT
- 6.4.2.1.16. OP_OUTSHAPE
- 6.4.2.1.17. OP_OPTION
- 6.4.2.1.18. OPTYPEREGISTER
- 6.4.2.1.19. OP_WORKSPACE
- 6.4.2.1.20. OpImplMode
- 6.4.2.1.21. OpExecMode
- 6.4.2.2. bfloat16
- 6.4.2.3. commontypes
- 6.4.2.3.1. GetStorageShape
- 6.4.2.3.2. SetStorageShape
- 6.4.2.3.3. GetOriginalShape
- 6.4.2.3.4. SetOriginalShape
- 6.4.2.3.5. GetViewShape
- 6.4.2.3.6. SetViewShape
- 6.4.2.3.7. GetStorageFormat
- 6.4.2.3.8. SetStorageFormat
- 6.4.2.3.9. GetOriginalFormat
- 6.4.2.3.10. SetOriginalFormat
- 6.4.2.3.11. GetViewFormat
- 6.4.2.3.12. SetViewFormat
- 6.4.2.3.13. GetViewStrides
- 6.4.2.3.14. SetViewStrides
- 6.4.2.3.15. Numel
- 6.4.2.3.16. GetDataType
- 6.4.2.3.17. IsEmpty
- 6.4.2.3.18. SetData
- 6.4.2.3.19. SetDataType
- 6.4.2.3.20. SetBoolData
- 6.4.2.3.21. SetIntData
- 6.4.2.3.22. SetFloatData
- 6.4.2.3.23. SetFp16Data
- 6.4.2.3.24. SetBf16Data
- 6.4.2.3.25. CheckOverflows
- 6.4.2.3.26. [预留接口](https://www.hiascend.com/doc
- 6.4.2.4. datatypeutils
- 6.4.2.4.1. IsBasicType
- 6.4.2.4.2. IsNumberType
- 6.4.2.4.3. IsRealNumberType
- 6.4.2.4.4. TypeSize
- 6.4.2.4.5. ToOpDataType
- 6.4.2.4.6. ToAclDataType
- 6.4.2.4.7. 预留接口
- 6.4.2.5. formatutils
- 6.4.2.5.1. IsPrivateFormat
- 6.4.2.5.2. GetPrimaryFormat
- 6.4.2.5.3. ToOpFormat
- 6.4.2.5.4. ToAclFormat
- 6.4.2.5.5. [预留接口](https://www.hiascend.com/doc
- 6.4.2.6. fp16_t
- 6.4.2.7. frameworkop
- 6.4.2.7.1. CopyToNpu
- 6.4.2.7.2. CopyToNpuSync
- 6.4.2.7.3. [CopyNpuToNpu](https://www.hiascend.com/doc
- 6.4.2.8. object
- 6.4.2.9. opargdef
- 6.4.2.10. op_cache
- 6.4.2.11. opcachecontainer
- 6.4.2.12. op_config
- 6.4.2.13. op_def
- 6.4.2.14. op_dfx
- 6.4.2.15. opexecutor
- 6.4.2.15.1. AllocTensor
- 6.4.2.15.2. AllocHostTensor
- 6.4.2.15.3. AllocIntArray
- 6.4.2.15.4. AllocFloatArray
- 6.4.2.15.5. AllocBoolArray
- 6.4.2.15.6. AllocTensorList
- 6.4.2.15.7. AllocScalarList
- 6.4.2.15.8. AllocScalar
- 6.4.2.15.9. ConvertToTensor
- 6.4.2.15.10. CommonOpExecutorRun
- 6.4.2.15.11. ReleaseTo
- 6.4.2.15.12. Getworkspacesize
- 6.4.2.15.13. AbandonCache
- 6.4.2.15.14. [预留接口](https://www.hiascend.com/doc
- 6.4.2.16. op_log
- 6.4.2.17. platform
- 6.4.2.17.1. GetCurrentPlatformInfo
- 6.4.2.17.2. GetSocVersion
- 6.4.2.17.3. GetSocLongVersion
- 6.4.2.17.4. GetBlockSize
- 6.4.2.17.5. 预留接口
- 6.4.2.18. pool_allocator
- 6.4.2.19. shapeutils
- 6.4.2.19.1. ToShape
- 6.4.2.19.2. ToShapeVector
- 6.4.2.19.3. ToContiguousStrides
- 6.4.2.19.4. CheckBroadcastShape
- 6.4.2.19.5. BroadcastInferShape
- 6.4.2.19.6. [预留接口](https://www.hiascend.com/doc
- 6.4.2.20. small_vector
- 6.4.2.21. tensorviewutils
- 6.4.2.21.1. IsContiguous
- 6.4.2.21.2. 预留接口
- 6.4.2.22. opcommon相关接口
- 6.4.2.22.1. data
- 6.4.2.22.1.1. IsComplexType
- 6.4.2.22.1.2. IsFloatingType
- 6.4.2.22.1.3. IsIntegralType
- 6.4.2.22.1.4. IsIntegralType(含bool)
- 6.4.2.22.1.5. CanCast
- 6.4.2.22.1.6. [PromoteType](https://www.hiascend.com/doc
- 6.4.2.23. aicpu相关接口
- 6.4.2.23.1. AicpuTask类
- 6.4.2.23.2. AicpuTaskSpace类
- 6.4.2.23.3. aicpuargshandler
- 6.4.2.23.4. aicpuextinfo_handle
- 6.4.2.23.5. aicpu_uitls
- 6.4.2.23.6. aicpu_task
- 6.4.2.1. 常用宏和类
- 6.4.3. 基础核函数接口
- 6.5. 内部关联接口
- 6.1. 原型注册与管理
- Host API
- 算子调测API
- 7.1. DumpTensor
- 7.2. printf
- 7.3. assert
- 7.4. DumpAccChkPoint
- 7.5. Trap
- 7.6. PrintTimeStamp
- 7.7. GmAlloc
- 7.8. ICPURUNKF
- 7.9. ICPUSETTILING_KEY
- 7.10. GmFree
- 7.11. SetKernelMode
- 7.12. TRACE_START
- 7.13. TRACE_STOP
- 7.14. MetricsProfStart
- 7.15. MetricsProfStop
- 算子调测API
Ascend C 最佳实践
- 1. 前言
- 2. 异构计算
- 性能优化
- 5.1. 优化建议总览表
- 5.2. 搬运优化
- 5.3. 内存优化
- 5.4. API使用优化
- 5.5. 流水优化
- 5.6. Tiling优化
- 性能优化
算子开发工具
- 算子设计(msKPP)
- 3.1. 工具概述
- 3.2. 使用前准备
- 3.3. 性能建模
- 3.3.1. 原理概述
- 3.3.2. 算子特性建模
- 3.3.3. 算子计算搬运规格分析
- 3.3.4. 极限性能分析
- 3.3.5. 算子tiling初步设计
- 3.3.6. 对外接口使用说明
- 3.3.6.1. 接口列表
- 3.3.6.2. 基础功能接口
- 3.3.6.2.1. Chip
- 3.3.6.2.2. Core
- 3.3.6.2.3. Tensor
- 3.3.6.2.4. Tensor.load
- 3.3.6.3. 同步类指令接口
- 3.3.6.4. 指令接口
- 3.3.6.4.1. mmad
- 3.3.6.4.2. vadd
- 3.3.6.4.3. vbrcb
- 3.3.6.4.4. vconv
- 3.3.6.4.5. vconv_deq
- 3.3.6.4.6. vconv_vdeq
- 3.3.6.4.7. vector_dup
- 3.3.6.4.8. vexp
- 3.3.6.4.9. vln
- 3.3.6.4.10. vmax
- 3.3.6.4.11. vmul
- 3.3.6.4.12. vmuls
- 3.3.6.4.13. vsub
- 3.3.6.4.14. vdiv
- 3.3.6.4.15. vcadd
- 3.3.6.4.16. vabs
- 3.3.6.4.17. vaddrelu
- 3.3.6.4.18. vaddreluconv
- 3.3.6.4.19. vadds
- 3.3.6.4.20. vand
- 3.3.6.4.21. vaxpy
- 3.3.6.4.22. vbitsort
- 3.3.6.4.23. vcgadd
- 3.3.6.4.24. vcgmax
- 3.3.6.4.25. vcgmin
- 3.3.6.4.26. vcmax
- 3.3.6.4.27. vcmin
- 3.3.6.4.28. vcmp_xxx
- 3.3.6.4.29. vcmpv_xxx
- 3.3.6.4.30. vcmpvs_xxx
- 3.3.6.4.31. vcopy
- 3.3.6.4.32. vcpadd
- 3.3.6.4.33. vgather
- 3.3.6.4.34. vgatherb
- 3.3.6.4.35. vlrelu
- 3.3.6.4.36. vmadd
- 3.3.6.4.37. vmaddrelu
- 3.3.6.4.38. vmaxs
- 3.3.6.4.39. vmin
- 3.3.6.4.40. vmins
- 3.3.6.4.41. vmla
- 3.3.6.4.42. vmrgsort
- 3.3.6.4.43. vmulconv
- 3.3.6.4.44. vnot
- 3.3.6.4.45. vor
- 3.3.6.4.46. vrec
- 3.3.6.4.47. vreduce
- 3.3.6.4.48. vreducev2
- 3.3.6.4.49. vrelu
- 3.3.6.4.50. vrsqrt
- 3.3.6.4.51. vsel
- 3.3.6.4.52. vshl
- 3.3.6.4.53. vshr
- 3.3.6.4.54. vsqrt
- 3.3.6.4.55. vsubrelu
- 3.3.6.4.56. vsubreluconv
- 3.3.6.4.57. vtranspose
- 3.4. 调用msOpGen算子工程
- 3.4.1. 功能介绍
- 3.4.2. 调用示例
- 3.4.3. 接口列表
- 3.4.3.1. mskpp.tiling_func
- 3.4.3.2. mskpp.getkernelfrom_binary
- 3.5. 自动调优
- 3.5.1. 功能介绍
- 3.5.2. 快速入门
- 3.5.3. 自动调优示例
- 3.5.4. 接口列表
- 3.5.4.1. autotune
- 3.5.4.2. code_gen
- 3.5.4.3. compile
- 3.5.4.4. autotune_v2
- 3.5.4.5. compile_executable
- 3.5.5. 附录
- 3.5.5.1. basicmatmulautotune.py
- 3.5.5.2. jit_build.sh
- 3.5.5.3. basicmatmulexecutable_autotune.py
- 3.5.5.4. jitbuildexecutable.sh
- 3.6. FAQ
- 3.6.1. 运行Kernel时提示权限错误
- 算子设计(msKPP)
- 算子测试(msOpST)
- 5.1. 工具概述
- 5.2. 使用前准备
- 5.3. 生成测试用例定义文件
- 5.4. 生成/执行测试用例
- 5.5. 生成单算子上板测试框架
- 5.6. 典型案例
- 5.6.1. 测试用例定义文件
- 算子测试(msOpST)
- 异常检测(msSanitizer)
- 6.1. 工具概述
- 6.2. 使用前准备
- 6.3. 内存检测
- 6.4. 竞争检测
- 6.5. 未初始化检测
- 6.6. 典型案例
- 6.6.1. 检测内核调用符方式的Ascend C算子
- 6.6.2. 检测API调用的单算子
- 6.6.3. 检测PyTorch接口调用的算子
- 6.6.4. 检测CANN软件栈的内存
- 6.7. FAQ
- 6.8. 对外接口使用说明
- 6.8.1. 接口列表
- 6.8.2. sanitizer接口
- 6.8.2.1. sanitizerRtMalloc
- 6.8.2.2. sanitizerRtMallocCached
- 6.8.2.3. sanitizerRtFree
- 6.8.2.4. sanitizerRtMemset
- 6.8.2.5. sanitizerRtMemsetAsync
- 6.8.2.6. sanitizerRtMemcpy
- 6.8.2.7. sanitizerRtMemcpyAsync
- 6.8.2.8. sanitizerRtMemcpy2d
- 6.8.2.9. sanitizerRtMemcpy2dAsync
- 6.8.2.10. sanitizerReportMalloc
- 6.8.2.11. sanitizerReportFree
- 6.8.3. 扩展接口(mstx)
- 6.8.3.1. mstx接口简介
- 6.8.3.2. mstxDomainCreateA
- 6.8.3.3. mstxMemHeapRegister
- 6.8.3.4. mstxMemRegionsRegister
- 6.8.3.5. mstxMemRegionsUnregister
- 6.8.3.6. mstxMemHeapUnregister
- 异常检测(msSanitizer)
- 算子调试(msDebug)
- 7.1. 工具概述
- 7.2. 使用前准备
- 7.3. 指定Device ID(通算融合算子场景)
- 7.4. 断点设置
- 7.5. 内存与变量打印
- 7.6. 单步调试
- 7.7. 中断运行
- 7.8. 核切换
- 7.9. 读取寄存器
- 7.10. 调试信息展示
- 7.11. 解析异常算子dump文件
- 7.12. 典型案例
- 7.12.1. 上板调试vector算子
- 7.12.2. 调用Ascend CL单算子
- 7.12.3. 调试PyTorch接口调用的算子
- 7.12.4. 上板调试模板库的算子
- 7.13. FAQ
- 算子调试(msDebug)
- 算子调优(msProf)
- 8.1. 工具概述
- 8.2. 使用前准备
- 8.3. 工具使用
- 8.4. 计算内存热力图
- 8.5. Roofline瓶颈分析图
- 8.6. Cache热力图
- 8.7. 通算流水图
- 8.8. 指令流水图
- 8.9. 算子代码热点图
- 8.10. 内存通路吞吐率波形图
- 8.11. 性能数据文件
- 8.11.1. msprof op
- 8.11.1.1. ArithmeticUtilization(cube及vector类型指令耗时和占比)
- 8.11.1.2. L2Cache(L2 Cache命中率)
- 8.11.1.3. Memory(内存读写带宽速率)
- 8.11.1.4. MemoryL0(L0读写带宽速率)
- 8.11.1.5. MemoryUB(UB读写带宽速率)
- 8.11.1.6. OpBasicInfo(算子基础信息)
- 8.11.1.7. PipeUtilization(计算单元和搬运单元耗时占比)
- 8.11.1.8. ResourceConflictRatio(资源冲突占比)
- 8.11.2. msprof op simulator
- 8.11.1. msprof op
- 8.12. Json配置文件说明
- 8.13. 典型案例
- 8.13.1. 采集Ascend C算子的性能数据
- 8.13.2. 通过指令流水图优化算子
- 8.13.3. 采集MC2算子的性能数据
- 8.14. 扩展接口(mstx)
- 8.14.1. mstx接口简介
- 8.14.2. mstxRangeStartA
- 8.14.3. mstxRangeEnd
- 算子调优(msProf)
- 附录
- 9.1. TBE&AI CPU算子开发场景
- 9.1.1. 基于msOpGen工具创建算子工程
- 9.1.2. 算子编译部署
- 9.1.3. 基于msOpST工具进行算子ST测试
- 9.1.3.1. 简介
- 9.1.3.2. 生成测试用例定义文件
- 9.1.3.3. 生成/执行测试用例
- 9.1.3.4. 测试用例定义文件配置样例
- 9.1. TBE&AI CPU算子开发场景
- 附录