Deepin15.4 下 CUDA 配置方法

Deepin15.4 下 CUDA 配置方法

deepin15.4不仅漂亮而且运行流畅,吸引了大批linuxer,其中也不乏搞cuda的小伙伴。但是有不少童鞋在deepin15.4下配置cuda遇到了困难,所以抽空写个博文说一下我配置的方法。主要针对电脑是intel 核显,nvidia显卡,需要运行cuda,并且有双显卡热切换需求的小朋友。


我的环境

先说一下我电脑的配置吧,大家的硬件环境不一样,我也没法一一测试。

  • CPU intel core i5 4210u
  • 显卡 nvidia gt840m
  • 系统 deepin 15.4 x64

目标

  1. 安装nvidia-bumblebee,实现双显卡切换

    对于笔记本用户来说,一直开着独显的话发热量会明显增大,并且耗电也会变快,所以需要安装bumblebee来切换显卡,平时只用核显就足够了,需要运行cuda或者玩游戏的话才开启独显。

  2. 安装cuda开发工具

    cuda在linux下的开发工具基本上够用了,有基于eclipse 的nsight,有visual profiler性能分析工具,还有pycuda库实现对python运算的加速。但是我以前在deepin上面尝试安装官方的.run包,均以失败告终,很容易把电脑搞崩溃。最近终于找到了从软件源直接安装cuda的方法。


具体安装方法

  1. 安装nvidia-bumblebee

    sudo apt update
    sudo apt install bumblebee bumblebee-nvidia nvidia-smi

    一行命令搞定nvidia驱动、bumblebee切换程序、和显卡状态监控程序。

    不用管nouveau驱动,系统会自己屏蔽掉。

    然后重启

    sudo reboot

    重启之后测试

    nvidia-smi

    optirun nvidia-smi

    如果出现如下界面,说明驱动安装成功
    这里写图片描述

  2. 安装cuda开发工具

    首先安装配置g++,gcc

    因为cuda版本原因,cuda8之前都只支持g++-4.8,gcc-4.8

    所以gcc需要降级

    sudo apt install g++-4.8 gcc-4.8

    然后更改软连接

    cd /usr/bin
    sudo rm gcc g++
    sudo ln -s g++-4.8 g++
    sudo ln -s gcc-4.8 gcc

    然后下载开发工具

    sudo apt install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-nsight nvidia-visual-profiler

    使用nsight的方法为:在终端下输入

    optirun nsight

    这里写图片描述

  3. 安装pycuda扩展

    有的同学有使用python 写cuda的需求,推荐pycuda,能够自定义核函数,并且里面带的GpuArray这个数据结构很好用安装方法为:

    sudo apt install python-pycuda

    写一个程序

    from __future__ import print_function
    from __future__ import absolute_import
    import pycuda.autoinit
    import pycuda.gpuarray as gpuarray
    import pycuda.driver as cuda
    import numpy
    import time
    
    free_bytes, total_bytes = cuda.mem_get_info()
    exp = 10
    while True:
       fill_floats = free_bytes / 4 - (1<<exp)
       if fill_floats < 0:
           raise RuntimeError("couldn't find allocatable size")
       try:
           print("alloc", fill_floats)
           ary = gpuarray.empty((fill_floats,), dtype=numpy.float32)
           break
       except:
           pass
    
       exp += 1
    
    ary.fill(float("nan"))
    
    print("filled %d out of %d bytes with NaNs" % (fill_floats*4, free_bytes))
    
    time.sleep(10)

    另存为python fill_gpu_with_nans.py

    然后

    optirun python python fill_gpu_with_nans.py

    这里写图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值