最近在家里过寒假,可能这是还在学校里带着最大的福利了,无意之中翻出了多年前买的几本关于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. 跟我学Makefile(五)

    文件名操作函数 每个函数的参数字符串都会被当做一个或是一系列的文件名来对待. $(dir <names...>) 名称:取目录函数——dir. 功能:从文件名序列<names> ...

  2. cocos进阶教程(5)CC_CALLBACK_X系列的使用技巧

    CC_CALLBACK_1,CC_CALLBACK_2,CC_CALLBACK_3 这些都是std::bind的宏,数字1,2,3主要表示要占位的数量,也是将来传递参数的数量. // new call ...

  3. WebService-WSDL简单介绍

    一.什么是WSDL 网络服务描述语言(Web Services Description Language)简称WSDL.作用是通过接口之间的调用实现数据的传输.由于WSDL是基于XML格式的,所以它可 ...

  4. AtCoder Beginner Contest 114 Solution

    A 753 Solved. #include <bits/stdc++.h> using namespace std; ]; int main() { mp[] = mp[] = mp[] ...

  5. 使用 shell 脚本对 Linux 系统和进程资源进行监控

    Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...

  6. springcloud15---zuul-fallback

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...

  7. 对OpenCV中seamlessClone的初步实验

    seamlessClone是OpenCV中新出现的函数,应该说如果能够基于较为准确的图像分割,能够得到很好的结果. 原始的前景,背景 三种flag下的融合结果   //注意头文件中添加  #inclu ...

  8. 20145311 《Java程序设计》第七周学习总结

    20145311 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda Lambda表达式会使程序更加地简洁,在平行设计的时候,能够进行并行处理. 第十三章 时间与 ...

  9. #/bin/sh参数-e的含义

    注:本博客欢迎转载和引用,但请保留原作者信息! 一.背景 今天遇到一个诡异的问题,一旦脚本中判断$?为非零,那么脚本就会自动退出的情况,仔细调试脚本的逻辑,并没有发现错误,因此作此文 二.解决 既然要 ...

  10. IntelliJ IDEA 中配置lombok插件,编写简略风格Java代码

    1.打开IDEA的Settings面板,并选择Plugins选项,然后点击 “Browse repositories..” 2.开启注释处理 3.在pom.xml中添加lombox <!-- h ...