当前位置: 首页 > article >正文

CANN asc-devkit Maxs API参考

Maxs【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Kirin X90√Kirin 9030√功能说明源操作数矢量内每个元素与标量相比如果比标量大则取源操作数值比标量的值小则取标量值。计算公式如下函数原型tensor前n个数据计算template typename T, bool isSetMask true __aicore__ inline void Maxs(const LocalTensorT dst, const LocalTensorT src, const T scalarValue, const int32_t count)tensor高维切分计算mask逐bit模式template typename T, bool isSetMask true __aicore__ inline void Maxs(const LocalTensorT dst, const LocalTensorT src, const T scalarValue, uint64_t mask[], const uint8_t repeatTime, const UnaryRepeatParams repeatParams)mask连续模式template typename T, bool isSetMask true __aicore__ inline void Maxs(const LocalTensorT dst, const LocalTensorT src, const T scalarValue, uint64_t mask, const uint8_t repeatTime, const UnaryRepeatParams repeatParams)dst和src使用TensorTrait类型时其数据类型TensorTrait和scalarValue的数据类型对应TensorTrait中的LiteType类型不一致。因此新增模板类型U表示scalarValue的数据类型并通过std::enable_if检查T中萃取出的LiteType和U是否完全一致一致则接口通过编译否则编译失败。接口原型定义如下:tensor前n个数据计算template typename T, typename U, bool isSetMask true, typename Std::enable_ifStd::is_samePrimTT, U::value, bool::type true __aicore__ inline void Maxs(const LocalTensorT dst, const LocalTensorT src, const U scalarValue, const int32_t count)tensor高维切分计算mask逐bit模式template typename T, typename U, bool isSetMask true, typename Std::enable_ifStd::is_samePrimTT, U::value, bool::type true __aicore__ inline void Maxs(const LocalTensorT dst, const LocalTensorT src, const U scalarValue, uint64_t mask[], const uint8_t repeatTime, const UnaryRepeatParams repeatParams)mask连续模式template typename T, typename U, bool isSetMask true, typename Std::enable_ifStd::is_samePrimTT, U::value, bool::type true __aicore__ inline void Maxs(const LocalTensorT dst, const LocalTensorT src, const U scalarValue, uint64_t mask, const uint8_t repeatTime, const UnaryRepeatParams repeatParams)参数说明表 1模板参数说明参数名描述T操作数数据类型。Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持的数据类型为half、int16_t、float、int32_t。Atlas A3 训练系列产品 / Atlas A3 推理系列产品支持的数据类型为half、int16_t、float、int32_t。Ascend 950PR/Ascend 950DT支持的数据类型为uint8_t、int8_t、half、bfloat16_t、int16_t、float、int32_t、uint64_t、int64_t。Kirin X90支持的数据类型为half、int16_t、int32_t、float。Kirin 9030支持的数据类型为half、int16_t、int32_t、float。UscalarValue数据类型。Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持的数据类型为half、int16_t、float、int32_t。Atlas A3 训练系列产品 / Atlas A3 推理系列产品支持的数据类型为half、int16_t、float、int32_t。Ascend 950PR/Ascend 950DT支持的数据类型为uint8_t、int8_t、half、bfloat16_t、int16_t、float、int32_t、uint64_t、int64_t。Kirin X90支持的数据类型为half、int16_t、int32_t、float。Kirin 9030支持的数据类型为half、int16_t、int32_t、float。isSetMask是否在接口内部设置mask模式和mask值。true表示在接口内部设置。tensor高维切分计算API/tensor前n个数据计算API内部使用了mask的Normal模式/Counter模式一般情况下保持isSetMask默认值即可表示在API内部进行根据开发者传入的mask/count参数进行mask模式和mask值的设置。false表示在接口外部设置。针对tensor高维切分计算接口对性能要求较高的部分场景下开发者需要使用SetMaskNorm/SetMaskCount设置mask模式并通过SetVectorMask接口设置mask值。本接口入参中的mask值必须设置为MASK_PLACEHOLDER。针对tensor前n个数据计算接口对性能要求较高的部分场景下开发者需要使用SetMaskCount设置mask模式为Counter模式并通过SetVectorMask接口设置mask值。本接口入参中的count不生效建议设置成1。针对以下型号tensor前n个数据计算API中的isSetMask参数不生效保持默认值即可。针对Ascend 950PR/Ascend 950DT表 2参数说明参数名称类型说明dst输出目的操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。LocalTensor的起始地址需要32字节对齐。src输入源操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。LocalTensor的起始地址需要32字节对齐。数据类型需要与目的操作数保持一致。scalarValue输入源操作数数据类型需要与目的操作数Tensor中元素的数据类型保持一致。count输入参与计算的元素个数。mask/mask[]输入mask用于控制每次迭代内参与计算的元素。逐bit模式可以按位控制哪些元素参与计算bit位的值为1表示参与计算0表示不参与。mask为数组形式数组长度和数组元素的取值范围和操作数的数据类型有关。当操作数为16位时数组长度为2mask[0]、mask[1]∈[0, 264-1]并且不同时为0当操作数为32位时数组长度为1mask[0]∈(0, 264-1]当操作数为64位时数组长度为1mask[0]∈(0, 232-1]。例如mask[8, 0]80b1000表示仅第4个元素参与计算。连续模式表示前面连续的多少个元素参与计算。取值范围和操作数的数据类型有关数据类型不同每次迭代内能够处理的元素个数最大值不同。当操作数为16位时mask∈[1, 128]当操作数为32位时mask∈[1, 64]当操作数为64位时mask∈[1, 32]。repeatTime输入重复迭代次数。 矢量计算单元每次读取连续的256Bytes数据进行计算为完成对输入数据的处理必须通过多次迭代repeat才能完成所有数据的读取与计算。repeatTime表示迭代的次数。repeatParams输入元素操作控制结构信息具体请参考UnaryRepeatParams。返回值说明无约束说明操作数地址对齐要求请参见通用地址对齐约束。操作数地址重叠约束请参考通用地址重叠约束。针对Ascend 950PR/Ascend 950DTint8_t/uint8_t/uint64_t/int64_t数据类型仅支持tensor前n个数据计算接口。调用示例更多样例可参考LINK。tensor高维切分计算样例-mask连续模式uint64_t mask 128; int16_t scalar 2; // repeatTime 4, 单次迭代处理128个数计算512个数需要迭代4次 // dstBlkStride, srcBlkStride 1, 每个迭代内src0参与计算的数据地址间隔为1个datablock表示单次迭代内数据连续读取和写入 // dstRepStride, srcRepStride 8, 相邻迭代间的地址间隔为8个datablock表示相邻迭代间数据连续读取和写入 AscendC::Maxs(dstLocal, srcLocal, scalar, mask, 4, { 1, 1, 8, 8 });tensor高维切分计算样例-mask逐bit模式uint64_t mask[2] { UINT64_MAX, UINT64_MAX }; int16_t scalar 2; // repeatTime 4, 单次迭代处理128个数计算512个数需要迭代4次 // dstBlkStride, srcBlkStride 1, 每个迭代内src0参与计算的数据地址间隔为1个datablock表示单次迭代内数据连续读取和写入 // dstRepStride, srcRepStride 8, 相邻迭代间的地址间隔为8个datablock表示相邻迭代间数据连续读取和写入 AscendC::Maxs(dstLocal, srcLocal, scalar, mask, 4, {1, 1, 8, 8});tensor前n个数据计算样例int16_t scalar 2; AscendC::Maxs(dstLocal, srcLocal, scalar, 512);结果示例如下输入数据src0Local[1 2 3 ... 512] 输入数据scalar 2 输出数据dstLocal[2 2 3 ... 512]【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN asc-devkit Maxs API参考

Maxs 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann/…...

企业级网络模拟:用eNSP搭建USG6000v双机热备+NAT的完整实验环境

企业级网络高可用实战:基于eNSP的USG6000v双机热备与NAT深度解析 当企业核心业务对网络连续性要求达到99.99%时,单台防火墙的部署就像走钢丝——任何硬件故障或链路中断都可能导致服务瘫痪。这正是我在为某电商平台设计灾备方案时遇到的痛点:…...

OpenClaw从入门到应用——工具(Tools):创建技能

通过OpenClaw实现副业收入:《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》 简介 OpenClaw 被设计为易于扩展。“技能”是向你的助手添加新能力的主要方式。 什么是技能? 一个技能是一个目录,其中包含一个 SKILL.md…...

如何用HS2-HF_Patch一键解锁Honey Select 2完整游戏体验

如何用HS2-HF_Patch一键解锁Honey Select 2完整游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是一款专为Honey Select 2游戏设计的一站式…...

定制你的弹窗外观:WYPopoverController主题设置与颜色方案全攻略

定制你的弹窗外观:WYPopoverController主题设置与颜色方案全攻略 【免费下载链接】WYPopoverController WYPopoverController is for the presentation of content in popover on iPhone / iPad devices. Very customizable. 项目地址: https://gitcode.com/gh_mi…...

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——OpenClaw一人公司-[一人公司的终极技术栈,从0到变现的完整光谱]

【限时99元】专栏原价299元,在专栏未完结的持续更新期间享受99元早鸟价,现在订阅同享后续专栏所有文章! 【专栏介绍】《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》专栏介绍 有任何疑问均可联系博主微信(微信号:NeumannAI),作者将亲自解答并持续优化文章内…...

Jenkins Job DSL与Pipeline集成:现代DevOps工作流的10个最佳实践

Jenkins Job DSL与Pipeline集成:现代DevOps工作流的10个最佳实践 【免费下载链接】job-dsl-plugin A Groovy DSL for Jenkins Jobs 项目地址: https://gitcode.com/gh_mirrors/jo/job-dsl-plugin Jenkins Job DSL插件是现代DevOps自动化中不可或缺的工具&…...

HC32F460移植指南:除了代码,你还需要搞定Keil、J-Flash和驱动库这三大件

HC32F460开发环境搭建实战:从工具链配置到驱动库迁移 第一次拿到华大HC32F460开发板时,我对着Keil里找不到的芯片型号和一堆陌生的驱动库文件陷入了沉思。与STM32生态相比,华大MCU的开发环境搭建确实存在不少"坑点"。本文将分享一套…...

用Arduino和MAX30102做个心率血氧仪,从硬件连线到算法调试全流程避坑

从零构建Arduino心率血氧仪:MAX30102实战指南 开篇:为什么选择MAX30102? 在可穿戴健康设备爆发的时代,心率血氧监测已成为智能手环的标配功能。而MAX30102这颗高度集成的光学传感器,正以医用级精度和低功耗特性成为创客…...

如何用Zutilo插件提升Zotero文献管理效率:5个实用技巧帮你节省50%时间

如何用Zutilo插件提升Zotero文献管理效率:5个实用技巧帮你节省50%时间 【免费下载链接】Zutilo Zotero plugin providing some additional editing features 项目地址: https://gitcode.com/gh_mirrors/zu/Zutilo 你是否经常在Zotero中花费大量时间处理文献标…...

3分钟掌握清华PPT模板:免费打造专业学术演示文稿的终极方案

3分钟掌握清华PPT模板:免费打造专业学术演示文稿的终极方案 【免费下载链接】THU-PPT-Theme 清华主题PPT模板 项目地址: https://gitcode.com/gh_mirrors/th/THU-PPT-Theme 还在为学术汇报、毕业答辩或重要演讲的PPT设计而头疼吗?清华大学视觉设计…...

从STM32到华大HC32F460:USB HOST MSC + FatFs R0.13c移植避坑全记录

从STM32到华大HC32F460:USB HOST MSC FatFs R0.13c移植实战指南 作为一名长期使用STM32的嵌入式开发者,第一次接触华大半导体的HC32F460系列MCU时,既兴奋又忐忑。兴奋的是国产MCU的性能已经能够媲美国际大厂,忐忑的是生态差异带来…...

从ELMo到GPT:预训练语言模型的演进之路与核心思想剖析

1. 从静态词向量到动态上下文:ELMo的革命性突破 2018年之前,NLP领域长期被Word2Vec和GloVe这类静态词向量统治。想象一下,你给每个单词发一张永久身份证,无论它出现在什么场合都只能展示相同的身份信息——这就是静态词向量的本质…...

新手父母必备:开源婴儿护理知识库架构与核心技能解析

1. 项目概述:一个为新手父母量身定制的技能宝库如果你是一位即将迎来新生命,或者刚刚升级为父母的朋友,面对那个软软糯糯的小家伙,除了满心的喜悦,是不是也时常感到一丝手足无措?喂奶、拍嗝、哄睡、洗澡、抚…...

Postmate部署实战:从开发到生产的完整流程

Postmate部署实战:从开发到生产的完整流程 【免费下载链接】postmate 📭 A powerful, simple, promise-based postMessage library. 项目地址: https://gitcode.com/gh_mirrors/po/postmate Postmate是一个强大的、简单的、基于Promise的postMess…...

ExplorerPatcher终极指南:快速打造你的专属Windows工作界面

ExplorerPatcher终极指南:快速打造你的专属Windows工作界面 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 厌倦了Windows 11强制性…...

华大半导体HC32F4A0实战:基于USART1与DMA的RS485高效通信框架解析

1. HC32F4A0与RS485通信基础 第一次接触华大半导体的HC32F4A0芯片时,我完全被它丰富的功能吸引了。这款基于ARM Cortex-M4内核的MCU,在工业控制领域表现非常出色。今天我要分享的是如何在这款芯片上实现高效的RS485通信方案,特别适合需要稳定…...

告别XML解析焦虑:用TinyXML2在C++项目中轻松读写配置文件(附完整代码)

告别XML解析焦虑:用TinyXML2在C项目中轻松读写配置文件(附完整代码) 在C开发中,配置文件管理是每个项目都无法绕开的环节。当我们需要保存用户偏好、游戏设置或系统参数时,选择一种合适的配置格式往往成为第一个技术决…...

3步开启Windows实时语音转文字:TMSpeech离线语音识别完全指南

3步开启Windows实时语音转文字:TMSpeech离线语音识别完全指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech TMSpeech是一款专为Windows系统设计的开源实时语音识别工具,能够将电脑系统声音…...

CANN asc_copy寄存器搬运API

asc_copy 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…...

SwiftHTTP文件上传完全指南:从基础到企业级应用

SwiftHTTP文件上传完全指南:从基础到企业级应用 【免费下载链接】SwiftHTTP Thin wrapper around NSURLSession in swift. Simplifies HTTP requests. 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftHTTP 在iOS和macOS开发中,SwiftHTTP文件上…...

从90%到99%:实战提升Tesseract在C++项目中的识别准确率(附调参技巧)

从90%到99%:实战提升Tesseract在C项目中的识别准确率(附调参技巧) 在工业级文档处理系统中,我们常遇到这样的困境:测试集上的OCR识别准确率卡在90%左右,而业务部门要求必须达到99%以上才能上线。去年负责某…...

群晖相册人脸识别终极指南:3步解锁无GPU设备的AI功能

群晖相册人脸识别终极指南:3步解锁无GPU设备的AI功能 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 还在为群晖DS918等无GPU设备无法使用…...

Windows触控板革命:三指拖拽优化终极指南

Windows触控板革命:三指拖拽优化终极指南 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnWindows …...

硬件电路设计|钡特电源 VB10-24D15MD 与 URA2415YMD-10WR3 封装兼容互通,工业 DC-DC 方案适配指南

在工控硬件研发、嵌入式电路设计工作中,工业 DC-DC 的选型直接决定整机供电稳定性与长期运行寿命,国产化直流电源模块如今已全面覆盖小功率隔离供电场景,成为工程师方案优化的核心选择。VB10-24D15MD 和 URA2415YMD-10WR3 作为 10W 等级高频使…...

目标检测:YOLOv12训练自己的数据集,手把手教学一看就会

目录 1. 环境配置 2. 数据集 2.1 网上搜索公开数据集 2.1.1 搜索引擎 2.1.2 Kaggle 2.1.3 Roboflow 2.2 自制数据集 2.2.1 Labelimg安装 2.2.2 Labelimg使用 2.3 数据集转换及划分 2.3.1 数据集VOC格式转yolo格式 2.3.2 数据集划分 3. 训练模型 3.1 创建data.yam…...

如何快速掌握OpenVSP:5个步骤完成参数化飞机设计

如何快速掌握OpenVSP:5个步骤完成参数化飞机设计 【免费下载链接】OpenVSP A parametric aircraft geometry tool 项目地址: https://gitcode.com/gh_mirrors/ope/OpenVSP 想要设计自己的飞机却担心复杂建模?OpenVSP这款由NASA开发的开源参数化飞…...

Ctool JSON工具完全指南:从格式化到Schema生成的完整流程

Ctool JSON工具完全指南:从格式化到Schema生成的完整流程 【免费下载链接】Ctool 程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac 项目地址: https://gitcode.com/gh_mirrors/ct/Ctool Ctool是一款功能强大的程序开发常用工具&…...

Windows 11终极优化指南:如何用Win11Debloat快速清理系统垃圾与保护隐私

Windows 11终极优化指南:如何用Win11Debloat快速清理系统垃圾与保护隐私 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to…...

别再傻等AS下载Gradle了!手把手教你手动配置Gradle 5.4.1(附国内镜像源)

高效解决Android Studio Gradle下载难题:手动配置全攻略 每次打开Android Studio准备大展身手时,却被"Could not install Gradle distribution"的报错拦住去路?作为经历过无数次这种折磨的开发者,我完全理解那种看着进度…...