AicpuTask类【免费下载链接】opbase本项目是CANN算子库的基础框架库为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbaseAicpuTask类用于管理AI CPU task相关的一些参数和方法包括组装task、task初始化、task下发、task执行等功能。具体定义如下class AicpuTask { public: AicpuTask(const std::string opType, const ge::UnknowShapeOpType unknownType) : opType_(opType), unknownType_(unknownType) {} virtual ~AicpuTask() default; virtual aclnnStatus Init(const FVectorconst aclTensor * inputs, const FVectoraclTensor * outputs, const AicpuAttrs attrs) 0; virtual aclnnStatus Run(aclOpExecutor *executor, aclrtStream stream) 0; aclnnStatus SetIoTensors(aclOpExecutor *executor, op::OpArgContext *args); friend class AicpuTaskSpace; void SetSpace(void *space) { space_ space; } void SetVisit(bool visit); protected: const std::string opType_; const ge::UnknowShapeOpType unknownType_; std::unique_ptrAicpuArgsHandler argsHandle_; std::unique_ptrAicpuExtInfoHandler extInfoHandle_; uint64_t launchId_ 0U; uint64_t summaryItemId_ 0U; void *space_ nullptr; FVectorconst aclTensor * inputs_; FVectoraclTensor * outputs_; // 长度可能不够后续考虑长度可扩展 uint8_t inputKey_[kAicpuKeyBufLen] {}; size_t keyLen_ 0; bool isVisit_ false; uint64_t deviceExtMemSize_ 0; uint64_t deviceCacheOffset_ 0; };类成员属性的详细介绍请参考下表。表 1AicpuTask类成员说明属性名属性类型默认值属性说明opType_const std::stringTask对应的AI CPU算子名。UnknownType_const ge::UnknowShapeOpType0标识算子shape是基类具体类型UnknowShapeOpType。argsHandle_std::unique_ptrAicpuArgsHandlernull管理task封装参数的对象。extInfoHandle_std::unique_ptrAicpuExtInfoHandlernull管理task封装拓展参数的对象。launchId_uint64_t0用于profiling采集的任务下发id。summaryItemId_uint64_t0用于统计条目的id。space_void*null记录task属于哪个task管理集合。inputs_FVectorconst aclTensor *nulltask对应算子的输入tensor指针列表。outputs_FVectorconst aclTensor *nulltask对应算子的输出tensor指针列表。inputKey_uint8_t [kAicpuKeyBufLen]0task对应的key字段。keyLen_size_t0key字段长度。isVisit_boolfalse当前task是否正被使用。deviceExtMemSize_uint64_t0device侧预留的内存。deviceCacheOffset_uint64_t0device侧预留内存的偏移。【免费下载链接】opbase本项目是CANN算子库的基础框架库为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考