Deepin15.4 下 CUDA 配置方法
deepin15.4不仅漂亮而且运行流畅,吸引了大批linuxer,其中也不乏搞cuda的小伙伴。但是有不少童鞋在deepin15.4下配置cuda遇到了困难,所以抽空写个博文说一下我配置的方法。主要针对电脑是intel 核显,nvidia显卡,需要运行cuda,并且有双显卡热切换需求的小朋友。
我的环境
先说一下我电脑的配置吧,大家的硬件环境不一样,我也没法一一测试。
- CPU intel core i5 4210u
- 显卡 nvidia gt840m
- 系统 deepin 15.4 x64
目标
安装nvidia-bumblebee,实现双显卡切换
对于笔记本用户来说,一直开着独显的话发热量会明显增大,并且耗电也会变快,所以需要安装bumblebee来切换显卡,平时只用核显就足够了,需要运行cuda或者玩游戏的话才开启独显。
安装cuda开发工具
cuda在linux下的开发工具基本上够用了,有基于eclipse 的nsight,有visual profiler性能分析工具,还有pycuda库实现对python运算的加速。但是我以前在deepin上面尝试安装官方的.run包,均以失败告终,很容易把电脑搞崩溃。最近终于找到了从软件源直接安装cuda的方法。
具体安装方法
安装nvidia-bumblebee
sudo apt update sudo apt install bumblebee bumblebee-nvidia nvidia-smi
一行命令搞定nvidia驱动、bumblebee切换程序、和显卡状态监控程序。
不用管nouveau驱动,系统会自己屏蔽掉。
然后重启
sudo reboot
重启之后测试
nvidia-smi
和
optirun nvidia-smi
如果出现如下界面,说明驱动安装成功
安装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
安装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