最近在家里过寒假,可能这是还在学校里带着最大的福利了,无意之中翻出了多年前买的几本关于CUDA编程的书,于是随便在自己电脑上配置了一下环境,试试能不能把当年没有看完的书给看完了,于是有了今天这个判断CUDA是否安装成功的一个博客。

原本按照自己以前的安装法子来配置环境,无奈开机后总是不成功,于是采用了Ubuntu默认的安装方式,即 apt-get nvidia-cuda-toolkit ,  安装好以后本打算着用CUDA自带的测试sample 来试试是否安装成功,无奈此种安装方式是不带sample的,于是采用如下步骤测试。

nvidia-setting

有了上图后可以确认NVIDIA的驱动已经安装好。

但是,这时出现了个比较神奇的事情,就是如下命令的失败:

nvidia-detector

该命令显示 显卡并没有被识别,而这恰恰和上图出现的结果相反,十分令人费解,于是继续探索。

lspci  | grep -i vga

该命令证明 NVIDIA 显卡也没有被识别,但这也是与第一个命令结果相反的,于是继续在网上搜索。

最后在无意中发现了这个 帖子:https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=14898

该帖子最后的一个回答解答了我的疑虑:

lspci |  egrep 'VGA|3D'

该结果清楚的显示我的电脑上的NVIDIA显卡已经被识别,验证了一个命令的驱动安装成功的结果。

由于此种安装方式并不会有自带的sample因此需要我自己去编写测试,这时在网上找到了这么一个demo,感觉不错,如下:

#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h> //初始化CUDA
int count=; bool InitCUDA()
{
printf("Start to detecte devices.........\n");//显示检测到的设备数 cudaGetDeviceCount(&count);//检测计算能力大于等于1.0 的设备数 if(count == )
{
fprintf(stderr, "There is no device.\n");
return false;
} printf("%d device/s detected.\n",count);//显示检测到的设备数 int i;
for(i = ; i < count; i++)
{//依次验证检测到的设备是否支持CUDA
cudaDeviceProp prop;
if(cudaGetDeviceProperties(&prop, i) == cudaSuccess)
{//获得设备属性并验证是否正确
if(prop.major >= )//验证主计算能力,即计算能力的第一位数是否大于1
{
printf("Device %d: %s supportsCUDA %d.%d.\n",i+,prop.name,prop.major,prop.minor);//显示检测到的设备支持的CUDA 版本
break;
}
}
} if(i == count)
{//没有支持CUDA1.x 的设备
fprintf(stderr, "There is no device supporting CUDA 1.x.\n");
return false;
} cudaSetDevice(i);//设置设备为主叫线程的当前设备
return true;
} int main()
{
if(!InitCUDA())
{//初始化失败返回系统int argc, char** argv
return ;
} printf("Hello GPU! CUDA has been initialized.\n"); //exit(argc ? EXIT_SUCCESS : EXIT_FAILURE);
return ;//返回系统
}

其中需要注意的一个问题是运行编译好的程序时需要使用  sudo ,  即使用管理员权限, 可能是在安装NVIDIA驱动和CUDA的时候本身就是安装使用管理员权限的,所以要调用它们的时候也是需要使用sudo来操作的。

CUDA 安装完成以后如何判断安装是否成功的更多相关文章

  1. caffe2+cuda+Ubuntu16.04(u盘安装)

    安装caffe2 预先准备.安装gflags及autoconf及GLOG https://github.com/caffe2/caffe2/issues/1810 一.下载源代码通过网盘 https: ...

  2. Mac下CUDA开启及Tensorflow-gpu 1.4 安装

    本文由@ray 出品,转载请注明出处.  文章链接:http://www.cnblogs.com/wolfray/p/8040694.html 在之前的文章中,笔者介绍了在Mac下安装Tensorfl ...

  3. shell脚本安装python、pip--这种写法是错误的---每一个命令执行完都要判断是否执行成功,否则无法进行下一步

    shell脚本安装python.pip--不需要选择安装项目--不管用总报错,必须带上判断符号,while没有这种用法,写在这里为了以后少走弯路,所以不要用下面的执行了 首先把pip-.tgz 安装包 ...

  4. 安装配置环境 CUDA以及CUDNN tensorflow pytorch pip安装 虚拟环境

    1.  在win10中利用Anaconda直接安装tensorflow-gpu 不需要另行安装cuda cudnn 但是不知道电脑会自动适配所需的版本吗,不过把电脑显卡驱动更新一下,就都也可以了吧. ...

  5. node安装express时找不到pakage.json文件;判断安装成功?

    正常安装命令:express install express --save 报错如下:no such file or directory,open 'C:\Users\Administrator\pa ...

  6. ubuntu14.04安装、NVIDIA显卡驱动安装及CUDA8.0、Cudnn5.1的环境搭建

    安装环境:hp-Z440工作站.64位Ubuntu14.04(64位Ubuntu16.04).Cuda8.0.Cudnn5.1.Nvidia GeForce GT 705.Tesla K40c 本文可 ...

  7. Anaconda安装Graphviz, mac下Graphviz安装, pcharm中调用pycharm, Graphviz典型例子

    mac下的Graphviz安装及使用 2017年10月13日 13:30:07 阅读数:7495 一.安装 Graphviz http://www.graphviz.org/ mac用户建议直接用ho ...

  8. 解决Bash On Ubuntu On Window安装Zsh无效问题附安装说明

    前言 Zsh是一款非常棒的Shell,使用Linux和Mac系统的人,基本上都知道zsh的存在. 问题 在安装完Zsh后,zsh是可以使用的,但是重启之后,又恢复至默认的bash. 我在安装好之后,使 ...

  9. centos 安装pip,使用pip安装django

    python版本要2.7.x以上版本,若未安装python执行以下命令安装: wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz ...

随机推荐

  1. Selenium IDE编辑区域修改操作学习

    1.修改command.target.value,选择需要修改的步骤,然后点击下方,既可以直接进行修改. 2.添加新的操作步骤:直接在下方编辑区域的下方点击,然后输入或者选择操作类型,然后点击Targ ...

  2. 如何使用OpenCart 2.x Event事件系统

    如何使用OpenCart 2.x Event事件系统 OpenCart 2.x 包含很多新特性,其中之一就是专为开发者提供的事件系统,Event System.它允许你在不修改原有系统代码的基础上( ...

  3. javascript数组总结

    数组是一个有序的集合,javascript数组中的元素的类型可以是任意的,同一个数组不同元素之间的类型也是可以不同的.数组也是对象,有个length属性,记录数组的长度. 创建数组有两种方法: 数组直 ...

  4. 探索C++虚函数在g++中的实现

    本文是我在追查一个诡异core问题的过程中收获的一点心得,把公司项目相关的背景和特定条件去掉后,仅取其中通用的C++虚函数实现部分知识记录于此. 在开始之前,原谅我先借用一张图黑一下C++: “无敌” ...

  5. Android实现录屏直播(一)ScreenRecorder的简单分析

    http://blog.csdn.net/zxccxzzxz/article/details/54150396 Android实现录屏直播(一)ScreenRecorder的简单分析 Android实 ...

  6. HashMap 遍历的两种方式及性能比较

    HashMap 是Java开发中经常使用的数据结构.相信HashMap 的基本用法你已经很熟悉了.那么我们该如何遍历HashMap 呢?哪种遍历方式的性能更好呢?本篇文章来为你解决这个疑惑. 一.Ha ...

  7. POJ 2486 Apple Tree(树形dp)

    http://poj.org/problem?id=2486 题意: 有n个点,每个点有一个权值,从1出发,走k步,最多能获得多少权值.(每个点只能获得一次) 思路: 从1点开始,往下dfs,对于每个 ...

  8. Codeforces Round #307 (Div. 2) C. GukiZ hates Boxes 二分

    C. GukiZ hates Boxes time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  9. 前端基础3:js篇(基础及算法)

    1.js闭包相关: 题1: for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); ...

  10. 一个产生临时图片Url的地方