news 2026/5/9 17:37:52

CANN/opbase AicpuTaskSpace类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/opbase AicpuTaskSpace类

AicpuTaskSpace类

【免费下载链接】opbase本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase

AicpuTaskSpace类用于管理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 FVector<const aclTensor *> &inputs); AicpuTask *GetOrCreateTask(aclOpExecutor *executor, const FVector<std::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 FVector<const aclTensor *> &inputs, size_t alignBytes) const; uint64_t CalcDeviceCacheSize(const FVector<const aclTensor *> &inputs, std::unique_ptr<AicpuTask> &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 FVector<const aclTensor *> &inputs) const; const std::string opType_; const ge::UnknowShapeOpType unknownType_; const bool isTf_; bool hasInit_ = false; std::set<size_t> inputRefIndexes_; std::set<size_t> outputRefIndexes_; std::mutex mutex_; using HashMap = std::unordered_map<size_t, std::vector<std::unique_ptr<AicpuTask>>>; HashMap hashMap_; };

类成员属性的详细介绍请参考下表。

表 1AicpuTaskSpace类成员说明

属性名属性类型默认值属性说明
kHashSeedconst std::string""存储task的map的哈希表的键值种子。
opType_const ge::UnknowShapeOpType0算子名称。
unknownType_std::unique_ptr<AicpuArgsHandler>null标识是几类算子。
isTf_std::unique_ptr<AicpuExtInfoHandler>false标识是执行第三方算子框架还是CANN算子框架。
- 取值true时:采用第三方算子框架,当前仅支持Tensorflow框架。
- 取值false时:采用CANN算子框架。
hasInit_uint64_t0标识task是否被初始化。
inputRefIndexes_uint64_t0标识输入是否为ref类。
outputRefIndexes_void*null标识输出是否为ref类。
mutex_FVector<const aclTensor *>nulltask map的锁。
hashMap_FVector<const aclTensor *>null存储task的hash表。

【免费下载链接】opbase本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 17:33:34

机器学习如何量化材料专家直觉:从数据中发现拓扑半金属新描述符

1. 项目概述&#xff1a;当机器学习遇见材料专家的“直觉”在材料科学这个古老又充满活力的领域里&#xff0c;寻找新材料的过程&#xff0c;长久以来都像是一场在黑暗中摸索的探险。传统的试错法不仅耗时费力&#xff0c;而且成功率往往依赖于研究者个人积累的“化学直觉”——…

作者头像 李华
网站建设 2026/5/9 17:33:31

机器人潜在运动建模技术:提升工业自动化精度

1. 机器人运动建模的本质与挑战在工业自动化与智能制造领域&#xff0c;机器人操作的精准度和可靠性直接决定了生产效率。上周调试SCARA机器人时&#xff0c;末端执行器3毫米的位置偏差导致整个装配线停摆——这正是运动建模不完善导致的典型问题。潜在运动建模&#xff08;Lat…

作者头像 李华
网站建设 2026/5/9 17:31:58

AI教育机器人:情感识别与NLP如何重塑早期教育

1. 项目概述&#xff1a;当AI走进幼儿园&#xff0c;一场静悄悄的教育革命作为一名长期关注技术与教育交叉领域的从业者&#xff0c;我亲眼见证了人工智能从实验室走向课堂的每一步。近年来&#xff0c;一个趋势愈发清晰&#xff1a;AI不再仅仅是辅助成人工作的工具&#xff0c…

作者头像 李华
网站建设 2026/5/9 17:31:11

In-Weights Accumulation算法:加速进化策略强化学习的权重累积技术

1. 项目概述&#xff1a;当强化学习遇上“基因”进化如果你玩过策略游戏&#xff0c;比如《星际争霸》或者《文明》&#xff0c;你大概会认同一个观点&#xff1a;一个顶级玩家的策略&#xff0c;往往不是一蹴而就的&#xff0c;而是在无数次“试错-优化”的循环中&#xff0c;…

作者头像 李华
网站建设 2026/5/9 17:31:10

工业AI轻量化:随机配置机(SCM)如何实现嵌入式高效部署

1. 项目概述&#xff1a;当工业AI遇上“轻量化”随机学习在工业现场&#xff0c;你经常会遇到这样的场景&#xff1a;产线上传感器数据如洪流般涌来&#xff0c;一个预测模型需要在毫秒级内给出关键指标的判断&#xff0c;比如钢板厚度、设备故障预警或者能耗预测。然而&#x…

作者头像 李华
网站建设 2026/5/9 17:28:32

GeoAI基础模型全生命周期隐私安全风险与防护蓝图

1. 项目概述&#xff1a;当GeoAI遇上基础模型&#xff0c;我们面临怎样的隐私与安全风暴&#xff1f;最近几年&#xff0c;AI圈最火的概念莫过于“基础模型”&#xff08;Foundation Models&#xff09;。从能写诗编程的GPT&#xff0c;到“万物皆可分割”的Segment Anything&a…

作者头像 李华