我发现_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吗?
谢谢。
答案 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。