【发布时间】:2010-05-25 20:28:29
【问题描述】:
我需要以每秒数百万个值调用 Atan。是否有一个很好的库可以非常快速地批量执行此操作。例如,使用 SSE 之类的流式传输低级逻辑的库?
我已经分析了应用程序,并且我知道对 Atan 的调用是一个瓶颈。
我知道 OpenCL 对此提供支持,但我更愿意在 CPU 上执行此操作。目标机器可能不支持 OpenCL。
我也研究过使用 OpenCV,但 Atan 角度的准确度仅为 ~0.3 度。我需要准确的结果。
【问题讨论】:
-
您需要什么精度以及您的输入值是什么(int、float、double、其他?单值,还是 y / x 对?)
-
单精度或双精度都可以。我想要大约 1/3600 度的精度。
-
我用dotTrace做了一些更好的性能跟踪,发现瓶颈实际上不是Atan调用,而是我在同一行使用的赋值操作。但是,我仍然对任何用于流式处理/批处理操作的好的三角库感兴趣。
-
让我猜猜。您的赋值语句是否在调试代码中索引了一个向量,如下例所示:stackoverflow.com/questions/1932222/c-vector-vs-array-time/…
标签: .net performance streaming trigonometry