鲲鹏数学库加速
安装鲲鹏数学库
在一些机器学习算法(如PCA、SVD算法)中,使用到了BLAS、LAPACK等数学库实现算法中的数学运算,鲲鹏针对数学库进行了优化,针对此类算法,使用鲲鹏数学库将会提升性能。请参考如下在集群各个数据节点和管理节点上安装鲲鹏数学库。
- 基于Aarch64架构完成netlib、jniloader相关JAR包和.so文件的编译,上传到“/opt/netlib/”路径下。
- 安装netlib依赖。
- 安装GCC。
- 安装gfortran。
1
yum install gcc-gfortran
- 安装libblas。
1
yum install blas-devel
查看安装结果。
1
ll /usr/lib64/ | grep libblas
- 安装liblapack。
1
yum install lapack-devel
查看安装结果。
1
ll /usr/lib64/ | grep liblapack
- 安装GCC。
- 获取鲲鹏BLAS数学库和LAPACK数学库,进行安装,并根据《鲲鹏数学库开发指南》生成完整功能的KML_LAPACK动态库。
- 创建软链接到安装好的BLAS数学库和LAPACK数学库。
举例:
1 2 3 4
sudo update-alternatives --install /usr/lib64/libblas.so libblas.so /usr/local/kml_blas/lib/single/libkblas.so 1000 sudo update-alternatives --install /usr/lib64/libblas.so.3 libblas.so.3 /usr/local/kml_blas/lib/single/libkblas.so 1000 sudo update-alternatives --install /usr/lib64/liblapack.so liblapack.so /usr/local/kml_lapack/lib/libklapack-full.so 1000 sudo update-alternatives --install /usr/lib64/liblapack.so.3 liblapack.so.3 /usr/local/kml_lapack/lib/libklapack-full.so 1000
验证:
1 2 3 4
sudo update-alternatives --display libblas.so sudo update-alternatives --display libblas.so.3 sudo update-alternatives --display liblapack.so sudo update-alternatives --display liblapack.so.3
使用鲲鹏数学库
运行Spark时,添加如下配置:
1 2 3 4 |
--conf "spark.driver.extraLibraryPath=/opt/netlib" \ --conf "spark.executor.extraLibraryPath=/opt/netlib" \ --conf "spark.driver.extraClassPath=/opt/netlib/*:lib/boostkit-ml-acc_2.11-2.1.0-spark2.3.2.jar:lib/boostkit-ml-core_2.11-2.1.0-spark2.3.2.jar:lib/boostkit-ml-kernel_2.11-2.1.0-spark2.3.2-aarch64.jar" \ --conf "spark.executor.extraClassPath=/opt/netlib/*" \ |
父主题: 优化过程