编译安装

1,前期准备

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=52:指定当前机器的CUDA计算能力(GPU Compute Capability)
gcc:有文章提到,低版本的gcc编译器不支持,我当前版本是5.4,可满足需求

2,查询GPU算力

通过NVIDIA官网查询自己GPU服务器的GPU算力

例如:GeForce GTX 960M

https://developer.nvidia.com/cuda-gpus#compute

GeForce GTX 960M 5.0

CUDA_ARCH设置为50, -D CUDA_ARCH=50

  1. 配置GPU路径 (未做)

    为了能够自动查找相关库的路径,将cuda的路径配置到配置文件中
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARAY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda:$CUDA_TOOLKIT_BOOT_DIR
export CUDA_INCLUDE_DIRS=/usr/local/cuda/include

激活生效

编译命令

cmake -DCMAKE_BUILD_TYPE=Release  -D CUDA_ARCH=50  . && make

链接库导入

问题:执行需要导入该库的python文件时,需要在有该链接库存在的目录,可以设置python路径

Python环境变量PYTHONPATH设置

1.把自己编写的python模块添加到PYTHONPATH上

要想让python解释器找到自己编写的模块,则该模块必须PYTHONPATH上,否则在导入该模块时会出现找不到该模块的错误,因此必须把所需要的模块的路径添加到PYTHONPATH(一般情况下是把lib/python3.6/site-packages添加到PYTHONPATH)。具体做法如下:

a. 假设所需要的python模块(或包)位于/home/llx/software/program/python

b. 把/home/llx/software/program/python添加到PYTHONPATH,语法与shell里面的PATH一样:

export PYTHONPATH=$PYTHONPATH:/home/lxc/software/program/python

注意:当第一次导入getopt_exam时,getopt_exam.py就会被编译为字节码,此时该目录下就会出现一个名为getopt_exam.pyc的文件,因为.pyc格式比.py格式导出的速度更快,如果更新了getopt_exam.py则必须把它之前被编译的字节码getopt_exam.pyc删除,否则在使用这个模块的时候就不会看到更新的部分,因为它是从第一次生成的getopt_exam.pyc里面导出来;我们必要对新的getopt_exam.py脚本编译成.pyc文件或是直接把getopt_exam.pyc(第一次生成)删掉,python解释器会自动没有没有相应.pyc的.py文件生成相应的.pyc文件(基本规则:当导入一个模块时,python解释器先把.py文件编译成.pyc,然后在从*.pyc里面导出)。

2.在python脚本里面使用那些不再PYTHONPATH上的第三方包或是自己编写的模块

以使用/home/llx/software/program/python/getopt_exam.py为例。

$python
>>>import sys
>>>sys.path.append(“/home/lxc/software/program/python”)
>>>import getopt_exam
>>>getopt_exam.version()
version v1.0

导入模块不成功:

需要:

import sys
sys.path.append(“/home/lxc/software/program/python”)
import getopt_exam 先配置环境变量后,再导入包

https://blog.csdn.net/ling620/article/details/101374751

https://blog.csdn.net/fyh2003/article/details/6837624

最新文章

  1. Android课程---远程服务器存储
  2. sql server 排名函数:DENSE_RANK
  3. 文顶顶iOS开发博客链接整理及部分项目源代码下载
  4. js原生实现选项卡功能
  5. 【BZOJ-1853&2393】幸运数字&Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝
  6. IOCP简单实现
  7. 简单的访客IP获取类-IPHelper.cs
  8. POJ 1052 Plato's Blocks
  9. python中判断语句用两个or连接的奇葩
  10. Java中interrupt的使用
  11. SQLServer 账户当前被锁定
  12. js 移动端上拉刷新(基于ng1)
  13. 转发 .Net平台下ActiveMQ入门实例 https://www.cnblogs.com/madyina/p/4121458.html
  14. spring拦截器中修改响应消息头
  15. php-mysql问题:mysqli_connect(): Headers and client library minor version mismatch. Headers:50556 Library:50637
  16. pushpin openresty 集成试用
  17. [翻译] 10 个实用的 Git 高级命令
  18. 玩转mongodb(六):索引,速度的引领(普通索引篇)
  19. 解决爬虫时网站采用gb2312编码所遇到的乱码问题!
  20. MySQL基础(《MySQL必知必会》简单总结)

热门文章

  1. Laravel模板事项
  2. linux运维、架构之路-Lnmp架构部署
  3. Macaca环境搭建(三)----uirecorder Android录制
  4. learning_git_from_Liao
  5. [python] 执行 dos 命令
  6. python进程之间的通信——Queue
  7. 设置adb shell的环境变量
  8. wpf ActualWidth为0解决方法
  9. centos搭建LAMP
  10. 学会这 2 点,轻松看懂 MySQL 慢查询日志