max
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
- Atlas 200I/500 A2 推理产品:不支持
- Atlas 推理系列产品AI Core:不支持
- Atlas 推理系列产品Vector Core:不支持
- Atlas 训练系列产品:不支持
功能说明
获取两个输入数据中的最大值。
函数原型
long long max(long long x, long long y)
long max(long x, long y)
int max(int x, int y)
short max(short x, short y)
char max(char x, char y)
unsigned long long max(unsigned long long x, unsigned long long y)
unsigned long max(unsigned long x, unsigned long y)
unsigned int max(unsigned int x, unsigned int y)
unsigned short max(unsigned short x, unsigned short y)
unsigned char max(unsigned char x, unsigned char y)
参数说明
表1 参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| x | 输入 | 源操作数。 |
| y | 输入 | 源操作数。 |
返回值说明
输入数据中的最大值。
约束说明
无
需要包含的头文件
使用该接口需要包含"simt_api/math_functions.h"头文件。
#include "simt_api/math_functions.h"
调用示例
-
SIMT编程场景:
__global__ __launch_bounds__(1024) void KernelMax(long long* dst, long long* x, long long* y) { int idx = threadIdx.x + blockIdx.x * blockDim.x; dst[idx] = max(x[idx], y[idx]); } -
SIMD与SIMT混合编程场景:
__simt_vf__ __launch_bounds__(1024) inline void KernelMax(__gm__ long long* dst, __gm__ long long* x, __gm__ long long* y) { int idx = threadIdx.x + blockIdx.x * blockDim.x; dst[idx] = max(x[idx], y[idx]); }