performance - cuda内在函数sqrtf和powf性能问题

标签 performance math cuda device intrinsics

当我从 powf 转换为 __powf 时,它可以提高我的性能。但如果我将 sqrtf 转换为其中之一 __fsqrt_[rn,rz,ru,rd] 它会减慢速度。我认为它们至少应该和 sqrtf 一样快。可能是什么问题?

问候

最佳答案

如果您需要对整数(或 float )进行平方,那么您只需将该值与其自身相乘即可,即代替;

y = powf(x, 2);

用途:

y = x * x;

这避免了使用昂贵的超越函数(及其相关的函数调用开销),并且在大多数情况下仅生成单个乘法指令。

平方根可能无法避免,但如果您只需要单精度,则可以使用 fsqrtf 而不是 sqrtf - 这通常要快得多。

关于performance - cuda内在函数sqrtf和powf性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011989/

相关文章:

c++ - 当我在某些情况下使用模板参数时,编译器如何生成函数实例?

visual-c++ - 如何将 cudaStreamAddCallback() 与类成员方法一起使用?

oracle - 如何描述关系数据库中的性能问题?

php - 代码添加正在减慢页面速度

python - 有效地 reshape pandas 数据框列中的数组

math - 高度(或深度)h 的二叉树的最大可能数量是多少

c++ - 我可以像 CUDA UVA 那样为 GPU、CPU 和 FPGA 使用单一地址空间吗?

c - arc4random_buf 是否有最佳批量大小?

sql - 如果 X 确定 Y 那么 Y 可以是一个集合吗?

java - 计算每个数字在整数的质因数中的出现次数