编译安装

1,前期准备

  1. git clone https://github.com/src-d/kmcuda
  2. cd kmcuda/src/
  3. 例如:
  4. cmake -DCMAKE_BUILD_TYPE=Release . && make
  5. 有几个参数需要注意一下:
  6. -D DISABLE_PYTHON: 如果不想编译Python支持模块,将该项值为y,即增加-D DISABLE_PYTHON=y
  7. -D DISABLE_R: 如果不想编译R支持模块,增加-D DISABLE_R=y
  8. -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0(修改为自己的路径):如果CUDA无法自动找到,则增加该项
  9. -D CUDA_ARCH=52:指定当前机器的CUDA计算能力(GPU Compute Capability
  10. 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的路径配置到配置文件中
  1. export PATH=$PATH:/usr/local/cuda/bin
  2. export LD_LIBRARAY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  3. export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda:$CUDA_TOOLKIT_BOOT_DIR
  4. export CUDA_INCLUDE_DIRS=/usr/local/cuda/include

激活生效

编译命令

  1. 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为例。

  1. $python
  2. >>>import sys
  3. >>>sys.path.append(“/home/lxc/software/program/python”)
  4. >>>import getopt_exam
  5. >>>getopt_exam.version()
  6. version v1.0

导入模块不成功:

需要:

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

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

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

libkmcuda安装的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. group_by和having的用法

    #encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Enum ...

  2. OI模板のpoke流[大型考试复习必备/kl]

    数论 快速乘: ll qmul(ll x,ll y,ll mod) { ll ans=0; while(y) { if(y&1) (ans+=x)%=mod; y>>=1; (x+ ...

  3. 【Linux 网络编程】REUSADDR

    (1)服务器端尽可能使用REUSEADDR.(2)在绑定之前尽可能调用setsockopt来设置REUSEADDR套接字选项.(3)使用REUSEADDR选项可以使得不必等待TIME_WAIT状态消失 ...

  4. C++类型转换(类型转换函数+类型构造函数)

    C++类型转换(类型转换函数+类型构造函数) 类型转换函数 类型转换运算符是类的一种特殊成员函数,它负责将一个类类型的值转换成其他类型. graph LR 类类型--> 类型转换函数 --> ...

  5. # 数字签名&数字证书

    目录 数字签名&数字证书 数字签名 数字证书 数字证书的实例(https协议) 数字签名&数字证书 参考资料: 数字签名是什么?-阮一峰的网络日志 数字签名和数字证书究竟是什么?知乎- ...

  6. jQuery 实现图片放大两种方式

    jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...

  7. 微信小程序,预览在开发工具上显示正常,手机预览二维码报request->fail错误,打开手机的调试功能又正常。

    这里错误很明显是属于网址错误,开发工具和手机调试都能走request->success: 唯独常规模式下无法显示. 最开始调试过很多方法,没找出原因.最后到小程序开发设置才发现,自己未配置服务器 ...

  8. sql server len函数

    len函数 --返回字符表达式中的字符数 --如果字符串中包含前导空格和尾随空格,则函数将它们包含在内 --LEN对相同的单字节和双字节字符串返回相同的值 --示例:select LEN('no'), ...

  9. [转载]static in Java

    来源:https://www.cnblogs.com/chenssy/p/3386721.html 一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现 ...

  10. 键盘事件 Ctrl+p 模拟(vue)

    方法定义 // 打印页面 printpage(myDiv) { // myDiv 为打印对象的id名 var newstr = document.getElementById(myDiv).inner ...