__ll2half_rn
产 品 支 持 情 况
- Ascend 950PR/Ascend 950DT:支 持
- Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品:不 支 持
- Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品:不 支 持
- Atlas 200I/500 A2 推 理 产 品:不 支 持
- Atlas 推 理 系 列 产 品AI Core:不 支 持
- Atlas 推 理 系 列 产 品Vector Core:不 支 持
- Atlas 训 练 系 列 产 品:不 支 持
功 能 说 明
遵 循CAST_RINT模 式,将int64类 型 数 据 转 换 为half类 型 数 据,返 回 转 换 后 的 值。
函 数 原 型
Text
inline half __ll2half_rn(const long long int x)
参 数 说 明
表1 参 数 说 明
| 参 数 名 | 输 入/输 出 | 描 述 |
|---|---|---|
| x | 输 入 | 源 操 作 数。 |
返 回 值 说 明
输 入 遵 循CAST_RINT模 式 转 换 成 的half类 型 数 据。本 接 口 受 全 局 饱 和 寄 存 器 影 响,特 殊 值 如 下:
| x值 | 非 饱 和 模 式 返 回 值 | 饱 和 模 式 返 回 值 |
|---|---|---|
| 9223372036854775807(long long最 大 值) | inf | ASCRT_MAX_NORMAL_FP16 |
| -9223372036854775808(long long最 小 值) | -inf | -ASCRT_MAX_NORMAL_FP16 |
| x>9223372036854775807(long long最 大 值) | inf | ASCRT_MAX_NORMAL_FP16 |
| x<-9223372036854775808(long long最 小 值) | -inf | -ASCRT_MAX_NORMAL_FP16 |
| ASCRT_MAX_NORMAL_FP16 | ASCRT_MAX_NORMAL_FP16 | ASCRT_MAX_NORMAL_FP16 |
| -ASCRT_MAX_NORMAL_FP16 | -ASCRT_MAX_NORMAL_FP16 | -ASCRT_MAX_NORMAL_FP16 |
| 2049 | 2048 | 2048 |
| 2051 | 2052 | 2052 |
约 束 说 明
无
需 要 包 含 的 头 文 件
使 用 该 接 口 需 要 包 含"simt_api/asc_fp16.h"头 文 件。
Text
#include "simt_api/asc_fp16.h"
调 用 示 例
SIMT编 程 场 景:
Text__global__ __launch_bounds__(1024) void kernel__ll2half_rn(half* dst, int64_t* x) { int idx = threadIdx.x + blockIdx.x * blockDim.x; dst[idx] = __ll2half_rn(x[idx]); }SIMD与SIMT混 合 编 程 场 景:
Text__simt_vf__ __launch_bounds__(1024) inline void kernel__ll2half_rn(__gm__ half* dst, __gm__ int64_t* x) { int idx = threadIdx.x + blockIdx.x * blockDim.x; dst[idx] = __ll2half_rn(x[idx]); }