OpenCL:sincos vs native_cos和native_sin

Ben*_*Uri 5 macos trigonometry gpgpu opencl

据我所知,这个问题的答案取决于具体的OpenCL实现和硬件,但我需要之间进行选择sincos,并native_cos随后native_sin使用在Mac应用程序.

哪个会更快?

hus*_*sik 1

您可以添加一个迷你基准测试来测试超越函数的所有版本,并使用基准测试结果相应地更改内核字符串(例如native_在 acos前面)。这需要基于事件的分析并且适合可移植性。然后,每 N 次迭代,如果上次基准有任何错误,它可以重新基准并相应地进行较小的更改。

您甚至可以对一系列函数的排列进行基准测试(例如对第一个函数使用本机,但对第二个函数使用非本机,在第一个版本中对第三个函数使用本机,然后在其他 5 个版本上替代本机性,对所有函数进行基准测试),以更好地适应管道功能顺序很重要的架构。