安装KML
本文提供RPM包和DEB包两种安装KML方法,请参照本节内容对KML进行安装和安装后验证。使用RPM包安装时,若操作过程中使用了RPM包管理工具支持但本文档中未说明的参数,可能会引入未定义行为,请谨慎操作。
安装步骤
RPM包安装
- 按照获取软件包获取到KML软件包,解压后得到二进制RPM包。
- 安装KML。
- 安装到默认目录。
rpm -ivh kml-xxxx.aarch64.rpm
- 安装到指定目录。
rpm -ivh --prefix=/path kml-xxxx.aarch64.rpm
上述命令中涉及的xxxx代表版本号。
如果安装在默认目录,安装结束后,系统在环境变量LD_LIBRARY_PATH中自动添加lib文件夹所在目录即“/usr/local/kml/lib/noarch/kvml/multi:/usr/local/kml/lib/noarch/kvml/single:/usr/local/kml/lib/noarch:/usr/local/kml/lib:/usr/local/kml/lib/neon/kspblas/multi:/usr/local/kml/lib/neon/kspblas/single:/usr/local/kml/lib/neon/kblas/pthread:/usr/local/kml/lib/neon/kblas/omp:/usr/local/kml/lib/neon/kblas/locking:/usr/local/kml/lib/neon/kblas/nolocking:/usr/local/kml/lib/neon”。
如果安装在指定目录/path,安装结束后,系统在环境变量LD_LIBRARY_PATH中自动添加lib文件夹所在目录即“/path/kml/lib/noarch/kvml/multi:/path/kml/lib/noarch/kvml/single:/path/kml/lib/noarch:/path/kml/lib:/path/kml/lib/neon/kspblas/multi:/path/kml/lib/neon/kspblas/single:/path/kml/lib/neon/kblas/pthread:/path/kml/lib/neon/kblas/omp:/path/kml/lib/neon/kblas/locking:/path/kml/lib/neon/kblas/nolocking:/path/kml/lib/neon”。
- 安装到默认目录。
DEB包安装
- 按照获取软件包获取到KML软件包,解压后得到二进制DEB包。
- 安装KML。
dpkg -i kml-xxxx.aarch64.deb
上述命令中涉及的xxxx代表版本号。
安装结束后,系统在环境变量LD_LIBRARY_PATH中自动添加lib文件夹所在目录即“/usr/local/kml/lib/noarch/kvml/multi:/usr/local/kml/lib/noarch/kvml/single:/usr/local/kml/lib/noarch:/usr/local/kml/lib:/usr/local/kml/lib/neon/kspblas/multi:/usr/local/kml/lib/neon/kspblas/single:/usr/local/kml/lib/neon/kblas/pthread:/usr/local/kml/lib/neon/kblas/omp:/usr/local/kml/lib/neon/kblas/locking:/usr/local/kml/lib/neon/kblas/nolocking:/usr/local/kml/lib/neon”。
安装后验证
- 执行source命令或重新登录终端让环境变量生效。
source /etc/profile
- 查看环境变量LD_LIBRARY_PATH是否包含KML的安装路径“/usr/local/kml/lib”。
env | grep LD_LIBRARY_PATH
如果变量包含安装路径,说明安装成功。
安装成功后在安装路径(默认路径是“/usr/local/kml”)下生成相应文件,其中,include文件夹包含子库的头文件,lib文件夹包含了数学库的动态库文件。
- 使用时,请在GCC编译选项中添加动态库所在路径,链接需要使用的动态库文件,添加编译选项后用ldd命令检查程序依赖库是否准确链接。
- 若需要使用KML_BLAS请添加:
- 单线程不加锁版本:-L /usr/local/kml/lib/neon/kblas/nolocking -lkblas
- 单线程加锁版本:-L /usr/local/kml/lib/neon/kblas/locking -lkblas
- pthread实现多线程版本:-L /usr/local/kml/lib/neon/kblas/pthread -lkblas
- OpenMP实现多线程版本:-L /usr/local/kml/lib/neon/kblas/omp -lkblas
- 若需要使用KML_VML请添加:
- 单线程版本:-L /usr/local/kml/lib/noarch -L /usr/local/kml/lib/noarch/kvml/single -lkvml -lkm
- 多线程版本:-L /usr/local/kml/lib/noarch -L /usr/local/kml/lib/noarch/kvml/multi -lkvm -lkm
- 若需要使用KML_SPBLAS请添加:
- 单线程版本:-L /usr/local/kml/lib/neon/kspblas/single -lkspblas
- 多线程版本:-L /usr/local/kml/lib/neon/kspblas/multi -lkspblas
- 若需要使用KML_FFT请添加:
- 单精度版本:-L /usr/local/kml/lib/noen -lkfftf
- 双精度版本:-L /usr/local/kml/lib/neon -lkfft
- 若需要使用KML_MATH请添加:
- 高性能版本:-L /usr/local/kml/lib/noarch -lkm -lm
- 高精度版本:-L /usr/local/kml/lib/noarch -lkm_l9 -lm
- 若需要使用KML_SVML请添加:-L /usr/local/kml/lib/neon -lksvml -lm
- 若需要使用KML_VSL请添加:-L /usr/local/kml/lib/noarch -lkvsl
- 若需要使用KML_LAPACK:
请先根据生成完整的LAPACK生成完整的LAPACK,然后添加-L /usr/local/kml/lib/neon -L /usr/local/kml/lib/neon/kblas/omp -lklapack -lkblas。
- 若需要使用KML_SOLVER请添加:
毕昇:-L /usr/local/kml/lib/neon -lksolver -lklapack_full -lkservice -lkblas -lc++
GCC:-L /usr/local/kml/lib/neon -lksolver -lklapack_full -lkservice -lkblas -lstdc++
集群版:
毕昇:-L /usr/local/kml/lib/neon -lkscasolver -lklapack_full -lkservice -lkblas -lc++
GCC:-L /usr/local/kml/lib/neon -lkscasolver -lklapack_full -lkservice -lkblas -lstdc++
- 若需要使用KML_IPL请添加:-L /usr/local/kml/lib/neon -lkipl -lklapack_full -L /usr/local/kml/lib/neon/kblas/pthread -lkblas -lm
- 若需要使用KML_SCALAPACK:
请先根据生成完整的SCALAPACK生成完整的SCALAPACK,然后添加-L /usr/local/kml/lib/neon -lkscalapack -lklapack -lkservice -lkblas
- 若需要使用KML_EIGENSOLVER请添加:
毕昇:-L /usr/local/kml/lib/neon -lkes -lklapack_full -lkscalapack_full -lkservice -lkblas -lc++
GCC: -L /usr/local/kml/lib/neon -lkes -lklapack_full -lkscalapack_full -lkservice -lkblas -lstdc++
若使用自定义目录安装方式,请正确追加环境变量LD_LIBRARY_PATH,例如:使用/path/kml/lib下的动态库,需要在当前终端执行"export LD_LIBRARY_PATH=/path/kml/lib:$LD_LIBRARY_PATH"。
- 若需要使用KML_BLAS请添加: