Skip to content

An unopinionated SIMD vector operation library for Rust, supporting no_std and no-alloc workloads.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

ChillFish8/cfavml

Repository files navigation

CFAVML

CF's Accelerated Vector Math Library

Various accelerated vector operations over Rust primitives with SIMD.

Available SIMD Architectures

  • AVX2
  • AVX2 + FMA
  • AVX512
  • NEON
  • Fallback (Typically optimized to SSE automatically by LLVM on x86)

Crates

cfavml

This is the core base library, it has no dependencies and only depends on the core library, it does not perform any allocations.

This library is guaranteed to be no-std compatible and can be adjusted by disabling the std feature flag:

Default Setup
cfavml = "0.1.0" 
No-std Setup
cfavml = { version = "0.1.0", default-features = false }

cfavml-gemm

Generic matrix multiplication routines + transposition.

This crate is a WIP and is not currently published.

You should not use this crate currently.

cfavml-utils

This crate is a WIP and is not currently published.

Are a set of utilities primarily designed to just be use by the other cfavml sub-crates. This contains a lightly wrapped rayon threadpool with CPU pinning and provides the ability to create aligned buffers.

NOTE:

This library is not no-std compatible and does allocate.

Is this a replacement for BLAS?

No. At least, not unless you're only doing dot product... BLAS and LAPACK are huge and I am certainly not in the market for implementing all BLAS routines in Rust, but that being said if your application is similar to that of ndarray where it is only using BLAS for the dot product, then maybe.

About

An unopinionated SIMD vector operation library for Rust, supporting no_std and no-alloc workloads.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks