鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

鲲鹏数学库加速

安装鲲鹏数学库

在一些机器学习算法(如PCA、SVD算法)中,使用到了BLAS、LAPACK等数学库实现算法中的数学运算,鲲鹏针对数学库进行了优化,针对此类算法,使用鲲鹏数学库将会提升性能。请参考如下在集群各个数据节点和管理节点上安装鲲鹏数学库。

  1. 基于Aarch64架构完成netlib、jniloader相关JAR包和.so文件的编译,上传到“/opt/netlib/”路径下。

  2. 安装netlib依赖。
    1. 安装GCC。
      若已安装,本步骤忽略,要求至少4.8.5版本以上。
      1
      yum install gcc
      

    2. 安装gfortran。
      1
      yum install gcc-gfortran
      

    3. 安装libblas。
      1
      yum install blas-devel
      

      查看安装结果。

      1
      ll /usr/lib64/ | grep libblas
      

    4. 安装liblapack。
      1
      yum install lapack-devel
      

      查看安装结果。

      1
      ll /usr/lib64/ | grep liblapack
      

  3. 获取鲲鹏BLAS数学库和LAPACK数学库,进行安装,并根据《鲲鹏数学库开发指南》生成完整功能的KML_LAPACK动态库。
  4. 创建软链接到安装好的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/*" \