cuda 订阅
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。 展开全文
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
信息
外文名
CUDA
类    别
运算平台
适用领域
计算机
中文名
统一计算设备架构
组    成
ISA、GPU
推出者
NVIDIA
CUDA应用范围
计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA™(英伟达™)发明了CUDA(Compute Unified Device Architecture,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。该架构已应用于GeForce™(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上,对应用程序开发人员来说,这是一个巨大的市场。在消费级市场上,几乎每一款重要的消费级视频应用程序都已经使用CUDA加速或很快将会利用CUDA来加速,其中不乏Elemental Technologies公司、MotionDSP公司以及LoiLo公司的产品。 在科研界,CUDA一直受到热捧。例如,CUDA现已能够对AMBER进行加速。AMBER是一款分子动力学模拟程序,全世界在学术界与制药企业中有超过60,000名研究人员使用该程序来加速新药的探索工作。在金融市场,Numerix以及CompatibL针对一款全新的对手风险应用程序发布了CUDA支持并取得了18倍速度提升。Numerix为近400家金融机构所广泛使用。CUDA的广泛应用造就了GPU计算专用Tesla GPU的崛起。全球财富五百强企业已经安装了700多个GPU集群,这些企业涉及各个领域,例如能源领域的斯伦贝谢与雪佛龙以及银行业的法国巴黎银行。随着微软Windows 7与苹果Snow Leopard操作系统的问世,GPU计算必将成为主流。在这些全新的操作系统中,GPU将不仅仅是图形处理器,它还将成为所有应用程序均可使用的通用并行处理器。
收起全文
精华内容
下载资源
问答
  • CUDA

    千次阅读 2012-02-21 17:12:32
    CUDA(Compute Unified Device Architecture),显卡厂商NVidia推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行...
     
    

    CUDA(Compute Unified Device Architecture),显卡厂商NVidia推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。 将来还会支持其它语言,包括FORTRAN以及C++。

    简介

      计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA®(英伟达™)发明了CUDA(Compute Unified Device Architecture,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。现在,该架构现已应用于GeForce®(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上,对应用程序开发人员来说,这是一个巨大的市场。
      在消费级市场上,几乎每一款重要的消费级视频应用程序都已经使用CUDA加速或很快将会利用CUDA来加速,其中不乏Elemental Technologies公司、MotionDSP公司以及LoiLo公司的产品。
      在科研界,CUDA一直受到热捧。例如,CUDA现已能够对AMBER进行加速。AMBER是一款分子动力学模拟程序,全世界在学术界与制药企业中有超过60,000名研究人员使用该程序来加速新药的探索工作。
      在金融市场,Numerix以及CompatibL针对一款全新的对手风险应用程序发布了CUDA支持并取得了18倍速度提升。Numerix为近400家金融机构所广泛使用。
      CUDA的广泛应用造就了GPU计算专用Tesla GPU的崛起。全球财富五百强企业现在已经安装了700多个GPU集群,这些企业涉及各个领域,例如能源领域的斯伦贝谢与雪佛龙以及银行业的法国巴黎银行
      随着微软Windows 7与苹果Snow Leopard操作系统的问世,GPU计算必将成为主流。在这些全新的操作系统中,GPU将不仅仅是图形处理器,它还将成为所有应用程序均可使用的通用并行处理器。

    背景

      计算正在从CPU"中央处理"向CPU与GPU"协同处理"的方向发展。 为了实现这一新型计算模式,英伟达发明了英伟达™ CUDA™ 并行计算架构。该架构现在正运用于英伟达™ (NVIDIA) Tesla™、英伟达™ Quadro (NVIDIA Quadro) 以及英伟达™ 精视™ (NVIDIA GeForce) GPU上。对应用程序开发商来说,英伟达™ CUDA™ 架构拥有庞大的用户群。
      在科学研究领域,英伟达™ CUDA™ 受到狂热追捧。 例如,英伟达™ CUDA™ 能够加快AMBER这款分子动力学模拟程序的速度。全球有6万余名学术界和制药公司的科研人员使用该程序来加速新药开发。 在金融市场,Numerix和CompatibL已宣布在一款对手风险应用程序中支持英伟达™ CUDA™ ,而且因此实现了18倍速度提升。
      在GPU计算领域中,英伟达™ Tesla™ GPU的大幅增长说明了英伟达™ CUDA™ 正被人们广泛采用。 目前,全球《财富》五百强企业已经安装了700多个GPU集群,从能源领域中的斯伦贝谢和雪佛龙到银行业中的法国巴黎银行,这些企业的范围十分广泛。

    发展历程

      随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。
      目前只有G80、G92、G94、G96、GT200、GF100、GF110平台(即Geforce 8~Gecorce GTX590)的NVidia显卡才能使用CUDA,工具集的核心是一个C语言编译器。G80中拥有128个单独的ALU,因此非常适合并行计算,而且数值计算的速度远远优于CPU。
      CUDA的SDK中的编译器和开发平台支持Windows、Linux系统,可以与Visual Studio2005集成在一起。
      Geforce8CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。
      从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动(表2)。
      开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库——CUFFT(离散快速傅立叶变换)和CUBLAS(离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外,开发人员也可以在CUDA的技术基础上实现出更多的开发库。
      运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的宿主代码(Host Code),一种是运行在GPU上的设备代码(Device Code)。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同,因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU开发中所需要的功能和能够使用到的资源接口,开发人员可以通过运行期环境的编程接口实现各种类型的计算。
      由于目前存在着多种GPU版本的NVidia显卡,不同版本的GPU之间都有不同的差异,因此驱动部分基本上可以理解为是CUDA-enable的GPU的设备抽象层,提供硬件设备的抽象访问接口。CUDA提供运行期环境也是通过这一层来实现各种功能的。目前基于CUDA开发的应用必须有NVIDIA CUDA-enable的硬件支持,NVidia公司GPU运算事业部总经理Andy Keane在一次活动中表示:一个充满生命力的技术平台应该是开放的,CUDA未来也会向这个方向发展。由于CUDA的体系结构中有硬件抽象层的存在,因此今后也有可能发展成为一个通用的GPGPU标准接口,兼容不同厂商的GPU产品

    CUDA™ 工具包

      是一种针对支持CUDA功能的GPU(图形处理器)的C语言开发环境。CUDA开发环境包括:

    · nvcc C语言编译器

      · 适用于GPU(图形处理器)的CUDA FFT和BLAS库

    · 分析器

      · 适用于GPU(图形处理器)的gdb调试器(在2008年3月推出alpha版)
      · CUDA运行时(CUDA runtime)驱动程序(目前在标准的NVIDIA GPU驱动中也提供)

    CUDA编程手册

      CUDA开发者软件开发包(SDK)提供了一些范例(附有源代码),以帮助使用者开始CUDA编程。这些范例包括:
      · 并行双调排序
      · 矩阵乘法
      · 矩阵转置
      · 利用计时器进行性能评价
      · 并行大数组的前缀和(扫描)
      · 图像卷积
      · 使用Haar小波的一维DWT
      · OpenGL和Direct3D图形互操作示例
      · CUDA BLAS和FFT库的使用示例
      · CPU-GPU C—和C++—代码集成
      · 二项式期权定价模型
      · Black-Scholes期权定价模型
      · Monte-Carlo期权定价模型
      · 并行Mersenne Twister(随机数生成)
      · 并行直方图
      · 图像去噪
      · Sobel边缘检测滤波器
      · MathWorks MATLAB®
      新的基于1.1版CUDA的SDK 范例现在也已经发布了。

    技术功能

      · 在GPU(图形处理器)上提供标准C编程语言
      · 为在支持CUDA的NVIDIA GPU(图形处理器)上进行并行计算而提供了统一的软硬件解决方案
      · CUDA兼容的GPU(图形处理器)包括很多:从低功耗的笔记本上用的GPU到高性能的,多GPU的系统。
      · 支持CUDA的GPU(图形处理器)支持并行数据缓存和线程执行管理器
      · 标准FFT(快速傅立叶变换)和BLAS(基本线性代数子程序)数值程序库
      · 针对计算的专用CUDA驱动
      · 经过优化的,从中央处理器(CPU)到支持CUDA的GPU(图形处理器)的直接上传、下载通道
      · CUDA驱动可与OpenGL和DirectX图形驱动程序实现互操作
      · 支持Linux 32位/64位以及Windows XP 32位/64位 操作系统
      · 为了研究以及开发语言的目的,CUDA提供对驱动程序的直接访问,以及汇编语言级的访问

    其他信息

      NVIDIA进军高性能计算领域,推出了Tesla&CUDA高性能计算系列解决方案,CUDA技术,一种基于NVIDIA图形处理器(GPU)上全新的并行计算体系架构,让科学家、工程师和其他专业技术人员能够解决以前无法解决的问题,作为一个专用高性能GPU计算解决方案,NVIDIA把超级计算能够带给任何工作站或服务器,以及标准、基于CPU的服务器集群
      CUDA是用于GPU计算的开发环境,它是一个全新的软硬件架构,可以将GPU视为一个并行数据计算的设备,对所进行的计算进行分配和管理。在CUDA的架构中,这些计算不再像过去所谓的GPGPU架构那样必须将计算映射到图形API(OpenGL和Direct 3D)中,因此对于开发者来说,CUDA的开发门槛大大降低了。CUDA的GPU编程语言基于标准的C语言,因此任何有C语言基础的用户都很容易地开发CUDA的应用程序。
      由于GPU的特点是处理密集型数据和并行数据计算,因此CUDA非常适合需要大规模并行计算的领域。目前CUDA除了可以用C语言开发,也已经提供FORTRAN的应用接口,未来可以预计CUDA会支持C++、Java、Python等各类语言。可广泛的应用在图形动画、科学计算、地质、生物、物理模拟等领域。
      2008年NVIDIA推出CUDA SDK2.0版本,大幅提升了CUDA的使用范围。使得CUDA技术愈发成熟

    目前

      支持CUDA的GPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。 目前市面上已经部署了超过一亿颗支持CUDA的GPU,数以千计的软件开发人员正在使用免费的CUDA软件工具来为各种应用程序加速。
      CUDA 的核心有三个重要抽象概念: 线程组层次结构、共享存储器、屏蔽同步( barrier
      synchronization),可轻松将其作为C 语言的最小扩展级公开给程序员。
      CUDA 软件堆栈由几层组成,一个硬件驱动程序,一个应用程序编程接口(API)
      和它的Runtime, 还有二个高级的通用数学库,CUFFT 和CUBLAS。硬件被设计成支持轻
      量级的驱动和Runtime 层面,因而提高性能。
      所支持的OS(operating system)
      CUDA目前支持linux和Windows操作系统。进行CUDA开发需要依次安装驱动、toolkit、SDK三个软件。在安装目录/C/src目录下有很多的例程可以进行学习。
    展开全文
  • Linux安装CUDA的正确姿势

    万次阅读 多人点赞 2018-08-20 23:12:39
    Linux安装CUDA的正确姿势 CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。 透过这个技术,用户可利用NVIDIA的GeForce 8以后的GPU和较...

    Linux安装CUDA的正确姿势

    CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。

    透过这个技术,用户可利用NVIDIAGeForce 8以后的GPU和较新的Quadro GPU进行计算。

    查看显卡是否支持CUDA

    输入下面命令查看电脑的NVIDIA型号:

    vincent@dell-Inspiron-7559 Dir:~
    ·····$lspci | grep -i nvidia
    02:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)
    

    我的显卡型号为: GeForce GTX 960M

    然后到官网查看是否支持CUDA网址地址

    下载CUDA文件

    下载最新的CUDA软件安装包, CUDA Toolkit 9.2 Download

    这里写图片描述

    我们选择runfile文件进行安装。然后放到一个目录下,要记住,后面我们会要执行它。

    确认安装环境

    1. NVIDIA显卡已经正常安装

    2. nouveau已经禁用

    可以使用下面命令查看,如果没有输出代表成功:

    lsmod | grep nouveau
    

    如果正确安装了NVIDIA的驱动就会禁止掉了。

    3. 验证系统是否安装了gcc

    终端输入下面命令查看是否安装:

    vincent@dell-Inspiron-7559 Dir:~
    ·····$gcc --version
    gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
    Copyright (C) 2017 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
    

    安装CUDA

    1. 进入tty界面

    alt + ctrl + F1进入tty命令行界面,登录用户和密码

    2. 关闭图形界面

    tty中输入下面命令关闭图形界面:

    sudo service lightdm stop
    

    或者

    sudo telinit 3
    

    3. 运行cuda文件

    首先给cuda可执行权限:

    sudo chmod a+x cuda_9.2_linux.run
    

    运行cuda文件:

    sudo ./cuda_9.2_linux.run --no-opengl-libs
    

    cuda主要有以下参数:

    • --no-opengl-libs:表示只安装驱动文件,不安装OpenGL文件。必需参数,原因同上。注意:不是-no-opengl-files
    • --uninstall (deprecated):用于卸载CUDA Driver(已废弃)。
    • --toolkit:表示只安装CUDA Toolkit,不安装DriverSamples
    • --help:查看更多高级选项。

    4. 安装过程的选项选择

    (1). 会先有个阅读声明,一直按D即可,然后accept
    (2). 选项install nvidia accelerated Graphics Driver,输入n,因为我们已经安装了nvidia的驱动。
    (3). 选项install the OpenGL libraries,如果双显卡(集显+独显)选择n,如果只有独显可以选择y,如果双显卡选择y的话,会出现黑屏或者循环登录的问题,如果加了上面的参数就不会出现这个选项了。
    (4). 后面的可以都选择yes,最后一个选项我们可以选择n,也就是不复制Samples,因为安装目录下有samples

    安装过程结束后会有以下信息:

    Driver :Installed
    Toolkit :Installed in /usr/local/cuda-9.2
    Samples :Installed in /home/vincent
    

    代表安装完成,但是不代表成功。这时需要重启。

    5. 验证cuda是否成功安装

    重启进入界面,打开终端输入:

    export PATH="/usr/local/cuda-9.2/bin:$PATH" 
    export LD_LIBRARY_PATH="/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH" 
    

    这两条命令是将cudabin文件和lib导出到系统环境中。
    如果安装的版本不是一样的,更换路径中的cuda-9.2

    (1). 终端输入:

    nvcc -V
    

    如果有CUDA的版本信息代表正常。

    (2). 编译samples例子

    #编译并测试设备 deviceQuery:
    cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
    sudo make
    ./deviceQuery
    
    #编译并测试带宽 bandwidthTest:
    cd ../bandwidthTest
    sudo make
    ./bandwidthTest
    

    如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功啦。

    备注:
    如果安装失败,有可能是缺少依赖,终端执行:

    sudo apt-get install freeglut3-dev \
    build-essential \
    libx11-dev \
    libxmu-dev \
    libxi-dev \
    libgl1-mesa-glx \
    libglu1-mesa \
    libglu1-mesa-dev
    

    (6). 将cudabinlib写入系统环境

    打开~.bashrc文件在末尾追加两句:

    export CUDA_HOME=/usr/local/cuda-9.2
    export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
    export PATH=/usr/local/cuda-9.2/bin:$PATH
    

    然后退出重新打开终端即可。

    CUDA卸载

    CUDA默认安装在 /usr/local/cuda-9.2下,用下面的命令卸载::

    sudo /usr/local/cuda-9.2/bin/uninstall_cuda-9.2.pl
    

    NVIDIA驱动卸载:

    sudo /usr/bin/nvidia-uninstall
    

    卸载过程一路都是yes

    其他问题

    1. 如果出现循环登录

    alt + ctrl + F1进入tty,然后切换集显:

    sudo  prime-select intel
    

    卸载cuda文件:

    sudo /usr/local/cuda-9.2/bin/uninstall_cuda_9.2.pl
    

    如果重启之后还是不能进入,那就把nvidia驱动卸载:

    sudo /usr/bin/nvidia-uninstall
    

    也可以在启动时选择Advanced然后以root方式进入系统,卸载nvidia、cuda等软件。

    然后重启,如果重启黑屏,在grub界面进入linux的选择上按e键,找到quiet splash,在后面加nouveau.modeset=0,然后按F10启动。
    然后安装nvidia驱动,再安装CUDA软件。

    2.gcc版本校验失败
    如果安装cuda过程中出现

    Failed to verify gcc version
    

    那么很有可能你的gcc版本太高,例如:cuda 10.1要求gcc版本是7.3.0,但是ubuntu 20.04/linux mint 20默认gcc版本为9.3.0,所以可以增加下面参数安装。

    sudo sh cuda_10.1.243_418.87.00_linux.run --override
    

    END

    展开全文
  • tensorflow各个版本的CUDA以及Cudnn版本对应关系

    万次阅读 多人点赞 2019-04-08 14:50:34
    CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。 CUDA的本质是一个工具包(ToolKit);但是二者...

     

    概述,需要注意以下几个问题:

    (1)NVIDIA的显卡驱动程序和CUDA完全是两个不同的概念哦!CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。

    CUDA的本质是一个工具包(ToolKit);但是二者虽然不一样的。

    显卡驱动的安装:

    当我们使用一台电脑的时候默认的已经安装了NVIDIA的显卡驱动,因为没有显卡驱动根本用不了显卡嘛,但是这个时候我们是没有CUDA可以用的,我们可以更新我们的驱动,更新链接为:

    https://www.nvidia.com/Download/index.aspx?lang=en-us

    在这个里面可以根据自己的显卡类型选择最新的驱动程序。显卡驱动程序当前大小大概500多M。

    CUDA ToolKit的安装:

    CUDA的下载地址为:https://developer.nvidia.com/cuda-downloads

    我们可以选择两种安装方式,一种是在线安装(我还没用过),一中离线安装(我采用的)即本地安装,

    当我们选择离线安装,当我们选定相对应的版本之后,下载的时候发现这个地方的文件大小大概在2G左右,Linux系统下面我们选择runfile(local) 完整安装包从本地安装,或者是选择windows的本地安装。CUDA Toolkit本地安装包时内含特定版本Nvidia显卡驱动的,所以只选择下载CUDA Toolkit就足够了,如果想安装其他版本的显卡驱动就下载相应版本即可

    所以,NVIDIA显卡驱动和CUDA工具包本身是不具有捆绑关系的,也不是一一对应的关系,只不过是离线安装的CUDA工具包会默认携带与之匹配的最新的驱动程序。

    注意事项NVIDIA的显卡驱动器与CUDA并不是一一对应的哦,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,比如我的电脑上同事安装了 CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了,但是由于使用离线的CUDA总是会捆绑CUDA和驱动程序,所以在使用多个CUDA的时候就不要选择离线安装的CUDA了,否则每次都会安装不同的显卡驱动,这不太好,我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。

    总结:CUDA和显卡驱动是没有一一对应的。

    (2)cuDNN是一个SDK,是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。

    总结:cuDNN与CUDA没有一一对应的关系

    (3)CUDA 工具包附带的 CUPTI

     CUPTI,即CUDA Profiling Tools Interface (CUPTI)。CUDA分析工具接口(CUPTI)能够分析和跟踪靶向CUDA应用程序的工具的创建。CUPTI提供以下API:

    • Activity API,
    • Callback API,
    • 事件API,
    • Metric API,和
    • Profiler API。

    使用这些API,您可以开发分析工具,深入了解CUDA应用程序的CPU和GPU行为。CUPTI作为CUDA支持的所有平台上的动态库提供。请参阅CUPTI文档。

    一、tensorflow各个版本需要的CUDA版本以及Cudnn的对应关系

    1.1 对应表格

    相应的网址为:

    https://www.tensorflow.org/install/source#common_installation_problems

    https://www.tensorflow.org/install/source_windows

    版本 Python 版本 编译器 编译工具 cuDNN CUDA
    tensorflow_gpu-2.0.0-alpha0 2.7、3.3-3.6 GCC 4.8 Bazel 0.19.2 7.4.1以及更高版本 CUDA 10.0 (需要 410.x 或更高版本)
    tensorflow_gpu-1.13.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.19.2 7.4 10.0
    tensorflow_gpu-1.12.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
    tensorflow_gpu-1.11.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
    tensorflow_gpu-1.10.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
    tensorflow_gpu-1.9.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.11.0 7 9
    tensorflow_gpu-1.8.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9
    tensorflow_gpu-1.7.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
    tensorflow_gpu-1.6.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
    tensorflow_gpu-1.5.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.8.0 7 9
    tensorflow_gpu-1.4.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.5.4 6 8
    tensorflow_gpu-1.3.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5 6 8
    tensorflow_gpu-1.2.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.5 5.1 8
    tensorflow_gpu-1.1.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
    tensorflow_gpu-1.0.0 2.7、3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8

    现在NVIDIA的显卡驱动程序已经更新到 10.1版本,最新的支持CUDA 10.1版本的cuDNN为7.5.0

    1.2 CUDA的命名规则

    下面以几个例子来说

    (1)CUDA 9.2

    CUDA  9.2.148

    (2)CUDA 10.0

    CUDA 10.0.130.411.31(后面的411.31对应更具体的版本号)

    (3)CUDA 10.1

    CUDA 10.1.105.418.96(后面的418.96对应更具体的版本号)

    更多详细的请参考如下官网:

    https://developer.nvidia.com/cuda-toolkit-archive

    1.3 如何查看自己所安装的CUDA的版本:

    (1)直接在NVIDIA的控制面板里面查看NVCUDA.DLL的版本。

    注意:这里网上有很多说法是错误的,这个版本并不能绝对说明自己所安装的CUDA工具包一定这个版本

    (2)通过命令查看:nvcc -V 或者是nvcc --version都可以,但前提是添加了环境变量

    (3)直接通过文件查看,这里分为Linux和windows两种情况

    在windows平台下,可以直接进入CUDA的安装目录,比如我的是:

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2   里面有一个version.txt的文本文件,直接打开即可,也可以使用命令,即

    首先进入到安装目录,然后执行:type version.txt 即可查看

    在Linux平台下:

    同windows类似,进入到安装目录,然后执行  cat version.txt 命令

    1.4 如何查看自己的cuDNN的版本

    因为cuDNN本质上就是一个C语言的H头文件,

    (1)在windows平台下:

    直接进入安装目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include  之下,然后找到

    cudnn.h 的头文件,直接到开查看,在最开始的部分会有如下定义:

    #define CUDNN_MAJOR 7
    #define CUDNN_MINOR 5
    #define CUDNN_PATCHLEVEL 0
    
    #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

    即7500,也就是cudnn的版本为7.5.0版本;

    (2)在Linux下当然也可以直接查看,但是通过命令更简单,进入到安装目录,执行如下命令:

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  即可查询

    即5005,即5.0.5版本的cudnn。

     二、CUDA与相对应的Cudnn对应关系

    Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0

    Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.2

    Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.0

    Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 10.0

    Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.2

    Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.0

    Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 10.0

    Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.2

    Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.0

    Download cuDNN v7.3.0 (Sept 19, 2018), for CUDA 10.0

    Download cuDNN v7.3.0 (Sept 19, 2018), for CUDA 9.0

    Download cuDNN v7.2.1 (August 7, 2018), for CUDA 9.2

    Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.2

    Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0

    Download cuDNN v7.1.4 (May 16, 2018), for CUDA 8.0

    Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.1

    Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.0

    Download cuDNN v7.1.3 (April 17, 2018), for CUDA 8.0

    Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.1 & 9.2

    Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.0

    Download cuDNN v7.0.5 (Dec 11, 2017), for CUDA 9.1

    Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0

    Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 8.0

    Download cuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0

    Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0

    Download cuDNN v6.0 (April 27, 2017), for CUDA 7.5

    Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0

    Download cuDNN v5.1 (Jan 20, 2017), for CUDA 7.5

    Download cuDNN v5 (May 27, 2016), for CUDA 8.0

    Download cuDNN v5 (May 12, 2016), for CUDA 7.5

    Download cuDNN v4 (Feb 10, 2016), for CUDA 7.0 and later.

    Download cuDNN v3 (September 8, 2015), for CUDA 7.0 and later.

    Download cuDNN v2 (March 17,2015), for CUDA 6.5 and later.

    Download cuDNN v1 (cuDNN 6.5 R1)

    三、NVIDIA显卡以及对应的显卡驱动的对应关系

    由于NVIDIA存在多个系列的显卡类型,把这里仅仅显示出GeForce系列的显卡以及各个显卡的计算能力(compute capability),详情可以参考官网链接:

    https://developer.nvidia.com/cuda-gpus

    (1)GeForce Desktop Products

    GPU Compute Capability
    NVIDIA TITAN RTX 7.5
    Geforce RTX 2080 Ti 7.5
    Geforce RTX 2080 7.5
    Geforce RTX 2070 7.5
    Geforce RTX 2060 7.5
    NVIDIA TITAN V 7.0
    NVIDIA TITAN Xp 6.1
    NVIDIA TITAN X 6.1
    GeForce GTX 1080 Ti 6.1
    GeForce GTX 1080 6.1
    GeForce GTX 1070 6.1
    GeForce GTX 1060 6.1
    GeForce GTX 1050 6.1
    GeForce GTX TITAN X 5.2
    GeForce GTX TITAN Z 3.5
    GeForce GTX TITAN Black 3.5
    GeForce GTX TITAN 3.5
    GeForce GTX 980 Ti 5.2
    GeForce GTX 980 5.2
    GeForce GTX 970 5.2
    GeForce GTX 960 5.2
    GeForce GTX 950 5.2
    GeForce GTX 780 Ti 3.5
    GeForce GTX 780 3.5
    GeForce GTX 770 3.0
    GeForce GTX 760 3.0
    GeForce GTX 750 Ti 5.0
    GeForce GTX 750 5.0
    GeForce GTX 690 3.0
    GeForce GTX 680 3.0
    GeForce GTX 670 3.0
    GeForce GTX 660 Ti 3.0
    GeForce GTX 660 3.0
    GeForce GTX 650 Ti BOOST 3.0
    GeForce GTX 650 Ti 3.0
    GeForce GTX 650 3.0
    GeForce GTX 560 Ti 2.1
    GeForce GTX 550 Ti 2.1
    GeForce GTX 460 2.1
    GeForce GTS 450 2.1
    GeForce GTS 450* 2.1
    GeForce GTX 590 2.0
    GeForce GTX 580 2.0
    GeForce GTX 570 2.0
    GeForce GTX 480 2.0
    GeForce GTX 470 2.0
    GeForce GTX 465 2.0
    GeForce GT 740 3.0
    GeForce GT 730 3.5
    GeForce GT 730 DDR3,128bit 2.1
    GeForce GT 720 3.5
    GeForce GT 705* 3.5
    GeForce GT 640 (GDDR5) 3.5
    GeForce GT 640 (GDDR3) 2.1
    GeForce GT 630 2.1
    GeForce GT 620 2.1
    GeForce GT 610 2.1
    GeForce GT 520 2.1
    GeForce GT 440 2.1
    GeForce GT 440* 2.1
    GeForce GT 430 2.1
    GeForce GT 430* 2.1

    (2)GeForce Notebook Products(笔记本电脑)

    GPU Compute Capability
    Geforce RTX 2080 7.5
    Geforce RTX 2070 7.5
    Geforce RTX 2060 7.5
    GeForce GTX 1080 6.1
    GeForce GTX 1070 6.1
    GeForce GTX 1060 6.1
    GeForce GTX 980 5.2
    GeForce GTX 980M 5.2
    GeForce GTX 970M 5.2
    GeForce GTX 965M 5.2
    GeForce GTX 960M 5.0
    GeForce GTX 950M 5.0
    GeForce 940M 5.0
    GeForce 930M 5.0
    GeForce 920M 3.5
    GeForce 910M 5.2
    GeForce GTX 880M 3.0
    GeForce GTX 870M 3.0
    GeForce GTX 860M 3.0/5.0(**)
    GeForce GTX 850M 5.0
    GeForce 840M 5.0
    GeForce 830M 5.0
    GeForce 820M 2.1
    GeForce 800M 2.1
    GeForce GTX 780M 3.0
    GeForce GTX 770M 3.0
    GeForce GTX 765M 3.0
    GeForce GTX 760M 3.0
    GeForce GTX 680MX 3.0
    GeForce GTX 680M 3.0
    GeForce GTX 675MX 3.0
    GeForce GTX 675M 2.1
    GeForce GTX 670MX 3.0
    GeForce GTX 670M 2.1
    GeForce GTX 660M 3.0
    GeForce GT 755M 3.0
    GeForce GT 750M 3.0
    GeForce GT 650M 3.0
    GeForce GT 745M 3.0
    GeForce GT 645M 3.0
    GeForce GT 740M 3.0
    GeForce GT 730M 3.0
    GeForce GT 640M 3.0
    GeForce GT 640M LE 3.0
    GeForce GT 735M 3.0
    GeForce GT 635M 2.1
    GeForce GT 730M 3.0
    GeForce GT 630M 2.1
    GeForce GT 625M 2.1
    GeForce GT 720M 2.1
    GeForce GT 620M 2.1
    GeForce 710M 2.1
    GeForce 705M 2.1
    GeForce 610M 2.1
    GeForce GTX 580M 2.1
    GeForce GTX 570M 2.1
    GeForce GTX 560M 2.1
    GeForce GT 555M 2.1
    GeForce GT 550M 2.1
    GeForce GT 540M 2.1
    GeForce GT 525M 2.1
    GeForce GT 520MX 2.1
    GeForce GT 520M 2.1
    GeForce GTX 485M 2.1
    GeForce GTX 470M 2.1
    GeForce GTX 460M 2.1
    GeForce GT 445M 2.1
    GeForce GT 435M 2.1
    GeForce GT 420M 2.1
    GeForce GT 415M 2.1
    GeForce GTX 480M 2.0
    GeForce 710M 2.1
    GeForce 410M 2.1

     

    展开全文
  • Ubuntu安装和卸载CUDA和CUDNN

    万次阅读 多人点赞 2018-06-14 12:08:15
    最近在学习PaddlePaddle在各个显卡驱动版本的安装和使用,所以同时也学习如何在Ubuntu安装和卸载CUDA和CUDNN,在学习过程中,顺便记录学习过程。在供大家学习的同时,也在加强自己的记忆。 卸载CUDA 为什么一...

    原文博客:Doi技术团队
    链接地址:https://blog.doiduoyi.com/authors/1584446358138
    初心:记录优秀的Doi技术团队学习经历

    目录

    前言

    最近在学习PaddlePaddle在各个显卡驱动版本的安装和使用,所以同时也学习如何在Ubuntu安装和卸载CUDA和CUDNN,在学习过程中,顺便记录学习过程。在供大家学习的同时,也在加强自己的记忆。本文章以卸载CUDA 8.0 和 CUDNN 7.05 为例,以安装CUDA 10.0 和 CUDNN 7.4.2 为例。

    安装显卡驱动

    禁用nouveau驱动

    sudo vim /etc/modprobe.d/blacklist.conf
    

    在文本最后添加:

    blacklist nouveau
    options nouveau modeset=0
    

    然后执行:

    sudo update-initramfs -u
    

    重启后,执行以下命令,如果没有屏幕输出,说明禁用nouveau成功:

    lsmod | grep nouveau
    

    下载驱动

    官网下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn ,根据自己显卡的情况下载对应版本的显卡驱动,比如笔者的显卡是RTX2070:
    在这里插入图片描述

    下载完成之后会得到一个安装包,不同版本文件名可能不一样:

    NVIDIA-Linux-x86_64-410.93.run
    

    卸载旧驱动

    以下操作都需要在命令界面操作,执行以下快捷键进入命令界面,并登录:

    Ctrl-Alt+F1
    

    执行以下命令禁用X-Window服务,否则无法安装显卡驱动:

    sudo service lightdm stop
    

    执行以下三条命令卸载原有显卡驱动:

    sudo apt-get remove --purge nvidia*
    sudo chmod +x NVIDIA-Linux-x86_64-410.93.run
    sudo ./NVIDIA-Linux-x86_64-410.93.run --uninstall
    

    安装新驱动

    直接执行驱动文件即可安装新驱动,一直默认即可:

    sudo ./NVIDIA-Linux-x86_64-410.93.run
    

    执行以下命令启动X-Window服务

    sudo service lightdm start
    

    最后执行重启命令,重启系统即可:

    reboot
    

    注意: 如果系统重启之后出现重复登录的情况,多数情况下都是安装了错误版本的显卡驱动。需要下载对应本身机器安装的显卡版本。

    卸载CUDA

    为什么一开始我就要卸载CUDA呢,这是因为笔者是换了显卡RTX2070,原本就安装了CUDA 8.0 和 CUDNN 7.0.5不能够正常使用,笔者需要安装CUDA 10.0 和 CUDNN 7.4.2,所以要先卸载原来的CUDA。注意以下的命令都是在root用户下操作的。

    卸载CUDA很简单,一条命令就可以了,主要执行的是CUDA自带的卸载脚本,读者要根据自己的cuda版本找到卸载脚本:

    sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
    

    卸载之后,还有一些残留的文件夹,之前安装的是CUDA 8.0。可以一并删除:

    sudo rm -rf /usr/local/cuda-8.0/
    

    这样就算卸载完了CUDA。

    安装CUDA

    安装的CUDA和CUDNN版本:

    • CUDA 10.0
    • CUDNN 7.4.2

    接下来的安装步骤都是在root用户下操作的。

    下载和安装CUDA

    我们可以在官网:CUDA10下载页面
    下载符合自己系统版本的CUDA。页面如下:
    在这里插入图片描述

    下载完成之后,给文件赋予执行权限:

    chmod +x cuda_10.0.130_410.48_linux.run
    

    执行安装包,开始安装:

    ./cuda_10.0.130_410.48_linux.run
    

    开始安装之后,需要阅读说明,可以使用Ctrl + C直接阅读完成,或者使用空格键慢慢阅读。然后进行配置,我这里说明一下:

    (是否同意条款,必须同意才能继续安装)
    accept/decline/quit: accept
    
    (这里不要安装驱动,因为已经安装最新的驱动了,否则可能会安装旧版本的显卡驱动,导致重复登录的情况)
    Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
    (y)es/(n)o/(q)uit: n
    
    Install the CUDA 10.0 Toolkit?(是否安装CUDA 10 ,这里必须要安装)
    (y)es/(n)o/(q)uit: y
    
    Enter Toolkit Location(安装路径,使用默认,直接回车就行)
     [ default is /usr/local/cuda-10.0 ]:  
    
    Do you want to install a symbolic link at /usr/local/cuda?(同意创建软链接)
    (y)es/(n)o/(q)uit: y
    
    Install the CUDA 10.0 Samples?(不用安装测试,本身就有了)
    (y)es/(n)o/(q)uit: n
    
    Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...(开始安装)
    

    安装完成之后,可以配置他们的环境变量,在vim ~/.bashrc的最后加上以下配置信息:

    export CUDA_HOME=/usr/local/cuda-10.0
    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
    export PATH=${CUDA_HOME}/bin:${PATH}
    

    最后使用命令source ~/.bashrc使它生效。

    可以使用命令nvcc -V查看安装的版本信息:

    test@test:~$ nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2018 NVIDIA Corporation
    Built on Sat_Aug_25_21:08:01_CDT_2018
    Cuda compilation tools, release 10.0, V10.0.130
    

    测试安装是否成功

    执行以下几条命令:

    cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
    make
    ./deviceQuery
    

    正常情况下输出:

    ./deviceQuery Starting...
    
     CUDA Device Query (Runtime API) version (CUDART static linking)
    
    Detected 1 CUDA Capable device(s)
    
    Device 0: "GeForce RTX 2070"
      CUDA Driver Version / Runtime Version          10.0 / 10.0
      CUDA Capability Major/Minor version number:    7.5
      Total amount of global memory:                 7950 MBytes (8335982592 bytes)
      (36) Multiprocessors, ( 64) CUDA Cores/MP:     2304 CUDA Cores
      GPU Max Clock rate:                            1620 MHz (1.62 GHz)
      Memory Clock rate:                             7001 Mhz
      Memory Bus Width:                              256-bit
      L2 Cache Size:                                 4194304 bytes
      Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
      Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
      Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 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:  1024
      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 3 copy engine(s)
      Run time limit on kernels:                     Yes
      Integrated GPU sharing Host Memory:            No
      Support host page-locked memory mapping:       Yes
      Alignment requirement for Surfaces:            Yes
      Device has ECC support:                        Disabled
      Device supports Unified Addressing (UVA):      Yes
      Device supports Compute Preemption:            Yes
      Supports Cooperative Kernel Launch:            Yes
      Supports MultiDevice Co-op Kernel Launch:      Yes
      Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
      Compute Mode:
         < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
    
    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1
    Result = PASS
    

    下载和安装CUDNN

    进入到CUDNN的下载官网:https://developer.nvidia.com/rdp/cudnn-download ,然点击Download开始选择下载版本,当然在下载之前还有登录,选择版本界面如下,我们选择cuDNN Library for Linux
    在这里插入图片描述

    下载之后是一个压缩包,如下:

    cudnn-10.0-linux-x64-v7.4.2.24.tgz 
    

    然后对它进行解压,命令如下:

    tar -zxvf cudnn-10.0-linux-x64-v7.4.2.24.tgz 
    

    解压之后可以得到以下文件:

    cuda/include/cudnn.h
    cuda/NVIDIA_SLA_cuDNN_Support.txt
    cuda/lib64/libcudnn.so
    cuda/lib64/libcudnn.so.7
    cuda/lib64/libcudnn.so.7.4.2
    cuda/lib64/libcudnn_static.a
    

    使用以下两条命令复制这些文件到CUDA目录下:

    cp cuda/lib64/* /usr/local/cuda-10.0/lib64/
    cp cuda/include/* /usr/local/cuda-10.0/include/
    

    拷贝完成之后,可以使用以下命令查看CUDNN的版本信息:

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
    

    测试安装结果

    到这里就已经完成了CUDA 10 和 CUDNN 7.4.2 的安装。可以安装对应的Pytorch的GPU版本测试是否可以正常使用了。安装如下:

    pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp35-cp35m-linux_x86_64.whl
    pip3 install torchvision
    

    然后使用以下的程序测试安装情况:

    import torch
    import torch.nn as nn
    import torch.nn.functional as F
    import torch.optim as optim
    import torch.backends.cudnn as cudnn
    from torchvision import datasets, transforms
    
    
    class Net(nn.Module):
        def __init__(self):
            super(Net, self).__init__()
            self.conv1 = nn.Conv2d(1, 10, kernel_size=5)
            self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
            self.conv2_drop = nn.Dropout2d()
            self.fc1 = nn.Linear(320, 50)
            self.fc2 = nn.Linear(50, 10)
    
        def forward(self, x):
            x = F.relu(F.max_pool2d(self.conv1(x), 2))
            x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
            x = x.view(-1, 320)
            x = F.relu(self.fc1(x))
            x = F.dropout(x, training=self.training)
            x = self.fc2(x)
            return F.log_softmax(x, dim=1)
    
    
    def train(model, device, train_loader, optimizer, epoch):
        model.train()
        for batch_idx, (data, target) in enumerate(train_loader):
            data, target = data.to(device), target.to(device)
            optimizer.zero_grad()
            output = model(data)
            loss = F.nll_loss(output, target)
            loss.backward()
            optimizer.step()
            if batch_idx % 10 == 0:
                print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
                    epoch, batch_idx * len(data), len(train_loader.dataset),
                           100. * batch_idx / len(train_loader), loss.item()))
    
    def main():
        cudnn.benchmark = True
        torch.manual_seed(1)
        device = torch.device("cuda")
        kwargs = {'num_workers': 1, 'pin_memory': True}
        train_loader = torch.utils.data.DataLoader(
            datasets.MNIST('../data', train=True, download=True,
                           transform=transforms.Compose([
                               transforms.ToTensor(),
                               transforms.Normalize((0.1307,), (0.3081,))
                           ])),
            batch_size=64, shuffle=True, **kwargs)
    
        model = Net().to(device)
        optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)
    
        for epoch in range(1, 11):
            train(model, device, train_loader, optimizer, epoch)
    
    
    if __name__ == '__main__':
        main()
    
    

    如果正常输出一下以下信息,证明已经安装成了:

    Train Epoch: 1 [0/60000 (0%)]	Loss: 2.365850
    Train Epoch: 1 [640/60000 (1%)]	Loss: 2.305295
    Train Epoch: 1 [1280/60000 (2%)]	Loss: 2.301407
    Train Epoch: 1 [1920/60000 (3%)]	Loss: 2.316538
    Train Epoch: 1 [2560/60000 (4%)]	Loss: 2.255809
    Train Epoch: 1 [3200/60000 (5%)]	Loss: 2.224511
    Train Epoch: 1 [3840/60000 (6%)]	Loss: 2.216569
    Train Epoch: 1 [4480/60000 (7%)]	Loss: 2.181396
    

    参考资料

    1. https://developer.nvidia.com
    2. https://www.cnblogs.com/luofeel/p/8654964.html

    深度学习与PyTorch实战

    展开全文
  • win10下CUDA和CUDNN的安装(超详细)!亲测有效!

    万次阅读 多人点赞 2018-10-04 21:13:34
    CUDA8安装配置 CUDA8的安装包可直接从NVIDIA官网下载。根据相应的系统选项,我选择的是cuda_8.0.61_win10.exe(大小为1.3G),安装的时候建议选择 自定义 而不是“精简”(从下面的英文解释可以看出,其实这里的精简写...
  • 1.cuda的安装  1.1 最简单的方法——分开安装驱动和cuda  1.2 更万能的方法——同时安装驱动和cuda  1.3 终极杀手锏 2.cudnn的安装 安装之前首先要确认你需要安装的cuda和cudnn的版本,假如你后续还需要...
  • ubuntu 18.04 安装GPU +CUDA+cuDNN : 目前,大多情况下,能搜到的基本上都ubuntu 14.04.或者是ubuntu 16.04的操作系统安装以及GPU 环境搭建过程,博主就目前自身实验室环境进行分析,总结一下安装过程。 1.实验室...
  • Win10安装CUDA10和cuDNN

    万次阅读 多人点赞 2018-10-12 15:50:48
    官方安装教程 CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html cuDNN:...WIN10安装CUDA10 CUDA ...
  • win10下pytorch-gpu安装以及CUDA详细安装过程

    万次阅读 多人点赞 2019-08-17 09:23:55
    win10下pytorch-gpu安装以及CUDA详细安装过程 1.Cuda的下载安装及配置 首先我们要确定本机是否有独立显卡。在计算机-管理-设备管理器-显示适配器中,查看是否有独立显卡。 可以看到本机有一个集成显卡和独立...
  • Ubuntu 16.04 上 CUDA_10.0及cuDNN的安装

    万次阅读 多人点赞 2019-05-16 13:00:14
    CUDA提供两种安装方式:package manager安装和runfile安装, package manager 安装方式相对简单一些,但是我在阅读别人博客的过程中发现选择这种方式在安装过程中问题可能多一点,失败的概率较大。为了减少不必要的...
  • 查看 CUDA cudnn 版本

    万次阅读 多人点赞 2017-08-01 15:27:09
    https://medium.com/@changrongko/nv-how-to-check-cuda-and-cudnn-version-e05aa21daf6ccuda 版本 cat /usr/local/cuda/version.txtcudnn 版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  • 如何查看windows的CUDA版本

    万次阅读 多人点赞 2019-04-12 00:25:59
    最近开始学习一些关于图像处理的计算机视觉...只需要我们自己选择相应的系统,下载使用的工具方式,python的版本,以及CUDA版本号,就可以获得到相应的命令进行下载安装。 这时遇到一个问题,CUDA是什么? CUDA(C...
  • tensorflow CUDA cudnn 版本对应关系

    万次阅读 多人点赞 2018-07-14 15:23:52
    linux下: windows下: 上面两张图是在这里找到的:...CUDA 下载地址点击打开链接 cudnn 下载地址(需要注册账号)点击打开链接 tensorflow-cpu 下载地址点击打开链接 te...
  • win10 卸载cuda

    万次阅读 2018-12-17 18:55:15
    对于cuda8.0、cuda7.5的卸载都可以兼容 安装cuda9.0之后,电脑原来的NVIDIA图形驱动会被更新,NVIDIA Physx系统软件也会被更新(安装低版cuda可能不会被更新)。卸载时候要注意了,别动这2个。 2.卸载 1.前言 杀毒...
  • cuda编程资源

    万次阅读 2019-12-13 09:32:21
    cuda编程资料: 1.本人觉得cuda最好的学习例子是安装cuda后此路径下的资料最好: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0 此目录中包含了很多cuda的例子,而且其提供的解决方案会比网上查找到的同类...
  • CUDA安装

    万次阅读 2019-09-05 15:24:14
    CUDA安装 一、查看支持CUDA的GPU显卡型号:https://developer.nvidia.com/cuda-gpus 二、下载CUDA:https://developer.nvidia.com/cuda-toolkit-archive 1、运行cuda_10.0.130_411.31_win10.exe。安装程序会自动...
  • Windows查看CUDA版本

    万次阅读 多人点赞 2018-07-04 22:27:04
    方法1: 进入以下目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA 即可安装的CUDA版本 方法2: 打开cmd,输入 nvcc –version
  • 不同论文用的cuda版本经常不一样,如何在不同的cuda版本之间自由切换。重新配置配置太麻烦了,所以需要同时安装多个cuda,但window安装一个版本后,安装另一个过程中会自动删除前面版本。 下面是最简单的切换方式 ...
  • cuda安装教程+cudnn安装教程

    万次阅读 多人点赞 2018-11-19 12:21:45
    cuda9.0+cudnn7.0安装教程   1、下载cuda9.0 下载链接:https://developer.nvidia.com/cuda-toolkit-archive   2、安装cuda 安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录; 临时...
  • CUDA-Ubuntu卸载cuda10.1

    千次阅读 2019-11-15 16:57:10
    综述 因为显卡版本问题我准备换cuda9.0 因此需要卸载cuda10.1 步骤 cd /usr/local/cuda/bin sudo ./cuda-uninstaller 删除即可
  • 成功解决torch.cuda.CudaError: CUDA driver version is insufficient for CUDA runtime version (35) [ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB:...
  • 卸载CUDA9安装CUDA8

    万次阅读 热门讨论 2018-07-15 14:37:53
    作者:teeyohuang ...但是发cuda9很难卸载干净,安装cuda8时又给我自动安装到cuda9去了,后来终于成功干净彻底地删除cuda9了,于是记录一下 亲测有效! 1.正常卸载操作 sudo apt-get --purge...
  • 因tensorflow版本的原因,现需要卸载原来的cuda8.0版本,重新安装cuda9.0版本。 一、卸载cuda8.0 使用cuda自带的卸载工具进行卸载。 cd /usr/local/cuda/bin sudo ./uninstall_cuda_9.0.pl 安装指示卸载即可。 ...
  • CUDA是什么-CUDA简介

    千次阅读 多人点赞 2020-03-10 11:15:18
    在大家开始深度学习时,几乎所有的入门教程都会提到CUDA这个词。那么什么是CUDA?她和我们进行深度学习的环境部署等有什么关系?通过查阅资料,我整理了这份简洁版CUDA入门文档,希望能帮助大家用最快的时间尽可能...
  • 如何查看CUDA版本和CUDNN版本

    万次阅读 2018-01-17 10:20:15
    cuda一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息 cat /usr/local/cuda/version.txt 即可查询 同理,cudnn的信息在其头文件里 cat /usr/local/cuda/include/...
  • cuda cudaMemcpy 函数

    2016-08-03 08:18:53
    cudaMemcpy的第三个参数是要拷贝数据的大小,如果这个大小小于我在gpu上分配的存储空间(第一个参数),会出现什么情况。
  • 昨天跑个程序,报了以下错误: libcudart.so.9.0: cannot open shared object file: No such file or directory ...后面查找知道torchvision0.3.0 支持的事cuda9,而不支持cuda10.0。 但一开始我并不想重装cuda。。...
  • cuda/cuda 10.1安装教程

    千次阅读 2020-03-09 15:53:00
    准备材料 下载地址&安装教程:...cuda 10.1 安装示例: #下载安装包 wget https://developer.download.nvidia.cn/compute/cuda/10.1/secure/Prod/local_installers/cuda_10.1.16...
  • CUDA入门

    万次阅读 2018-06-08 00:21:44
    CUDA简介 CUDA是NVIDIA发布的GPU上的并行计算平台和模型, 2006年第一代CUDA发布,截至2018年最新的是9代CUDA. hello cuda! __global__ void helloWorld() //__globa__是关键字 { printf("Hello ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,331
精华内容 32,532
关键字:

cuda