CUDA为内核作者提供了两个函数
__builtin_assume()
和__assume()
。他们的签名是一样的:
void __builtin_assume(bool exp);
void __assume(bool exp);
他们的单行文档也是如此。它们是一样的吗?其中一个被否决了吗?
在一篇博客文章中提到了这一差异:https://developer.nvidia.com/blog/boosting-productivity-and-performance-with-the-nvidia-cuda-11-2-c-compiler/
当使用cl.exe作为主机编译器时,NVCC也支持类似的内置函数__present(bool(。