尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
CANN/asc-devkit Rint数学计算接口
Rint【免费下载链接】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 训练系列产品不支持功能说明获取与输入数据最接近的整数若存在两个同样接近的整数则获取其中的偶数。计算公式如下举例如下Rint(3.9) 4Rint(3.3) 3Rint(3.5) 4函数原型通过sharedTmpBuffer入参传入临时空间template const RintConfig config DEFAULT_RINT_CONFIG, typename T __aicore__ inline void Rint(const LocalTensorT dst, const LocalTensorT src, const LocalTensoruint8_t sharedTmpBuffer, const uint32_t count)接口框架申请临时空间template const RintConfig config DEFAULT_RINT_CONFIG, typename T __aicore__ inline void Rint(const LocalTensorT dst, const LocalTensorT src, const uint32_t count)由于该接口的内部实现中涉及复杂的数学计算需要额外的临时空间来存储计算过程中的中间变量。临时空间支持开发者通过sharedTmpBuffer入参传入和接口框架申请两种方式。通过sharedTmpBuffer入参传入使用该tensor作为临时空间进行处理接口框架不再申请。该方式开发者可以自行管理sharedTmpBuffer内存空间并在接口调用完成后复用该部分内存内存不会反复申请释放灵活性较高内存利用率也较高。接口框架申请临时空间开发者无需申请但是需要预留临时空间的大小。通过sharedTmpBuffer传入的情况开发者需要为tensor申请空间接口框架申请的方式开发者需要预留临时空间。临时空间大小BufferSize的获取方式如下通过GetRintMaxMinTmpSize中提供的接口获取需要预留空间范围的大小。参数说明表1模板参数说明参数名描述RintConfigRint算法的相关配置。此参数可选配RintConfig类型具体定义如下方代码所示其中参数的含义为isReuseSource是否允许修改源操作数。该参数预留传入默认值false即可。T操作数的数据类型。支持的数据类型为half、float。struct RintConfig { bool isReuseSource; };表2接口参数说明参数名输入/输出描述dst输出目的操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。src输入源操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。源操作数的数据类型与目的操作数保持一致。sharedTmpBuffer输入临时缓存。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。用于Rint内部复杂计算时存储中间变量由开发者提供。临时空间大小BufferSize的获取方式请参考GetRintMaxMinTmpSize。count输入参与计算的元素个数。返回值说明无约束说明不支持源操作数与目的操作数地址重叠。不支持sharedTmpBuffer与源操作数和目的操作数地址重叠。操作数地址对齐要求请参见通用地址对齐约束。调用示例完整样例请参考Rint算子样例。通过sharedTmpBuffer入参传入AscendC::TPipe pipe; AscendC::TQueAscendC::TPosition::VECCALC, 1 tmpQue; pipe.InitBuffer(tmpQue, 1, bufferSize); // bufferSize通过Host侧tiling参数获取 AscendC::LocalTensoruint8_t sharedTmpBuffer tmpQue.AllocTensoruint8_t(); // 输入tensor长度为1024,算子输入的数据类型为half,实际计算个数为512 static constexpr AscendC::RintConfig rintConfig {false}; // 不修改源操作数 // dst、src为half类型的LocalTensor AscendC::RintrintConfig, half(dst, src, sharedTmpBuffer, 512);接口框架申请临时空间AscendC::TPipe pipe; AscendC::TQueAscendC::TPosition::VECCALC, 1 tmpQue; pipe.InitBuffer(tmpQue, 1, bufferSize); // bufferSize通过Host侧tiling参数获取 // 输入tensor长度为1024,算子输入的数据类型为half,实际计算个数为512 static constexpr AscendC::RintConfig rintConfig {false}; // 不修改源操作数 // dst、src为half类型的LocalTensor AscendC::RintrintConfig, half(dst, src, 512);结果示例如下输入数据(src): [-1.5, -1.3, -0.9, -0.5, 0.5, 0.9, 1.1, 1.5, 2.2, 2.5, 2.8, 3.2] 输出数据(dst): [-2, -1, -1, 0, 0, 1, 1, 2, 2, 2, 3, 3]【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

SmoothQuant技术解析:大模型无损量化的关键突破

SmoothQuant技术解析:大模型无损量化的关键突破

1. SmoothQuant:大模型量化的破局之道 在部署百亿参数级别的大模型时,显存占用和计算延迟是工程师最头疼的两个问题。以1750亿参数的GPT-3为例,使用FP16精度时需要占用超过350GB显存,这远超单张消费级显卡的容量上限。传统量化方法…

📅 2026/9/10 16:18:24
昇腾C数学计算API使用样例

昇腾C数学计算API使用样例

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

📅 2026/9/10 17:59:25
昇腾C数据过滤临时空间API

昇腾C数据过滤临时空间API

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

📅 2026/9/10 6:31:17
MORE NEWS

更多资讯

📰

从一条氨基酸序列到3D结构:AlphaFold Web服务实操全流程

从一条氨基酸序列到3D结构:AlphaFold Web服务实操全流程 【免费下载链接】alphafold Open source code for AlphaFold 2. 项目地址: https://gitcode.com/GitHub_Trending/al/alphafold AlphaFold Web服务是基于本仓库(AlphaFold 2 开源代码&…

📰

PCIe如何成为机器人控制器的实时性锚点与系统中枢

1. 为什么机器人控制器正在悄悄换掉传统总线,转而押注PCIe? 最近帮一家做协作机器人的团队做控制器架构升级,他们原来的主控板用的是双ARM Cortex-A72 FPGA的方案,外设全靠PCIe x4接一个万能桥片,再分出USB3.0、千兆以…

📰

AI数据集划分:核心原理与OpenClaw实践

1. 数据集划分的核心价值与挑战在AI模型开发流程中,数据集划分是决定模型最终性能的关键前置步骤。我见过太多团队在模型调优阶段陷入困境,最后发现问题根源竟是最初的数据划分不当。合理的训练集、验证集和测试集划分,就像建筑的地基——表面…

📰

基于GSM短信模块与单片机的远程开锁系统设计解析

简介:基于单片机GSM/GPRS远程控制与短信开锁设计资料,面向电子类学生、单片机开发爱好者及需要快速搭建远程控制方案的工程师。整合五套完整设计,覆盖51单片机与MSP430平台,涵盖远程拨号开锁、短信控制家电插座、智能快递箱、蓝牙…

📰

PM Skills Marketplace 贡献指南:从 frontmatter 规范到自动化校验的插件开发实战

PM Skills Marketplace 贡献指南:从 frontmatter 规范到自动化校验的插件开发实战 【免费下载链接】pm-skills PM Skills Marketplace: 100 agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth. 项目地址: htt…

📰

风电电力系统低碳调度模型与Matlab实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬