CANN/asc-devkit:负无穷大值接口
NegativeInfinity
【免费下载链接】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 训练系列产品:不支持
功能说明
头文件路径为:"basic_api/kernel_operator_limits_intf.h"。
返回指定数据类型的负无穷大值。
函数原型
标量接口,返回值为标量:
constexpr __aicore__ static inline T NegativeInfinity()矢量接口,为dstLocal前count个元素赋负无穷大值:
__aicore__ static inline void NegativeInfinity(const LocalTensor<T>& dstLocal, uint32_t count)
参数说明
表1参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| dstLocal | 输出 | 目的操作数。 类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。 LocalTensor的起始地址需要32字节对齐。 |
| count | 输入 | 输入数据元素个数。 |
数据类型
针对Ascend 950PR/Ascend 950DT,支持的数据类型为:half、bfloat16_t、float。
返回值说明
标量接口返回值为对应数据类型的负无穷大值。
矢量接口无返回值。
表 2NegativeInfinity各数据类型输出
| 数据类型 | 十进制数 | 二进制各bit位 |
|---|---|---|
| half | -inf | 1 11111 0000000000 |
| bfloat16_t | -inf | 1 11111111 0000000 |
| float | -inf | 1 11111111 00000000000000000000000 |
约束说明
标量接口无约束,矢量接口使用duplicate填充前count个元素赋负无穷大值,参照Memory矢量计算下的数据填充接口duplicate约束。
调用示例
标量接口:
float value = AscendC::NumericLimits<float>::NegativeInfinity();矢量接口:
AscendC::NumericLimits<float>::NegativeInfinity(dstLocal, 256);// 返回256个float类型的负无穷大值
【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
