diff --git a/README.en.md b/README.en.md index e09e1f4cae7b30cd66227a6232397d0be785a134..0e9acd45ce580b152a99e5a4e9d343fafbb72def 100644 --- a/README.en.md +++ b/README.en.md @@ -1,22 +1,30 @@ # vectorBlas #### Description -A high performance Blas Library Based on JDK vector API +- vectorBLAS: A high performance Blas Library Based on JDK vectorAPI. +- [BLAS](https://www.netlib.org/blas/index.html): Basic Linear Algebra Subprograms,which provides common linear algebra operations, such as vector addition, scalar multiplication, dot product, linear combination, and matrix multiplication, etc. +- [VectorAPI](https://openjdk.org/jeps/338): A vectorized interface supported from JDK16+, which supports vectorized instructions on multiple platforms, allowing users to precisely control and utilize the SIMD (Single Instruction Multiple Data) capabilities in modern CPUs. #### Software Architecture -Software architecture description +- vectorBlas is a Java implementation of BLAS, so its interface parameters are consistent with the BLAS specification; +- vectorBlas currently consists of three parts: Level1, Level2, and Level3 + - Level1: scalar-scalar + - Level2: scalar-vector + - Level3: vector-vector +- Currently supported data types: + - double + - float +- For each function interface, vectorBlas has two methods: vectorAPI implementation and common implementation. For those can do SIMD operation (such as incx=1), we use VectorAPI to implement vectorization. For the rest we implement it with non-vectorization methond. +- Main optimization methods: VectorAPI vectorization, loop unrolling, matrix partitioning, Packing, etc.; #### Installation -1. xxxx -2. xxxx -3. xxxx +dependencies: +- JDK 16+ +- Maven -#### Instructions - -1. xxxx -2. xxxx -3. xxxx +Compile command: +`mvn clean package` #### Contribution