xtensor-stack/xsimd
C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, AVX512, NEON, SVE, WebAssembly, VSX, RISC-V))
解决的问题
xsimd 是一个提供 SIMD(单指令多数据)内建函数统一接口的 C++ 库。它解决了不同微处理器厂商和编译器之间的差异问题,使开发者能够编写高性能代码,在不同硬件架构上实现加速,而无需为每种特定指令集重新编写逻辑。
工作原理
该库作为硬件特定 SIMD 指令的封装器。它允许开发者使用与单个数值相同的算术运算符来操作数值批次。同时,它还提供了对这些批次运行的常见数学函数的加速实现,支持广泛的架构,包括 x86(SSE、AVX)、ARM(NEON、SVE)、RISC-V、WebAssembly 和 PowerPC。
适用人群
主要面向需要在多个硬件平台上对数值计算和数据处理的性能关键代码进行优化的库作者和开发者。
主要亮点
- 广泛的硬件支持:支持包括 AVX-512、ARM SVE 和 RISC-V 在内的大量指令集。
- C++17 标准:需要 C++17 兼容的编译器。
- 统一的 API:可在数据批次上使用标准算术运算符。
- 行业采用:被 Mozilla Firefox、Apache Arrow 和 Krita 等主要项目使用。
相关
- 项目
- 项目
- 项目
- 项目