我理解这个问题的答案取决于具体的OpenCL实现和硬件,但我需要在sincos
和native_cos
之间选择native_sin
,以便在Mac中使用应用
预计哪个更快?
答案 0 :(得分:1)
您可以添加一个迷你基准测试来测试所有版本的超越函数,并相应地更改内核字符串(例如,将native_
添加到cos
。)和基准测试结果。这将需要基于事件的分析并且适合于可移植性。然后,对于每N次迭代,如果上一次替补出现任何错误,它可以重新进行替换并进行相应的微小更改。
您甚至可以对一系列函数的排列进行基准测试(例如,对于第一个函数使用native,但在第二个函数中使用非native,在第一个版本中使用native,然后在其他5个版本上使用备用native,对所有函数进行基准测试)以适合代码在功能顺序重要的管道架构上更好。