Note: Linux安装CUDA Toolkit & HOOMD BLUE

来源:互联网 发布:手机游戏优化器在哪 编辑:程序博客网 时间:2024/06/07 06:32

实验室去年就上了块nVIDIA K20,荒废了一年都没人用。今年寒假又进了块GTX 980,老板让把hoomd blue配置好,做GPU计算。

HOOMD BLUE是一个通用的分子模拟程序包,使用python格式的脚本,支持并行计算和GPU计算配置过程走了太多弯路,于是笔记如下。

以装K20的那台服务器(Linux发行版Cent OS 6.5)为例,下载HOOMD BLUE的包:官网上下载hoomd-1.0.1-0.x86_64.rpm,使用

yum localinstall hoomd-1.0.1-0.x86_64.rpm

安装,自动解决依赖问题。运行python,输入“import hoomd”,报错“ImportError: libmpi_cxx.so.1: cannot open shared object file: No such file or directory”找不到MPI库,需要配置环境变量:

find /usr -name libmpi_cxx.so.1

找到库的路径,添加到环境变量 $LD_LIBRARY_PATH 中。为了方便暴力在/etc/profile中加入一句:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/compat-openmpi/lib
现在运行官网给的示例脚本,hoomd test.hoomd,部分输出截取如下:Shell运行source /etc/profile使立即生效。

*Warning*: NVIDIA driver not installed or is too old, ignoring any GPUs in the system.

HOOMD-blue is running on the CPU

因为nVIDIA的驱动还没有装上。

先记得运行update-pciids更新设备信息,再用lspci | grep -i NVIDIA,出现“43:00.0 3D controller: NVIDIA Corporation GK110GL [Tesla K20c] (rev a1)”。到NVIDIA官网把驱动下载下来(在此),刚开始找还找不到,一看地址栏是geforce,还得到英文官网首页下找“All NVIDIA Drivers”

安装前关X,init 3进入字符界面,运行下载下来的.run,一路确定安装完成,再init 5进入图形界面,此时系统设置菜单中已多出一行NVIDIA X Server Settings,但是打开后报错说“You do not appear to be using the NVIDIA X Driver. Please edit your X configuration file”,就是说X不是用独显带的,可能是一些地方所说的nouveau搞的鬼,使用lsmod | grep nouveau确实能看到一堆服务,不过我们只拿GPU做计算,忽略之。

接下来安装cuda toolkit就蛋疼多了。按照官方给的文档(NVIDIA CUDA GETTING STARTED GUIDE FOR LINUX)的步骤一步一步来。先下载RPM包,目测这个rpm的作用就是添加nVIDIA的源;然后yum install cuda时果然报依赖性错——因为没有添加EPEL源。

网上给的方法:

1. 安装

rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

以上URL请按实际情况修改

2.查看是否安装成功

rpm -q epel-release
 3.导入key:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

4.修改/etc/yum.repos.d/epel.repo文件

在[epel]最后添加一条属性 priority=11

vi /etc/yum.repos.d/epel.repo

意思是yum先去官方源查,官方没有再去epel的源找

5.重建缓存

但是执行yum makecache时报错,"Cannot retrieve metalink for repository",搜索得解决方法为
sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

即把源的https网址换成http,目测是天杀的墙搞的鬼。

现在就可以使用yum install cuda了,然后便是漫长的下载。

完成后照例暴力添加环境变量:

export PATH=/usr/local/cuda-6.5/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

复制示例:

cuda-install-samples-6.5.sh

测试编译示例中的1_Utilities/deviceQuery,make编译通过,运行时却报错“No device in the query”--显卡又不见了。

折腾半天,重新安装显卡驱动解决。。。

再次此运行显示设备信息:

./deviceQuery Starting...    CUDA Device Query (Runtime API) version (CUDART static linking)   Detected 1 CUDA Capable device(s)   Device 0: "Tesla K20c"  CUDA Driver Version / Runtime Version          6.5 / 6.5  CUDA Capability Major/Minor version number:    3.5  Total amount of global memory:                 4800 MBytes (5032706048 bytes)  (13) Multiprocessors, (192) CUDA Cores/MP:     2496 CUDA Cores  GPU Clock rate:                                706 MHz (0.71 GHz)  Memory Clock rate:                             2600 Mhz  Memory Bus Width:                              320-bit  L2 Cache Size:                                 1310720 bytes  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers  Total amount of constant memory:               65536 bytes  Total amount of shared memory per block:       49152 bytes  Total number of registers available per block: 65536  Warp size:                                     32  Maximum number of threads per multiprocessor:  2048  Maximum number of threads per block:           1024  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)  Maximum memory pitch:                          2147483647 bytes  Texture alignment:                             512 bytes  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)  Run time limit on kernels:                     No  Integrated GPU sharing Host Memory:            No  Support host page-locked memory mapping:       Yes  Alignment requirement for Surfaces:            Yes  Device has ECC support:                        Enabled  Device supports Unified Addressing (UVA):      Yes  Device PCI Bus ID / PCI location ID:           67 / 0  Compute Mode:     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >   deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = Tesla K20cResult = PASS现在再测试HOOMD BLUE,终于显示为GPU模式了:qHOOMD-blue is running on the following GPU(s): [0]            Tesla K20c  13 SM_3.5 @ 0.706 GHz, 4799 MiB DRAM


先鼓捣的是GTX980的机器,中途还把系统弄坏了。cuda toolkit安装以后,图形界面进不去了;测试deviceQuery报错“nvidia-340uvm : no such file”,卸掉cuda之后重启干脆连系统都进不了了,屏幕直接卡在一堆形如------可是实测发现直接运行官网的示例脚本,GPU模式比CPU模式反而慢6倍,看来要发挥出GPU的性能还得好好看文档。

<内存地址信息> 不明所以的文字

这样的信息上。

PC上只有ubuntu的系统,于是给重装个ubuntu 14.04 LTS算了。

继续鼓捣,ubuntu的apt-get果然强大,不需要添加第三方源依赖问题就可解决,但安装完cuda toolkit之后图形界面又进不去了【死,

再次安装显卡驱动,一些恢复正常。。。

结论:Cuda Toolkit的安装默认会刷新显卡驱动,但这时装上的显卡驱动是废的,得重装新版本的驱动。GTX980在官网显示最老的可用驱动版本是343,而Cuda tolkit给装的是340版本,可能不可用,若此时再把旧驱动卸掉,整个显卡驱动就没了,重启就会导致系统死掉。


0 0
原创粉丝点击