• 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,当然如果你没搞定回头看看错误信息;我的这个博文你不一定能够成功,至少我成功过了,切记不要根据网上的帖子乱搞。

  • 相关阅读:
    Java使用POI插件将数据以excel形式备份
    bzoj1611[Usaco2008 Feb]Meteor Shower流星雨*
    bzoj1603[Usaco2008 Oct]打谷机*
    bzoj1599[Usaco2008 Oct]笨重的石子*
    bzoj1230[Usaco2008 Nov]lites 开关灯*
    bzoj4002[JLOI2015]有意义的字符串
    bzoj1613[Usaco2007 Jan]Running贝茜的晨练计划*
    bzoj1602[Usaco2008 Oct]牧场行走*
    bzoj1715[Usaco2006 Dec]Wormholes 虫洞*
    bzoj2442[Usaco2011 Open]修剪草坪*
  • 原文地址:https://www.cnblogs.com/evan-blog/p/10328187.html
Copyright © 2020-2023  润新知