AicpuTask类
AicpuTask类用于管理AI CPU task相关的一些参数和方法,包括组装task、task初始化、task下发、task执行等功能。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | class AicpuTask { public: AicpuTask(const std::string &opType, const ge::UnknowShapeOpType unknownType) : opType_(opType), unknownType_(unknownType) {} virtual ~AicpuTask() = default; virtual aclnnStatus Init(const FVector<const aclTensor *> &inputs, const FVector<aclTensor *> &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_ptr<AicpuArgsHandler> argsHandle_; std::unique_ptr<AicpuExtInfoHandler> extInfoHandle_; uint64_t launchId_ = 0U; uint64_t summaryItemId_ = 0U; void *space_ = nullptr; FVector<const aclTensor *> inputs_; FVector<aclTensor *> outputs_; // 长度可能不够,后续考虑长度可扩展 uint8_t inputKey_[kAicpuKeyBufLen] = {}; size_t keyLen_ = 0; bool isVisit_ = false; uint64_t deviceExtMemSize_ = 0; uint64_t deviceCacheOffset_ = 0; }; | 
关于类中成员的详细说明请参见表1。
| 属性名 | 属性类型 | 默认值 | 属性说明 | 
|---|---|---|---|
| opType_ | const std::string | "" | Task对应的AI CPU算子名。 | 
| UnknownType_ | const ge::UnknowShapeOpType | 0 | 标识算子shape是基类,具体类型UnknowShapeOpType。 | 
| argsHandle_ | std::unique_ptr<AicpuArgsHandler> | null | 管理task封装参数的对象。 | 
| extInfoHandle_ | std::unique_ptr<AicpuExtInfoHandler> | null | 管理task封装拓展参数的对象。 | 
| launchId_ | uint64_t | 0 | 用于profiling采集的任务下发id。 | 
| summaryItemId_ | uint64_t | 0 | 用于统计条目的id。 | 
| space_ | void* | null | 记录task属于哪个task管理集合。 | 
| inputs_ | FVector<const aclTensor *> | null | task对应算子的输入tensor指针列表。 | 
| outputs_ | FVector<const aclTensor *> | null | task对应算子的输出tensor指针列表。 | 
| inputKey_ | uint8_t [kAicpuKeyBufLen] | 0 | task对应的key字段。 | 
| keyLen_ | size_t | 0 | key字段长度。 | 
| isVisit_ | bool | false | 当前task是否正被使用。 | 
| deviceExtMemSize_ | uint64_t | 0 | device侧预留的内存。 | 
| deviceCacheOffset_ | uint64_t | 0 | device侧预留内存的偏移。 |