【2023 · CANN训练营第一季】笔记

举报
fg32 发表于 2023/05/10 20:46:07 2023/05/10
875 0 0
【摘要】 算子执行的不同模式TIK C++算子可用CPU模式或NPU模式执行CPU模式:算子功能调试用,可以模拟在NPU上的计算行为,不需要依赖昇腾设备NPU模式:算子功能/性能调试,可以使用NPU的强大算力进行运算加速使用内置宏__CCE_KT_TEST__标识被宏包括的代码在特定的模式下编译#ifdef __CCE_KT_TEST__ 表示在CPU模式下会编译该段代码#ifndef __CCE_K...

算子执行的不同模式

TIK C++算子可用CPU模式或NPU模式执行

CPU模式:算子功能调试用,可以模拟在NPU上的计算行为,不需要依赖昇腾设备

NPU模式:算子功能/性能调试,可以使用NPU的强大算力进行运算加速

使用内置宏__CCE_KT_TEST__标识被宏包括的代码在特定的模式下编译

#ifdef __CCE_KT_TEST__ 表示在CPU模式下会编译该段代码

#ifndef __CCE_KT_TEST__ 表示在NPU模式下会编译该段代码

GlobalTensor用来存放Global Memory(外部存储)的全局数据

定义原型

template <typename T> class GlobalTensor {

// 传入全局数据的指针,并手动设置一个buffer size,初始化GlobalTensor

void SetGlobalBuffer(__gm__ T* buffer, uint32_t bufferSize);

LocalTensor用于存放核上Local Memory(内部存储)的数据

定义原型

template <typename T> class LocalTensor {

T GetValue(const uint32_t offset) const; // 获取 LocalTensor 中的某个值,返回 T 类型的立即数。

template <typename T1> void SetValue(const uint32_t offset, const T1 value) const; // 设置 LocalTensor 中的某个值。offset单位为element

// 获取距原LocalTensor起始地址偏移量为offset的新LocalTensor,注意offset不能超过原有LocalTensor的size大小。offset单位为element

LocalTensor operator[](const uint32_t offset) const;

uint32_t GetSize() const; // 获取当前LocalTensor size大小

}

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。