1. NVIDIA驱动安装
前期工作
查看显卡信息 : lspci | grep -i vga。
添加ELRepo源 : rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安装ELRepo : rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
检测驱动的工具 : sudo yum install nvidia-detect
检测机器要安装的驱动型号 : nvidia-detect
noveau kernel driver 禁用
修改/usr/lib/modprobe.d/dist-blacklist.conf文件,添加
blacklist nouveau
options nouveau modeset=0
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
lsmod | grep nouveau 执行后没有反应即可。
下载驱动
查看https://www.geforce.cn/drivers,这个网站可以下载相应的驱动
#sudo ./NVIDIA-Linux-x86_64-410.78.run //这个版本太高,最好不要装这个
#nvidia-smi
#sudo sh NVIDIA-Linux-x86_64-410.78.run –uninstall 卸载NVIDIA驱动
note:出现下面的错误就是因为版本太高的因素
Unable to determine the device handle for GPU 0000:01:00.0: Unable to communicate with GPU because it is insuffy powered.
This may be because not all required external power cables are attached, or the attached cables are not seated properly.
解决方案:将原先的驱动卸载,安装一个低版本的驱动
CUDA安装
X Server是Gnome等桌面环境的基础,一个桌面环境通常包含了XDM(X Display Manager,通常的图形化用户登录界面就属于XDM)、窗口管理器(X Server显示的图形是没有“窗口”边框的,通过替换窗口管理器可以实现不同的视觉效果,比如实现3D效果的Compiz)等组件。进行图形显示并不需要桌面环境,只要有X Server即可。
安装CUDA:
#sudo sh cuda_8.0.61_375.26_linux.run
然后安装提示安装即可,注意如果已经安装驱动,那么就不需要在安装cuda的时候安驱动。
配置环境:
#export PATH=/home/zy/perl5/cuda-8.0/bin:$PATH
#export LD_LIBRARY_PATH=/home/zy/perl5/cuda-8.0/lib64:$LD_LIBRARY_PATH
检测是否配置好:
#cd samples/1_Utilities/deviceQuery
#sudo make
#sudo ./deviceQuery
出现下面的信息即可,
CUDNN安装
首先下载有关cudnn的相关包,
#tar -zxvf cudnn-8.0-linux-x64-v7.tgz 解压
#sudo cp cuda/include/cudnn.h /home/zy/perl5/cuda-8.0/include/ 将cudnn包复制到cuda中
#sudo cp cuda/lib64/libcudnn* /home/zy/perl5/cuda-8.0/lib64/
#sudo chmod a+r cudnn.h
#sudo chmod a+r ../lib64/libcudnn* cuda中对cudnn的文件添加读入权限
#cat /home/zy/perl5/cuda-8.0/include/cudnn.h | grep CUDNN_MAJOR -A 2 检测CUDNN的版本
检测CUDNN的版本
每日一码
输出前N个数的全部素数个数:prime2.cpp
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<sys/time.h>
#include<math.h>
using namespace std;
bool DeterminePrime(long number_){
for(long i = 2; i <= sqrt(number_); i++)
{
if(number_%i==0)
return true;
}
return false;
}
int main(int argc,char** argv){
if(argc == 1){
return -1;
}
long t1,t2,tmp;
t1 = tmp = time(NULL);
long number = atoi(argv[1]);
int count_n = 0;
int nnn=0;
for(long n = 2; n <= number; n++){
if(!DeterminePrime(n)){
count_n++;
}
if(n%1000000==0){
cout<<"The "<<nnn*1000000<<" - "<<(nnn+1)*1000000;
t2 = time(NULL);
cout<<" 1000000 number using time is "<<t2-tmp<<"s."<<" The total generator prime number is "<<count_n<<endl;
tmp = t2;
nnn++;
}
}
cout<<endl<<"The total prime has " <<count_n<<"."<<endl;
t2 = time(NULL);
cout<<"Total time is "<<t2-t1<<" s."<<endl;
}
编译运行: