赞
踩
在复现一篇文章的时候得知了linKMcuda这个库,能极大的加速Kmeans过程,甚至还能降低内存开销,真是神奇。如果不想编译,直接使用libKMcuda的话,去下载.so文件,然后导入到虚拟环境中即可(跳到配置步骤第5步)
AudoDL平台的ubuntu系统使用起来很“空旷”,因为很多常用的脚本或者工具都没有配置,所以常常在配置环境的时候痛苦面具。这次配置libKMcuda也是如此,配置过程中查阅了大量资料,我觉得有必要记录一笔,便于以后参考。
目前使用的是
PyTorch 1.1.0
Python 3.7(ubuntu18.04)
Cuda 10.0
cuDNN 7.4
autodl平台的镜像里面很多东西都没有,包括cmake,而这是安装libKMcuda必备的,没办法,只能自己安装了。
cmake的安装参考了知乎文章:https://zhuanlan.zhihu.com/p/639246599
文章写的非常清楚,一步一步输入就行了,就是安装和编译时间有点长。
配置完cmake之后就可以开始安装libKMcuda了
首先拉取代码
- git clone https://github.com/src-d/kmcuda
-
- cd kmcuda/src/
然后输入指令(不完整):
cmake -DCMAKE_BUILD_TYPE=Release . && make
几个参数:
-D DISABLE_PYTHON: 如果不想编译Python支持模块,将该项值为y,
即增加-D DISABLE_PYTHON=y
-D DISABLE_R: 如果不想编译R支持模块,增加-D DISABLE_R=y
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0(修改为自己的路径):
如果CUDA无法自动找到,则增加该项
-D CUDA_ARCH=75:指定当前机器的CUDA计算能力(GPU Compute Capability)
算力查找:CUDA GPUs - Compute Capability | NVIDIA Developer
这个过程会遇到很多问题,主要是pythonlib目录已经参数选择问题
如上报错就是pythonlib的问题,参考文章https://blog.csdn.net/felaim/article/details/105832560
写的非常详细,一步一步操作就行。
对于参数选择的话主要就是CUDAtoolkit的位置,添加一下就好了
所以完整的指令是:
cmake -DPYTHON_INCLUDE_DIR=/root/miniconda3/include/python3.7m -DPYTHON_LIBRARY=/root/miniconda3/lib -DCMAKE_BUILD_TYPE=Release -D CUDA_ARCH=75 -D DISABLE_R=y -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 . && make
然后就是编译过程,非常快,编译成功的结果是这样:
在kmcuda/src目录下面找到.so文件
- python
- import libKMCUDA
如果没有反应,那就是最好的反应。至此libKMCUDA就编译完成了,可以使用
libKMCuda编译完成后并不是在哪里打开python并import都能用,需要目录里面有.so文件,所以为了能够随时随地可以使用,需要把.so文件添加到虚拟环境的目录下面。
首先就是确定一下虚拟环境的目录地址,形式是:
/.env/lib/python3.7/site-packages
然后把.so文件复制进去即可
cp /root/kmcuda/src/libKMCUDA.so /root/.env/lib/python3.7/site-packages/
到这就完成了libKMCuda的所有配置了~
这次环境配置主要就是用到了cmake来编译libKMCuda库,此前没有用到过,都是一键pip install或者conda install。花费了大半天终于配置成功,真是辛苦自己了。
此次编译生成的 libKMCUDA.so 文件放到个人gitee
地址:https://gitee.com/maxwellai/kmcuda.git
正好最近也在熟悉git的使用,希望以后能更加优雅的部署各种代码,散会。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。