max
产品支持情况
- Ascend 950PR&950DT系列产品:支持
- Atlas A3系列产品:不支持
- Atlas A2系列产品:不支持
- Atlas 200I/500 A2推理产品:不支持
- Atlas推理系列产品AI Core:不支持
- Atlas推理系列产品Vector Core:不支持
- Atlas训练系列产品:不支持
功能说明
头文件路径为:"simt_api/math_functions.h"。
获取两个输入数据中的最大值,当入参为一个有符号整数、一个无符号整数时,有符号整数会先被转换为对应的无符号类型,再进行大小比较。
函数原型
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)
unsigned int max(unsigned int x, int y)
unsigned int max(int x, unsigned int y)
unsigned long int max(long int x, unsigned long int y)
unsigned long int max(unsigned long int x, long int y)
unsigned long long int max(long long int x, unsigned long long int y)
unsigned long long int max(unsigned long long int x, long long int y)
参数说明
表1 参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| x | 输入 | 源操作数。 |
| y | 输入 | 源操作数。 |
返回值说明
输入数据中的最大值。
约束说明
无
调用示例
-
SIMT编程场景:
#include "simt_api/math_functions.h" __global__ __launch_bounds__(1024) void KernelMax(long long* dst, long long* x, long long* y, uint32_t input_total_length) { uint32_t idx = threadIdx.x + blockIdx.x * blockDim.x; if (idx >= input_total_length) { return; } dst[idx] = max(x[idx], y[idx]); } -
SIMD与SIMT混合编程场景:
#include "simt_api/math_functions.h" __simt_vf__ __launch_bounds__(1024) inline void KernelMax(__gm__ long long* dst, __gm__ long long* x, __gm__ long long* y, uint32_t input_total_length) { uint32_t idx = threadIdx.x + blockIdx.x * blockDim.x; if (idx >= input_total_length) { return; } dst[idx] = max(x[idx], y[idx]); }