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

CANN/asc-devkit Arange等差数列生成函数

Arange

【免费下载链接】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 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

给定起始值,等差值和长度,返回一个等差数列。

实现原理

以float类型,ND格式,firstValue和diffValue输入Scalar为例,描述Arange高阶API内部算法框图,如下图所示。

图1Arange算法框图
![](https://raw.gitcode.com/cann/asc-devkit/raw/1680a8274bf627fb844cc7e09f9e1a9e99e24425/docs/zh/api/figures/Arange算法框图.png "Arange算法框图"?utm_source=gitcode_repo_files)

计算过程分为如下几步,均在Vector上进行:

  1. 等差数列长度8以内步骤:按照firstValue和diffValue的值,使用SetValue实现等差数列扩充,扩充长度最大为8,如果等差数列长度小于8,算法结束;
  2. 等差数列长度8至64的步骤:对第一步中的等差数列结果使用Adds进行扩充,最大循环7次扩充至64,如果等差数列长度小于64,算法结束;
  3. 等差数列长度64以上的步骤:对第二步中的等差数列结果使用Adds进行扩充,不断循环直至达到等差数列长度为止。

函数原型

template <typename T> __aicore__ inline void Arange(const LocalTensor<T>& dst, const T firstValue, const T diffValue, const int32_t count)

参数说明

表1模板参数说明

参数名描述
T操作数的数据类型。不同型号支持的数据类型请参考支持的数据类型。

表2接口参数说明

参数名输入/输出描述
dst输出目的操作数。dst的大小应大于等于count * sizeof(T)。

类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。
firstValue输入等差数列的首个元素值。
diffValue输入等差数列元素之间的差值,应大于等于0。
count输入等差数列的长度。count>0。

返回值说明

约束说明

  • 当前仅支持ND格式的输入,不支持其他格式。

  • 支持的数据类型

    Ascend 950PR/Ascend 950DT,支持的数据类型为:int16_t、half、int32_t、float、int64_t。

    Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持的数据类型为:int16_t、half、int32_t、float。

    Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持的数据类型为:int16_t、half、int32_t、float。

    Atlas 推理系列产品AI Core,支持的数据类型为:int16_t、half、int32_t、float。

调用示例

完整样例请参考Arange样例。

// dst:输出Tensor // firstValue_:等差数列首个元素值 // diffValue_:等差数列的公差 // count_:等差数列的长度 AscendC::Arange<T>(dst, static_cast<T>(firstValue_), static_cast<T>(diffValue_), count_);

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

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

http://www.cnnetsun.cn/news/3454378.html

相关文章:

  • Photoshop AI插件SD-PPP:在创意工作流中无缝融合人工智能
  • Ternary-Bonsai-27B-gguf核心技术解析:1.71位/权重的三元表示如何实现95%智能保留
  • LED芯片制造与封装技术全解析
  • OpenHuman:可读AI记忆文件的技术原理与应用
  • 基于自然常数e的分形迭代与《易经》生生之理的数学统一性研究——从科克雪花到玉石纹理
  • Hy3-oQ2e-2.31bpw核心技术解析:MoE架构与oQ量化如何实现效率突破 [特殊字符]
  • 如何快速释放100GB硬盘空间:终极游戏清理工具SteamCleaner完整指南
  • 8D报告自动化生成:Dify Workflow与LLM技术实践
  • CANN/Ascend C SIMD量化缓冲因子
  • 5大核心功能深度解析:StreamFX如何将OBS直播效果提升到专业级别
  • FamilyBucket监控告警系统:应用性能监控与大屏展示实战指南
  • Ascend C SIMD量化操作API
  • 如何查看一个系统PCIE外设所能发挥的PCIE性能:PCIe 链路速率决定因素分析
  • AI绘画模型成本优化:从预训练到微调的全栈技术解析
  • 深度解析开源手写笔记工具:提升工作效率的3种实战方案
  • NVFP4量化技术深度解析:Nemotron-3-Embed性能提升秘诀
  • PCB过孔堵塞工艺:原理、方法与应用解析
  • FBS替代物如何选择?hPL在人源化细胞培养和MSC扩增中的应用
  • 多线程下任务状态异常的问题解决
  • DiscordX音乐机器人开发:LavaPlayer与YTDL插件的终极集成指南
  • Rust Rosetta Code贡献指南:如何为开源项目提交你的第一个PR
  • 解密多智能体金融交易框架:如何用AI打造你的专属投资团队
  • OBS Studio滤镜系统深度解析:从源码架构到专业级画质调优实战
  • STM32N6570外部Flash烧录与FSBL引导配置指南
  • OpenEuler CreateImage 核心函数库探秘:lib 目录下的 common-functions 与 img-functions
  • uos-uwsgi-exporter深度解析:从架构设计到实战部署的完整教程
  • 终极指南:如何用Zotero Style插件打造你的专属文献阅读体验
  • 3步构建个人云影院:115网盘原码直连Kodi播放方案
  • 如何用happy-lager快速搭建企业级网站?Craft CMS模板开发终极指南
  • 卤味熟食店如何解决社区获客难题?餐宝盈小程序与GEO服务带来稳定订单,含零代码SAAS、AI编程、源码定制