用于快速流/批量三角(Atan)的良好.NET库?

时间:2010-05-25 20:28:29

标签: .net performance streaming trigonometry

我需要每秒数百万的价值调用Atan。是否有一个很好的库可以非常快速地批量执行此操作。例如,使用SSE?

等流式传输低级逻辑的库

我已经分析了该应用程序,我知道这次对Atan的调用是一个瓶颈。

我知道在OpenCL中有这方面的支持,但我更喜欢在CPU上执行此操作。目标计算机可能不支持OpenCL。

我也研究过使用OpenCV,但Atan角度的准确度只有~0.3度。我需要准确的结果。

1 个答案:

答案 0 :(得分:1)

为什么不试试Brahma?据我所知,它是一个免费的开源GPGPU库,它不依赖于OpenCL,而是通过LINQ将代码转换为HLSL / GLSL着色器。

编辑:示例代码:

ComputationProvider provider = new ComputationProvider();
CompiledQuery query = provider.Compile<DataParallelArray<float>>(
    data => from value in data
            select (float)Math.Atan(value)); // Do your calculations here...

DataParallelArray<float> input = new DataParallelArray<float>(provider, new float[] { 0, 1, 2, 3, 4, 5, 6, 7, }); // etc...
IQueryable result = provider.Run(query, input);

foreach (float value in result)
    Console.WriteLine(value);