CentOS7.X安装英伟达显卡采坑之路
1、系统信息
操作系统版本:CentOS7.X
显卡版本:英伟达 Tesla P100
其他软件包安装信息:
- CUDA 9.0
- CUDNN 7.4.2.24
- lightgbm 2.2.X
- Boost 1.61
- CMake 3.12
特别说明,如果没有在官网找到你的显卡版本对应的驱动,请尽快寻找你的显卡提供商确认驱动信息,不要轻易尝试;那就是在浪费时间,切记!
2、安装P100驱动
这里安装P100驱动的方式,通过Yum Rpm包的安装方式,其他相关的Linux系统可以通过对应的包管理或者二进制的方式安装,如果是CentOS系统,我们非常推荐使用Yum进行安装。
2.1 查看显卡信息
我们可以通过查看pci的接口,确认显卡信息,以及是否识别出显卡,当然默认没有这个工具,我们需要安装;安装方式如下:
yum install pciutils -y
可以通过过滤VGA来精确信息:
lspci|grep -i vga
2.2 安装显卡驱动
这里我们通过wget在线下载驱动,通过rpm安装载入到系统中:
wget http://cn.download.nvidia.com/tesla/410.79/nvidia-diag-driver-local-repo-rhel7-410.79-1.0-1.x86_64.rpm
rpm -ivh nvidia-diag-driver-local-repo-rhel7-410.79-1.0-1.x86_64.rpm
在往下走之前我们需要配置epel源,便于后面安装dkms:
yum install epel-*
通过Yum安装,目前这是最简单的方式,如果你想挑战也可以采用二进制tarall的方式:
yum install dkms -y
yum install nvidia* -y
最后为了生效,我们需要重启操作系统:
reboot
往往重启后,你不确定是否成功,那如果去查看信息呢,我推荐通过一下三个步骤:
lspci | grep -i nv # 查看是否加载驱动配置
lsmod | grep -i nouveau # 是否关闭了默认显卡驱动
dmesg | grep NVRM # 查看开启加载是否有异常信息
到了这里,成责成,不成你就要日志了,别照着网上文章乱搞。
3、开发工具包安装
只有驱动还是不够的,我们换需要一个些工具包便于我们使用,其中 CUDA、CUDNN就是我们要安装的包。
3.1 CUDA工具包安装
导入官方CUDA包
rpm -ivh http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-9.0.176-1.x86_64.rpm
通过Yum安装即可
yum install cuda-9.0.176-1
我们推荐不要安装太新的,好多组件不一定能够支持。
查看版本技巧:yum search --showduplicates cuda
3.2 CUDNN安装
PS:下载CUDNN,你可能需要一个会员,需要登录才能够下载
Download下载地址: https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.4.2/prod/9.0_20181213/cudnn-9.0-linux-x64-v7.4.2.24.tgz
上传到服务器上后,解压Copy对应的库文件即可(这里我们默认你已经回上传文件到服务之上):
tar xf cudnn-9.0-linux-x64-v7.4.2.24.solitairetheme8
cp cuda/include/cudnn.h /usr/local/cuda/include
cp -a cuda/lib/* /usr/local/cuda/lib64/
4、lightgbm安装
这个安装对于CentOS7的系统是非常坑的,必须要来编译原声的组件,编译失败的因素很多,你准备好了?
4.1 OpenGL安装
安装OpenGL,默认情况下CUDA安装时已经安装,所以无需单独安装;(特别注意,有时候会遇到软连接丢失造成找不到so库文件),解决方法就是补全软连接即可了。
PS:补全方式,类似常规方法,通过ln 命令模拟确实的so文件即可。
4.2 Boost安装
安装前,你需要安装一些依赖,来保证后面的步骤能够顺序执行(我并不能保证你按照我的方式一定会成功,但至少我成功了,如果出错你需要详细检查报错信息+你的机智来解决问题)
yum install wget gcc python python python-devel -y
安装命令如下,你可以直接Copy执行(在Root身份下)
cd /usr/local/src
wget https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.gz
tar xf boost_1_61_0.tar.gz
cd boost_1_61_0
./bootstrap.sh --prefix=/usr/local/include/boost
./b2 install
我们还需要安装tools工具,放心这个不会报错,锦上添花的功能:
cd tools/build/
./b2 install --prefix=/usr/local/include/boost
4.3 CMake安装
没有什么特别好说的,常规操作(你在Root身份下直接复制即可):
cd /usr/local/src
wget https://cmake.org/files/v3.12/cmake-3.12.0-rc1.tar.gz
tar -zxf cmake-3.12.0-rc1.tar.gz
cd cmake-3.12.0-rc1
./bootstrap
gmake -j $(nproc)
gmake install
检查是否成功与查看版本:
cmake --version
4.4 正文lightgbm
PS:开始前,我们认为已经安装了Python3的环境,当然Python2也是可以的,不过你需要做好心理准备。
命令如下:建议Root用户或等同权利的用户执行
cd /usr/local/src/
git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build
cmake -DUSE_GPU=1 ..
make -j 12
cd ../python-package/
python3 setup.py install
将so动态库Copy到系统之中,自行操作,不在演示。
4.5 测试
安装基础测试数据包:
pip3 install wheel numpy scipy scikit-learn -U -i https://pypi.doubanio.com/simple
下载解析处理数据:
cd /usr/local/src
git clone https://github.com/guolinke/boosting_tree_benchmarks.git
cd boosting_tree_benchmarks/data
wget "https://archive.ics.uci.edu/ml/machine-learning-databases/00280/HIGGS.csv.gz"
gunzip HIGGS.csv.gz
python3 higgs2libsvm.py
PS: 这里你可能会遇到xrange错误,因为Python3已经没有xrange,这里修改为range即可。
创建测试数据:
cat > lightgbm_gpu.conf <<EOF
max_bin = 63
num_leaves = 255
num_iterations = 50
learning_rate = 0.1
tree_learner = serial
task = train
is_training_metric = false
min_data_in_leaf = 1
min_sum_hessian_in_leaf = 100
ndcg_eval_at = 1,3,5,10
sparse_threshold = 1.0
device = gpu
gpu_platform_id = 0
gpu_device_id = 0
EOF
echo "num_threads=$(nproc)" >> lightgbm_gpu.conf
测试命令如下:
# Run of GPU
/usr/local/src/LightGBM/lightgbm config=lightgbm_gpu.conf data=higgs.train valid=higgs.test objective=binary metric=auc
# Run of CPU
/usr/local/src/LightGBM/lightgbm config=lightgbm_gpu.conf data=higgs.train valid=higgs.test objective=binary metric=auc device=cpu
这里可以将生成的lightgbm命令与So文件Copy到系统之中方便后期使用。
5、小结
看到这里说明你已经成功了,是不是很Easy,当然如果你没搞定回头看看错误信息;我的这个博文你不一定能够成功,至少我成功过了,切记不要根据网上的帖子乱搞。
CentOS7.X安装英伟达显卡采坑之路的更多相关文章
- Ubuntu18.04安装英伟达显卡驱动
前几天买了一张RTX2060显卡,想自学一下人工智能,跑一些图形计算,安装Ubuntu18.04后发现英伟达显卡驱动安装还是有点小麻烦,所以这里记录一下安装过程,以供参考: 1.卸载系统里低版本的英伟 ...
- Ubuntu无法安装 英伟达显卡
安装Ubuntu无法正常驱动英伟达,这时需要在启动参数中添加nomodset 如果不会添加参数可以参考这篇文章:安装ubuntu时黑屏三种解决办法
- Windows Installer服务总是自动关闭导致无法安装在win10上安装英伟达显卡驱动的解决方案
你可以依次点击"开始→程序→附件→命令提示符",键入:msiexec /unregister, 然后再键入msiexec /regserver.应该就能解决. 更多的参考:How ...
- deepin20 安装英伟达闭源驱动
第一步.安装深度的"显卡驱动器" 在deepin v20 中默认没有显卡驱动管理器,需要命令行安装,命令如下(刚开始一直出错,当我第一次打开应用商店,就可以安装了,好神奇): su ...
- 【并行计算-CUDA开发】从熟悉到精通 英伟达显卡选购指南
举报 说到显卡,就不免令人想到英伟达和AMD两家面向个人消费级和企业级最大的显示芯片生产企业,英伟达和AMD,今天小编为大家简单的介绍一下英伟达的显卡选购方面的攻略,为一些想要购买显卡的用户提供一些参 ...
- debian 10安装英伟达独显驱动
我的显卡是GTX1050TI,刚安装好Debian 10的时候启动会黑屏,无法进入系统,解决办法是在grub界面,按e修改启动参数,在启动参数那一行(一般会包含quiet)后面加上 nouveau.m ...
- 银河麒麟v4_sp4安装英伟达驱动
bios设置视频输出为auto模式 视频线插独立显卡上 先dpkg 安装两个deb包 1.禁用开源驱动:sudo vim /etc/modprobe.d/blacklist.conf,在里面添加 bl ...
- CUDA学习笔记4:CUDA(英伟达显卡统一计算架构)代码运行时间测试
CUDA内核运行时间的测量函数 cudaEvent_t start1; cudaEventCreate(&start1); cudaEvent_t stop1; cudaEventCreate ...
- CUDA学习笔记2:CUDA(英伟达显卡统一计算架构)与已有的VS项目结合
一.步骤 1.先新建一个简单的控制台应用程序,项目名称为Mytest,如下图所示: 2.在项目中添加一个名为Test.cu文件,如下图所示: 3.在解决方案资源管理器中选择该项目并点击右键,在弹出的菜 ...
随机推荐
- .NET 云原生架构师训练营(模块二 基础巩固 消息队列 介绍与基础)--学习笔记
2.6.1 消息队列 -- 介绍 主要使用场景 队列的三种形式 消息队列的优点 主要使用场景 典型的异步处理 流量削锋 应用解耦 队列的三种形式 点对点 工作队列 发布与订阅 消息队列的优点 1.屏蔽 ...
- 用python做youtube自动化下载器 思路
目录 0. 思路 1.准备 i.savfrom.net 2. 探索并规划获取方式 i.总览 ii. 获取该网页取到下载url的请求 iii. 在本地获取请求 iv.解析请求结果 v.解析解密后的结果 ...
- 【项目实践】一文带你搞定Spring Security + JWT
以项目驱动学习,以实践检验真知 前言 关于认证和授权,R之前已经写了两篇文章: [项目实践]在用安全框架前,我想先让你手撸一个登陆认证 [项目实践]一文带你搞定页面权限.按钮权限以及数据权限 在这两篇 ...
- Docker-ce Centos8 笔记一:安装Docker-ce
Docker是一个建设企业及数据中心服务仓库的进程,通过裸金属机和虚拟机承载的MAC.windows和linux系统提供本地和远程软件服务,涉及应用软件镜像.系统镜像.虚拟化仓库(虚拟机).它承载着灵 ...
- 【SpringMVC】SpringMVC 响应数据
SpringMVC 响应数据 文章源码 返回值分类 返回值是字符串 Controller 方法返回字符串可以指定逻辑视图的名称,通过视图解析器解析为物理视图的地址. @Controller @Requ ...
- Centos7安装Jenkins和目录迁移
Centos7安装Jenkins和目录迁移 内容: 安装Jenkins和相关的配置 尝试目录迁移,模拟磁盘空间不足 1. 安装Jenkins和配置 安装 根据Jenkins的官方安装指引,安装步骤如下 ...
- SQL中的主键,候选键,外键,主码,外码
1.码=超键:能够唯一标识一条记录的属性或属性集. 标识性:一个数据表的所有记录都具有不同的超键 非空性:不能为空 有些时候也把码称作"键" 2.候选键=候选码:能够唯一标识一条记 ...
- docker 常用的容器命令
容器命令 # --name 给容器起名 # -p 端口映射 # -d 后台启动 # -it 交互模式启动 # 交互模式启动 # docker run -it 镜像名/id /bin/bash # do ...
- 关于QTableWidget中单元格拖拽实现
无重写函数实现单元格拖拽 缺点:需要额外设置一个记录拖拽起始行的私有成员变量和拖拽列的初始QList数据成员. 优点:无需重构函数,对于QT中信号和槽的灵活运用 信号和槽 // signal void ...
- pscp 从win10远程传输文件到centos7,多个虚拟机之间传文件
一.将下载的pscp.exe拷贝到C:\Windows\System32 上传文件 win10 --> linux1 C:\Users\xy>pscp C:\BaiduNetdiskDow ...