VectorBLAS简介
VectorBLAS是一个使用Java语言实现的向量化BLAS高性能库,目前已在openEuler社区开源。
VectorBLAS通过循环展开、矩阵分块和内存布局优化等算法优化,对BLAS函数进行了深度优化,并利用VectorAPI JDK提供的多种向量化API实现。
可以理解为:VectorBLAS = VectorAPI + BLAS。
BLAS简介:
BLAS(Basic Linear Algebra Subprograms)是进行向量和矩阵等基本线性代数操作的数值库,是LAPACK(Linear Algebra Package)的一部分。
在高性能计算领域中被广泛应用,由此衍生出大量优化版本,如OpenBLAS、Intel的Intel MKL等优化版本。
主要支持三个级别的运算:分别支持向量与向量、向量与矩阵、矩阵与矩阵的相关操作。
VectorAPI简介:
VectorAPI是Java端为实现SIMD向量化功能提供的一个抽象层,从JDK16开始发布,目前已孵化到第六代(JDK21)。
VectorAPI提供的能力包括:
-
定义更清晰及准确的向量化API,使用户更直接的实现向量化;
-
与平台无关:支持AArch64和x86等平台,支持NEON、SVE、AVX等多种向量化指令,一份代码多处可用;
应用场景:
目前BLAS库在大数据、HPC和机器学习等高性能计算中被广泛使用。例如大数据组件Spark中的多种机器学习算法(如:KMeans、 LDA、 PCA、 Bayes、 GMM、&nbs

VectorBLAS是用Java实现的向量化BLAS高性能库,已在openEuler社区开源。它结合VectorAPI,通过循环展开、矩阵分块等算法优化BLAS函数。BLAS是基本线性代数操作数值库,在高性能计算领域广泛应用。VectorBLAS性能优于同类库,后续将支持更多接口、完善测试并结合机器学习算法库优化。
最低0.47元/天 解锁文章
277

被折叠的 条评论
为什么被折叠?



