如何通过利用Intel OpenCL SVML使用_mm256_log_ps?

时间:2018-08-11 05:00:55

标签: gcc opencl avx avx2

我发现_mm256_log_ps不能与GCC7一起使用。关于stackoverflow的最常见建议是使用ICC或利用OpenCL SDK。

下载SDK并提取RPM文件后,共有三个.so文件:__ocl_svml_l9.so,__ ocl_svml_e9.so,__ ocl_svml_h8.so

有人可以教我如何使用这些.so文件调用_mm256_log_ps吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Eigen library中的log函数:

#include <Eigen/Core>

void foo(float* data, int size)
{
    Eigen::Map<Eigen::ArrayXf> arr(data, size);
    arr = arr.log();
}

根据编译标志,这会生成优化的SSE或AVX代码(以及其他体系结构的SIMD)。该实现基于http://gruntthepeon.free.fr/ssemath/,后者基于cephes