std::transform SIMD 功能吗?
Is std::transform SIMD function?
是std::transformSIMD?我的意思是如果我有两个数组
std::array<int,4> a{1,2,3,4};
和 std::array<int,4> b{1,2,3,4};
。让我们将这两个数组与 std::transform(a.begin(),a.end(),b.begin(),result.begin(),std::plus<>());
相加,并将结果存储在一个新的 std::array<int,4> result;
数组中。我用 SIMD 命令完成求和了吗?如果不是,我怎样才能实现 SIMD?
注意:我正在使用 clang 进行编译,优化级别为 -O3 并进行发布构建。
是否 std::transform
使用 SIMD 指令取决于实现和编译器。
如果您需要确保您的转换使用 SIMD 功能,这里有一个提供 SIMD 转换函数的库,它具有与 STL 相同的接口 https://github.com/xtensor-stack/xsimd
是std::transformSIMD?我的意思是如果我有两个数组
std::array<int,4> a{1,2,3,4};
和 std::array<int,4> b{1,2,3,4};
。让我们将这两个数组与 std::transform(a.begin(),a.end(),b.begin(),result.begin(),std::plus<>());
相加,并将结果存储在一个新的 std::array<int,4> result;
数组中。我用 SIMD 命令完成求和了吗?如果不是,我怎样才能实现 SIMD?
注意:我正在使用 clang 进行编译,优化级别为 -O3 并进行发布构建。
是否 std::transform
使用 SIMD 指令取决于实现和编译器。
如果您需要确保您的转换使用 SIMD 功能,这里有一个提供 SIMD 转换函数的库,它具有与 STL 相同的接口 https://github.com/xtensor-stack/xsimd