From 98c236a583af8207dc64c42142fa3d5b27184356 Mon Sep 17 00:00:00 2001 From: Weijian Wen Date: Thu, 17 Aug 2023 22:17:37 +0800 Subject: [PATCH] update README.en.md --- README.en.md | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/README.en.md b/README.en.md index e09e1f4..0e9acd4 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 -- Gitee