AicpuTaskSpace类【免费下载链接】opbase本项目是CANN算子库的基础框架库为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbaseAicpuTaskSpace类用于管理AI CPU task复用相关的逻辑包括新建task、查找task等功能。具体定义如下class AicpuTaskSpace { public: // 需要设置第几类动态shape算子Tensorflow or CANN默认设置为CANN第一类算子 AicpuTaskSpace(const std::string opType, const ge::UnknowShapeOpType unknownType ge::DEPEND_IN_SHAPE, const bool isTf false) : opType_(opType), unknownType_(unknownType), isTf_(isTf) {} AicpuTask *FindTask(aclOpExecutor *executor, op::OpArgContext *args, const FVectorconst aclTensor * inputs); AicpuTask *GetOrCreateTask(aclOpExecutor *executor, const FVectorstd::string attrNames, op::OpArgContext *args); void SetRef(const size_t index, const bool isInput true); bool IsRef(const size_t index, const bool isInput true) const; uint64_t CalcHostInputDataSize(const FVectorconst aclTensor * inputs, size_t alignBytes) const; uint64_t CalcDeviceCacheSize(const FVectorconst aclTensor * inputs, std::unique_ptrAicpuTask aicpuTask) const; void Clear() { hashMap_.clear(); } friend class AicpuTask; private: static constexpr uint64_t kHashSeed 0x9e3779b9U; static size_t GenHashBinary(const uint8_t *addr, uint32_t len); size_t GenTaskKey(uint8_t inputKey[], size_t keyLen, op::OpArgContext *args, const FVectorconst aclTensor * inputs) const; const std::string opType_; const ge::UnknowShapeOpType unknownType_; const bool isTf_; bool hasInit_ false; std::setsize_t inputRefIndexes_; std::setsize_t outputRefIndexes_; std::mutex mutex_; using HashMap std::unordered_mapsize_t, std::vectorstd::unique_ptrAicpuTask; HashMap hashMap_; };类成员属性的详细介绍请参考下表。表 1AicpuTaskSpace类成员说明属性名属性类型默认值属性说明kHashSeedconst std::string存储task的map的哈希表的键值种子。opType_const ge::UnknowShapeOpType0算子名称。unknownType_std::unique_ptrAicpuArgsHandlernull标识是几类算子。isTf_std::unique_ptrAicpuExtInfoHandlerfalse标识是执行第三方算子框架还是CANN算子框架。- 取值true时采用第三方算子框架当前仅支持Tensorflow框架。- 取值false时采用CANN算子框架。hasInit_uint64_t0标识task是否被初始化。inputRefIndexes_uint64_t0标识输入是否为ref类。outputRefIndexes_void*null标识输出是否为ref类。mutex_FVectorconst aclTensor *nulltask map的锁。hashMap_FVectorconst aclTensor *null存储task的hash表。【免费下载链接】opbase本项目是CANN算子库的基础框架库为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考