我在CUDA Math API文档中看到,有单精度和双精度min/max操作的函数(例如fminf()
).我认为这些是高度优化的,等等.似乎没有像这样的函数用于整数.这是真的?这有什么理由吗?
cha*_*pjc 13
整数有最小/最大设备函数,但它们都被重载调用max()
.查看device_functions.hpp:
__DEVICE_FUNCTIONS_STATIC_DECL__ int max(int x, int y)
{
return __nv_max(x, y);
}
__DEVICE_FUNCTIONS_STATIC_DECL__ unsigned int umax(unsigned int x, unsigned int y)
{
return __nv_umax(x, y);
}
__DEVICE_FUNCTIONS_STATIC_DECL__ long long llmax(long long x, long long y)
{
return __nv_llmax(x, y);
}
__DEVICE_FUNCTIONS_STATIC_DECL__ unsigned long long ullmax(unsigned long long x,
unsigned long long y)
{
return __nv_ullmax(x, y);
}
Run Code Online (Sandbox Code Playgroud)
它们没有列在Integer Intinsics部分中,因为在math_functions.hpp中,max
函数被重载以便为您调用这些函数.这些__nv*
函数记录在device_function_decls.hpp中.