我在CUDA Math API文档中看到,有用于单精度和双精度最小/最大运算的函数(例如fminf()
)。我认为这些是高度优化的,等等。似乎没有像整数这样的函数。这是真的?有什么理由吗?
有用于整数的最小/最大设备函数,但都使用重载调用它们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);
}
它们未在Integer Intinsics部分中列出,因为在math_functions.hpp中,该max
函数已重载以为您调用这些函数。这些__nv*
功能记录在device_function_decls.hpp中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句