Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 1.14 KB

File metadata and controls

27 lines (20 loc) · 1.14 KB

SIMD Libraries

This set of libraries define native SIMD vector types and typed SIMD intrinsics. They currently support 128/256-bit numeric types and amd64 intrinsics up to AVX2.

To use SIMD in your program, add the library ocaml_simd_avx and the PPX ppx_simd to your jbuild.

  • ocaml_simd_avx provides AVX vector types and operations. See the interface files under /avx for details.

  • ppx_simd provides convenient type-checked syntax for specifying constants that modify the behavior of SIMD instructions. See /ppx for details.

  • Note that the ocaml_simd library only provides cross-instruction-set abstract types and constant definitions. You do not need to depend on this library directly. Instead, these constants are generated by ppx_simd. See /src for details.

  • A sexp parser may be found in ocaml_simd_sexp. It uses SIMD instructions to achieve a performance improvement over sexplib's parser. See /sexp for details.

The current set of libraries are intended for low-level use cases, and will form the basis for a higher-level cross-platform library in the future.