k40做深度学习_k40 深度学习 - CSDN
  • 深度学习是机器学习的一个分支。深度学习通过深层神经网络自行寻找特征来解决问题,不同于传统方法需要告诉算法找什么样的特征。为获取数据的本质特征深度神经网络需要处理大量信息,一般有两种处理方式:CPU和GPU ...

    深度学习是机器学习的一个分支。深度学习通过深层神经网络自行寻找特征来解决问题,不同于传统方法需要告诉算法找什么样的特征。为获取数据的本质特征深度神经网络需要处理大量信息,一般有两种处理方式:CPU和GPU

    先抛出三个问题:

    1. 为什么深度学习需要使用GPU?

    2. GPU的哪些性能指标最重要?

    3. 如何选购GPU?

     

    CPU or GPU:

    CPU是基于延迟优化,更擅长快速获取少量的内存(5×3×7),GPU基于带宽优化,更擅长获取大量的内存(矩阵乘法A×B×C)。所以GPU的处理速度快得益于它可以高效的处理矩阵乘法和卷积,背后的原因是由高带宽的内存、多线程并行下的内存访问隐藏延迟、数量多且速度快的可调整的寄存器和L1缓存三大因素支撑。

    下图是处理器内部结构图:

    DRAM即动态随机存取存储器,是常见的系统内存。

    Cache存储器:电脑中作高速缓冲存储器,是位于CPU和主存储器DRAM之间,规模较小,但速度很高的存储器。

    算术逻辑单元ALU是能实现多组算术运算和逻辑运算的组合逻辑电路。

    当采用深度学习进行网络训练需要对大数据做同样的事情时,GPU更合适,能够专注于大量并发的浮点数计算。

     

    深度学习相关的GPU性能指标如下:

    • 内存带宽:GPU处理大量数据的能力,是最重要的性能指标,指单位时间内数据的吞吐量。
    • 处理能力:表示GPU处理数据的速度,可以量化为CUDA核数量和每一个核的频率的乘积。
    • 显存大小:一次性加载到显卡上的数据量,运行计算机视觉模型显存越大越好。

    Single GPU or Multi GPU:

    • 单GPU
    • 多GPU一般用于并行训练多个模型或者分布式训练单个模型。分布式训练或在多个显卡上训练单个模型的效率较低,但是此方法越来越受欢迎。主流的深度学习框架Tensorflow、Keras、PyTorch等都开放了分布式训练接口,分布式训练几乎可以随着GPU数量成线性的性能提升,比如两个GPU可以获得1.8倍的训练速度。
    • 总而言之,GPU越多需要越快的处理器并需要更快的数据读取能力的硬盘

     

    Nivda or AMD:

    英伟达已经关注深度学习有一段时间,并取得了领先优势。他们的 CUDA 工具包具备扎实的技术水平,可用于所有主要的深度学习框架——TensorFlow、PyTorch、Caffe、CNTK 等。但截至目前,这些框架都不能在 OpenCL(运行于 AMD GPU)上工作。由于市面上的 AMD GPU 便宜得多,我希望这些框架对 OpenCL 的支持能尽快实现。而且,一些 AMD 卡还支持半精度计算,从而能将性能和显存大小加倍。AMD 发布的 ROCm 平台提供深度学习支持,它同样适用于主流深度学习库(如 PyTorch、TensorFlow、MxNet 和 CNTK)。但是ROCm 仍然在不断开发中,所以优先选择Nivda的显卡。

     

    主流GPU的性能比较:

    下图展示了每个GPU的RAM或内存带宽信息。

    价格对比表明GTX1080Ti、GTX1070和GTX1060的性价比较高:

    Titan XP 英伟达消费级显卡的旗舰产品,正如性能指标所述,12GB 的内存宣示着它并不是为大多数人准备的,只有当你知道为什么需要它的时候,它才会位列推荐列表。一块 Titan XP 的价格可以让你买到两块 GTX 1080,而那意味着强大的算力和 16GB 的显存。参数:

    • 显存(VRAM):12GB
    • 内存带宽:547.7GB/s
    • 处理器:3840个CUDA核心@1480MHz
    • 官方价格:9700 RMB

    GTX 1080 Ti 英伟达产品线里的高端显卡,拥有大容量显存和高吞吐量,GTX 1080 Ti 可以让你完成计算机视觉任务,并在 Kaggle 竞赛中保持强势。参数:

    • 显存(VRAM):11GB
    • 内存带宽:484GB/s
    • 处理器:3584个CUDA核心@1582MHz
    • 单精度浮点性能:10.6-11.4TFLOPS
    • 官方价格:4600 RMB

    GTX 1080 英伟达产品线里的中高端显卡,8 GB 的内存对于计算机视觉任务来说够用了。大多数 Kaggle 上的人都在使用这款显卡。 参数:

    • 显存(VRAM):8GB
    • 内存带宽:320GB/s
    • 处理器:2560个CUDA核心@1733MHz
    • 单精度浮点性能:8.2-8.9TFLOPS
    • 官方价格:3600 RMB

    GTX 1070 Ti 可以为你提供同样大的 8 GB 显存,以及大约 80% 的性能。参数:

    • 显存(VRAM):8GB
    • 内存带宽:256GB/s
    • 处理器:2432个CUDA核心@1683MHz
    • 单精度浮点性能:7.8-8.2TFLOPS
    • 官方价格:3000 RMB

    GTX 1070 主要用于虚拟货币挖矿。它的显存配得上这个价位,就是速度有些慢。参数:

    • 显存(VRAM):8GB
    • 内存带宽:256GB/s
    • 处理器:1920个CUDA核心@1683MHz
    • 单精度浮点性能:5.8-6.5TFLOPS
    • 官方价格:2700 RMB

    GTX 1060 相对来说比较便宜,但是 6 GB 显存对于深度学习任务可能不够用。如果你要做计算机视觉,那么这可能是最低配置。如果做 NLP 和分类数据模型,这款还可以。参数:

    • 显存(VRAM):6GB
    • 内存带宽:216GB/s
    • 处理器:1280个CUDA核心@1708MHz
    • 官方价格:2000 RMB

    GTX 1050 Ti 一款入门级 GPU。如果你不确定是否要做深度学习,那么选择这款不用花费太多钱就可以体验一下。参数:

    • 显存(VRAM):4GB
    • 内存带宽:112GB/s
    • 处理器:768个CUDA核心@1392MHz
    • 官方价格:1060 RMB

    备注:一个TFLOPS(teraFLOPS)等於每秒万亿(=10^12)次的浮点运算。

    Nivda面向专业市场的Tesla GPU产品型号包括K40、K80、P100等,经过前人针对 GTX 1080 Ti 和 K40 的一些基准测试。1080Ti 的速度是 K40 的 5 倍,是 K80 的 2.5 倍。K40 有 12 GB 显存,K80 有 24 GB 的显存。P100 和 GTX 1080 Ti 应该性能差不多。但是性价比落后于桌面级 GPU故暂不推荐。

    展开全文
  • 选择深度学习的GPU卡

    千次阅读 2019-04-25 10:50:45
    深度学习是一个具有强烈计算要求的领域,GPU的选择将从根本上决定您的深度学习体验。 需要多个GPU吗? 多GPU能够对深度学习有什么影响,我非常感兴趣,于是通过组装具有40Gbit/s的小型GPU集群,然后应用于多GPU...

    深度学习是一个具有强烈计算要求的领域,GPU的选择将从根本上决定您的深度学习体验。

    需要多个GPU吗?


    多GPU能够对深度学习有什么影响,我非常感兴趣,于是通过组装具有40Gbit/s的小型GPU集群,然后应用于多GPU训练,激动的看到多个GPU可以获得更好的结果。
    但是很快发现,在多个GPU上高效地并行化神经网络不仅非常困难,而且对于密集型神经网络,其加速率也非常低。使用数据并行性可以相当有效地并行化小型神经网络,但是像我在“Hashtags Kaggle”竞赛中使用的大型神经网络几乎没有得到加速。
    我深入分析了深度学习中的并行化,开发了一种技术,用于将96个GPU系统的GPU集群的加速从23x提高到50x,并在ICLR 2016发表了我的研究。在我的分析中,我还发现卷积和递归网络相当容易并行化,特别是您只使用一台计算机或4个GPU的时候。因此,尽管现代工具没有高度优化并行性,但仍然可以获得良好的加速。
    与三年前相比,在最流行的框架中使用并行化技术的用户体验现在也相当不错。虽然他们的算法相当原生,不易扩展到GPU集群,但是它们提供了高达4 GPU的良好性能。对于卷积神经网络,在2/3/4GPU,可以预期得到1.9x/2.8x/3.5x的加速;对于循环网络,序列长度是最重要的参数,对于常见的NLP问题,可以预期与卷积网络类似的或稍微差一些的加速。全连接网络对于数据并行性通常具有较差的性能,需要更高级的算法来加速网络的这些部分。
    所以今天使用多个GPU可以使训练更加方便,因为速度提高了,如果你有钱的话,使用多个GPU是很有意义的。

    使用没有并行的多个GPU


    使用多GPU的另一个优点是,即使不并行化算法,也可以在每个GPU上分别运行多个算法或实验。即使没有加速,但是你可以通过使用不同的算法或者参数来获得更多的训练性能信息。如果你的主要目标是尽快获得深度学习经验,这对于那些想同时尝试多种新算法的研究人员来说非常有用。
    这是心理上重要的,如果你想学习深度学习。执行任务和接收任务的反馈越短,大脑就越能够将该任务的记忆片段整合成一个连贯的经验记忆。如果使用小数据集分别在两个GPU上训练卷积神经网络,您将更快地了解执行是否良好;您将更容易地检测交叉验证模式中的错误并正确地解释它们。您将能够检测到错误模式,这些将提示你添加、移除或调整哪些参数或层。
    我个人认为用这种方式使用多GPU会更有用,因为你可以很快地找到一个好的配置。一旦你发现了一系列的参数或架构,你就可以在多个GPU之间使用并行性来训练最终的网络。
    因此,可以说一个GPU应该足以完成几乎任何任务,但是多GPU对于加速您的深度学习模型变得越来越重要。
    如果你想快速学习深度学习,多个便宜的GPU组成集群也是非常好的。即使是我自己的研究,我也是拥有相当多的小GPU集群而不是一个大的GPU。

     

    NVIDIA: 深度学习领域领导者


    在NVIDIA vs AMD vs Intel vs Google vs Amazon比较中NVIDIA无疑是领导者。
    NVIDIA的标准库,使其在CUDA建立第一个深度学习库很容易,而AMD OpenCL没有这种强大的标准库。这种早期的优势与Nvidia强大的社区支持相结合,迅速增加了CUDA社区的规模。这意味着,如果你使用NVIDIA GPU出错时,非常容易找到支持,你将会找到自己程序的CUDA支持和建议。你会发现,大部分的深度学习库为NVIDIA GPU提供了最好的支持。这是一个NVIDIA GPU非常强的点。
    另一方面,NVIDIA现在有一个政策,在数据中心的CUDA只允许使用Tesla GPU和不是GTX或RTX卡。目前还不清楚什么是“数据中心”,但这意味着组织和大学往往出于规避法律问题被迫购买昂贵且成本低效的Tesla GPU。然而,Tesla GPU并没有真正优于GTX和RTX卡,但成本缺高达其10倍。
    Nvidia可以这样做,且没有任何大的阻力,充分显示了其庞大的垄断力。他们可以为所欲为,我们不得不接受这样的条款。如果你选择在社区和支持方面有更大优势的NVIDIA GPU,你也需要接受这些,无疑这样又助长了他们的气焰。

    AMD: 强大但缺乏支持


    HIP和ROCm通过使用一个通用编程语言统一了NVIDIA和AMD GPU。这个语言在编译成GPU二进制之前,先编译成了一个中间GPU语言。如果将我们所有的GPU代码应用HIP ,这将是一个重大的里程碑。但这很难,因为tensorflow和pytorch的底层库很难转换。TensorFlow已经对AMD的GPU提供了支持,它所有主要的网络都可以运行在AMD的GPU上。但如果你想实现新的网络,其中的一些细节是不清楚的,这将阻止你的实现。ROCM社区也不太大,因此很难快速解决问题。AMD这边似乎也没有多少钱可以提供给深度学习发展。
    然而,AMD GPU相比NVIDIA GPU显示强劲的性能,下一代AMD GPU的Vega 20框架将具有张量计算单元核心,提供更强大的计算能力。
    总的来说,如果只是希望GPU可以顺利运行的普通深度学习用户,我还是不建议使用AMD GPU。具有丰富经验的用户,通过支持AMDGPU和ROCm/HIP开发人员,将遇到更少的问题。他们为打击NVIDIA的垄断地位作出了贡献,因为这将极大地有利于每个人的长期利益。如果您是GPU开发人员,并且希望对GPU计算做出重要贡献,那么AMD GPU可能是长期产生良好影响的最佳方式。对于其他人来说,NVIDIA GPU可能是更保险的选择。

    Intel: 正在努力


    我对英特尔的Xeon Phis的个人经历一直很失望,我并不认为他们是NVIDIA或AMD卡的真正竞争对手,因此我将简短地说:如果您决定使用Xeon Phi,请注意,您可能会遇到支持不力的计算问题,这会导致代码部分比CPU更慢,而且很难编写优化的代码,没有完全支持C++ 11的特性,一些重要的GPU设计模式不支持编译器,与依赖BLA例程(NUMPY和SCIPY)的其他库之间的兼容性差,可能还会遇到很多其他的挫折。
    我真的很期待英特尔神经网络处理器(NNP),因为它的规格在GPU开发者手中极其强大,并且它允许新的算法来重新定义神经网络是如何使用的,但是它被无休止地延迟了,还有谣言说,大部分开发人员跳槽了。NNP计划为Q3/Q4 2019。如果您想等那么久,请记住,好的硬件不是从AMD和英特尔自己的Xeon Phi看到的一切。它可以很好地进入2020,直到NNP以成熟的方式使用。

    Google: 按需处理更便宜


    谷歌的TPU发展成为一个非常成熟的基于云的产品,非常节省成本。使用TPU更有意义的最简单方法就是把它看成是打包在一起的多个GPU。如果看一下启用张量核心的V100与TPUv2的性能度量,我们就会发现两个系统在ResNet50的性能上几乎相同。然而,谷歌TPU更具成本效益。
    因此TPU是一种基于成本的云计算解决方案吗?是的,也不是,在纸上,为了经常使用,它更具成本效益。然而,如果您使用 fastai team和fastai library的最佳实践和指导方针,那么您可以以较低的价格实现更快的收敛——至少对于用于对象识别的卷积网络是这样。
    使用相同的软件,TPU可能更加节省成本,但这里也存在问题:(1)TPU不能用于fastai library(即PyTorch);(2)TPU算法主要依赖于内部Google团队;(3)没有统一的高级库来执行良好的TensorFlow支持。
    这三点都击中了TPU,因为它需要单独的软件来跟上深度学习算法系列的新增内容。我确信谷歌车队已经完成了打包工作,但目前还不清楚对某些型号的支持有多好。例如,官方存储库只有一个NLP模型,其余的是计算机视觉模型。所有模型都使用卷积,没有一个是递归神经网络。与一个现在相当旧的报告从二月,TPUV2不收敛当LSTMs被使用。如果问题已经解决了,我找不到一个来源,但是随着时间的流逝,软件支持很可能快速改进,并且成本将进一步降低,使得TPU成为一个有吸引力的选择。然而,目前,TPU似乎最适合用于计算机视觉,并作为其他计算资源的补充,而不是主要的深度学习资源。

    Amazon: 可靠但昂贵。


    自从这篇博客文章的第一次更新以来,很多新的GPU被添加到AWS中。然而,价格仍然有点高。如果突然需要额外的计算,例如,当所有GPU都在使用时,就像在研究论文截止日期之前一样,AWS GPU实例可以是非常有用的解决方案。
    然而,如果它应该具有成本效益,那么应该确保只运行几个网络,并且能够非常肯定地知道为训练运行选择的参数接近最优。否则,成本会大大增加,一个专门的GPU可能会更有用。即使一个快速的AWS GPU是诱人的,但手头的GTX 1070将能够提供良好的计算性能,并且一两年内不再需要费用。
    因此AWS GPU实例是非常有用的,但是它们需要明智地使用,并且要谨慎,以节省成本。有关云计算的更多讨论,请参阅下面的部分。

    是什么让一个GPU比另一个GPU更快?


    您的第一个问题可能是,对于深度学习来说,GPU性能更快的最重要指标是:CUDA核心数?时钟频率?内存大小?
    虽然一个很好的简化建议就是“注意内存带宽”,但我不再建议这么做了。这是因为GPU硬件和软件经过多年的发展,使得GPU上的带宽不再是其性能的重要指标。在消费级GPU中引入Tensor核心进一步复杂化了这个问题。现在,带宽、FLOPS和Tensor核心的组合才是GPU性能的最重要指标。
    要加深理解,做出明智的选择,需要了解一下硬件的哪些部分使GPU对于两个最重要的张量运算(矩阵乘法和卷积)更快。
    矩阵乘法的一种简单而有效的衡量方法是带宽约束。也就是说,如果要使用LSTM和其他执行大量矩阵乘法的循环网络,那么内存带宽是GPU最重要的特性。
    类似地,卷积是通过计算速度来约束的。因此,在GPU上的TFLOP是RESNET和其他卷积架构性能的最佳指标。
    Tensor 核直接矩阵运算。它们是非常简单的专用计算单元,可以加速计算,但不能加快存储带宽,因此对于卷积网络,可以看到最大的好处是,卷积网络使用Tensor 核的速度提升30%到100%。
    而Tensor核不仅使计算速度更快,他们还能够使用16位数字的计算。对于矩阵乘法来说,这也是一个很大的优势,因为如果数字是16位而不是32位,那么在相同的存储带宽下,可以传输矩阵中两倍的数字。这种数字的存储器大小减少对于在L1高速缓存中存储更多的数字尤其重要,这进一步提高了速度,矩阵乘法中的矩阵越大。一般情况下,人们希望使用张量核加速LSTM提升约20%到60%。
    请注意,这种加速不是来自张量核本身,而是来自它们做16位计算的能力。AMD GPU上的16位算法将与具有张量核的NVIDIA卡上的矩阵乘法算法一样快。
    张量核的一个大问题是它们需要16位浮点输入数据,这可能会碰到一些软件支持问题,因为网络通常使用32位值。如果没有16位输入,张量核将是无用的。然而,我认为,这些问题将很快得到解决,因为张量核心功能强大,无法保持不使用,并且现在它们可用于消费级GPU,我们将看到越来越多的人使用它们。注意,随着16位深度学习的引入,由于参数加倍,实际上GPU的内存也会加倍。
    因此,总的来说,最好的经验法则是:如果使用RNN,请查看带宽;如果使用卷积,请查看FLOPS;如果负担得起,请获取张量核心(除非必须,否则不要购买Tesla卡)。

    图2:GPU和TPU的原生性能数据,越高越好。RTX 2080 Ti大约是GTX 1080 Ti的两倍:0.75比0.4。

    性价比分析


    GPU的性价比可能是选择GPU的最重要标准。我做了一个新的性能效率分析,其中包括内存带宽、TFLOP和张量核。我查看了eBay和亚马逊的价格,并对它们进行了50:50的加权,然后查看了LSTM、CNN以及有无张量核心的性能指标。我获取这些性能数字,并通过归一化的几何平均值将它们加权在一起,以获得平均性能评级,然后使用该评级计算性能/成本数字。这就是结果:

    图3:这是内存带宽(RNN)、TFLOP(ConvNets)和张量核心的标准化性能/成本数值,越高越好。RTX 2080的成本比Tesla V100高约5倍。
    请注意,RTX 2080和RTX 2080 Ti的编号可能有一点误差,因为不存在硬性能数值。我根据这个硬件下的矩阵乘法和卷积的顶线模型以及来自V100和Titan V的张量核心基准来估计性能。请注意,RTX 2070可以轻松击败其他两个RTX卡的成本效率,但我没有数据来支持这一点。
    当RTX 2080和RTX 2080 TI发布时,我将在下个月更新这些性能和价格。到那时,应该有足够的信息关于这些卡的深度学习性能,并且关于RTX 2070的进一步信息应该可用来作出准确的估计。
    从初步数据,我们看到RTX 2080比RTX 2080 TI更具性价比。RTX 2080 Ti的张量核心和带宽增加了大约40%,价格提高了50%,但是这并没有将性能提高40%。对于LSTM和其他RNN,从GTX 10系列到RTX 20系列的性能增益主要是进行16位浮点计算的能力,而不是张量核本身。卷积理论上应与张量核成线性关系,但我们从性能数看不到这一点。这表明,卷积架构中不能用张量核辅助的其他部分对总体计算要求作出了重大贡献。因此,RTX 2080更具成本效益,因为它具有比GTX 10系列提供更好的性能(GDDR6+张量核心)所需的所有特性,同时还比RTX 2080 Ti便宜。
    此外,请注意,这种分析存在一些问题,并且需要仔细解释这些数据:(1)如果您购买性价比高但速度较慢的卡,那么在某些时候,您的计算机可能不再有空间容纳更多的GPU,从而浪费资源。因此,这张图表偏向昂贵的GPU。为了克服这种偏差,还应该评估原始性能图表2。(2)此性能/成本图也假设只要有可能,就使用16位计算和张量核。这意味着32位计算RTX卡具有非常差的性能/成本比。(3)有传言说RTX系列20卡的大量库存由于数字货币的急剧下降而被推迟。因此,流行的挖矿GPU,如GTX 1080和GTX 1070,可能在价格上快速下降,并且它们的性能/成本比率可能快速提高,使得RTX 20系列在性能/成本方面不太有利。另一方面,大量的RTX系列20卡将保持他们的价格稳定和竞争力。很难预测结果会怎样。(4)如前所述,RTX卡不存在硬性、无偏的性能数值,因此所有这些数字都必须严格遵守。
    所以你可以看到做出正确的选择是不容易的。但是,如果你对所有这些问题持平衡的观点,那么下面的建议是合理的。

    通用GPU推荐


    目前,我将推荐两种不同的主要策略:(1)购买RTX并保存2年多;(2)找一个便宜的GTX 1080/1070/1060或GTX 1080 Ti/GTX 1070 Ti,因为人们会把他们的二手卡放在eBay上出售,并持有GPU一段时间,直到更好的卡被释放。RTX TITAN发布在2019 Q1/Q2,然后销售和升级。
    我们已经等待GPU升级相当一段时间了,对于许多人来说,第一种策略可能最适合现在获得良好的性能。虽然RTX 2080的成本效益更高,但RTX 2080 Ti提供更多的内存,这可能是计算机视觉研究人员和其他内存密集型应用的决定性因素。两张牌都是明智的解决方案。主要问题是:在RTX 2080 TI上需要额外的内存吗?记住,这个卡通常使用16位模式,这实际上是可用内存的两倍。如果不需要额外的内存,可以使用RTX 2080。
    有些人想要更大的升级,等待RTX TITAN。这也可能是一个不错的选择,因为GTX 10系列卡可能会下跌的价格。我不会推荐任何具体的GPU在这里,因为价格太不稳定-只要抓住任何便宜的,现在相对于过去的几个星期。请注意,GTX 1060有时可能缺乏某些型号所需的内存和速度,所以如果您找到便宜的GTX 1060,首先考虑速度和6GB内存是否真正满足您的需要。否则,便宜的GTX 1070、GTX 1070 Ti、GTX 1080和GTX 1080 TI都是很好的选择。
    对于初创公司,Kaggle的参赛者,以及那些想深入学习的人,我绝对会推荐便宜的GTX系列10卡。对于所有这些应用领域,GTX 1060可以是一个非常有性价比的入门解决方案,可以让您开始。
    对于那些学习如何快速进行深度学习的人来说,多个GTX 1060可能是完美的,一旦你的技能很好,你可以在2019年升级到RTX Titan,并保持GPU几年。
    如果你缺钱,我推荐GTX 1050 TI,内存4 GB,或者你能负担得起GTX 1060。注意,GTX 1050 Ti的优点是,您不需要来自PSU的额外的PCIe电源连接器,因此您可能能够将其插入到现有计算机中,从而无需PSU升级即可开始深入学习,从而节省了额外的资金。
    如果你缺钱,但是你知道12GB的内存对你很重要,那么eBay的GTX Titan X(Pascal)也是一个很好的选择。
    然而,大多数研究人员都可以用GTX 1080 Ti工作的很好。大多数研究和大多数应用程序不需要一个额外的GB内存,它比GTX TITAN X(Pascal)快。
    我个人将购买一个RTX 2080 TI,因为升级我的GTX Titan X(Maxwell框架)早就过时了。我需要更多的内存来进行研究,所以RTX 2080不是我的选择。我还将开发自定义张量核心算法,对我而言只能使用RTX 2080 TI。所以RTX 2080 Ti是我的最佳选择,但这并不意味着它是最好的选择。
    当你选择GPU时,你应该以类似的方式推理。想想你在什么任务上工作(内存需求)以及你如何运行你的实验(几个快速的,或者多个慢的,或者原型,然后扩展到云),也考虑未来(未来的GPU RTX 2070或者RTX Titan对我感兴趣吗?便宜的GTX 10系列卡对我有意思吗?)然后尝试找到一个符合这些要求的GPU。

    云上的深度学习


    在谷歌云上的AWS和TPU上的GPU实例都是深入学习的可行选择。虽然TPU有点便宜,但它缺乏AWS GPU的多功能性和灵活性。TPU可能是训练对象识别流水线的首选武器。对于其他工作负载,AWS GPU是一个更保险的做法——云实例的好处是可以随时在GPU和TPUs之间切换,甚至同时使用两者。
    但是,注意这里的成本收益:如果你学会了使用AWS实例流畅的工作流程,你就失去了在个人GPU上工作的时间,而且你也没有获得使用TPU的技能。如果你使用个人GPU,你就没有能力通过云扩展到更多的GPU/TPU。如果你使用TPU,你会被TensorFlow所困扰,切换到AWS并不简单。学习流畅的云工作流是昂贵的,如果你为TPU或AWS GPU做出选择,你应该权衡这个成本。
    另一个问题是关于何时使用云服务。如果你尝试学习深度学习,或者你需要原型,那么个人GPU可能是最好的选择,因为云实例是昂贵的。然而,一旦你找到了一个很好的深度网络配置,并且你只想用一个与云实例并行的数据来训练一个模型是一个坚实的方法。这意味着一个小的GPU将足以用于原型,并且人们可以依靠云计算的能力来扩展到更大的实验。
    如果您缺钱,云计算实例也许也是一个很好的解决方案,但是问题是,当您只需要少量的原型时,您只能每小时购买大量的计算。在这种情况下,人们可能希望在CPU上进行原型化,然后在GPU/TPU实例上进行快速训练运行。这不是最好的工作流程,因为在CPU上进行原型测试可能是非常痛苦的,但这是一个成本收益最佳的解决方案。

    结论


    有了这个博客文章中的信息,你应该能够知道哪一个GPU适合你。一般来说,我认为有两种主要的策略是有意义的:第一,使用RTX 20系列GPU进行快速升级,第二,使用便宜的GTX 10系列GPU并在RTX Titan可用时进行升级。如果性能不太重要,或者只是不需要性能,例如Kaggle、初创公司、原型,或者学习深度学习,那么您也可以从廉价的GTX 10系列GPU中受益匪浅。如果你使用GTX 10系列要注意GPU的内存大小是否满足你的要求。

    建议


    性能最佳的GPU:RTX 2080 Ti
    性价比高的高端GPU:RTX 2080,GTX 1080
    性价比高的低端GPU:GTX 1070,GTX 1070 TI,GTX 1060
    我使用的数据集> 250GB:RTX 2080 TI或RTX 2080
    我有一点钱:GTX 1060(6GB)
    我几乎没有钱:GTX 1050 TI(4GB)或CPU(原型)+AWS/TPU(培训)
    我做Kaggle:GTX 1060(6GB)用于原型,AWS进行最终训练;使用FASTAI库(PyTorch)
    我是一个有竞争力的计算机视觉研究者:GTX 2080 TI;2019升级到RTX TITAN
    我是一个研究者:RTX 2080 TI或GTX 10XX-RTX TITAN——检查当前模型的内存需求
    我想构建一个GPU集群:这真的很复杂,你可以在这里得到一些想法
    我开始深度学习,我对此很深入:从GTX 1060(6GB)或便宜的GTX 1070或GTX 1070 Ti开始,如果你能找到的话。根据你接下来选择的领域(创业、Kaggle、研究、应用深度学习)卖出你的GPU并买一些更合适的东西
    我想尝试深度学习,但我并不深入:GTX 1050 TI(4或2GB)

    转自:http://timdettmers.com/2018/08/21/which-gpu-for-deep-learning/
    --------------------- 
    作者:mergerly 
    来源:CSDN 
    原文:https://blog.csdn.net/mergerly/article/details/83753056 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

    几款科学计算显卡对比(GTX Titan X、GTX 980、Tesla K40 K80 及quadro K4200)

    科学计算显卡的两个主要性能指标:

    1、CUDA compute capability,这是英伟达公司对显卡计算能力的一个衡量指标;

    2、FLOPS 每秒浮点运算次数,TFLOPS表示每秒万亿(10^12)次浮点计算;

    3、另外,显存大小也决定了实验中能够使用的样本数量和模型复杂度。

     

    1、CUDA compute capability对比

        GTX Titan x :5.2

        GTX 980      :5.2

        Tesla K80    :3.7

        Tesla K40    :3.5

        K4200         : 3.0

     

    2、TFLOPS 比较

                                    单精度single        双精度double

        GTX Titan x :     7                            0.2 

        GTX 980      :      4.6                        0.15

        Tesla K80    :      8.74                      2.91

        Tesla K40    :      4.29                      1.43

        K4200         :       2.0

     

        单精度能够保证小数点后6到7位计算准确(2^23),双精度则是14到15位(2^52)

     

    3、显存大小

        GTX Titan x :12Gb

        GTX 980      :4Gb

        Tesla K80    :24Gb

        Tesla K40    :12Gb

        K4200         :4Gb

     

    4、价格比较(网上商城京东淘宝报价)

        GTX Titan x :8000+-

        GTX 980      :6000+-

        Tesla K80    :30000++

        Tesla K40    :25000+-

        K4200         :6000+-

     

    1、GTX 系列显卡优缺点:    优点:单精度计算能力强大,显存最大12Gb,性价比高

     

        缺点:双精度计算能力弱,没有计算纠错ECC 内存,对于超高精度计算不利

     

    2、Tesla 或 quadro显卡优缺点:

        优点:双精度计算能力最强,拥有ECC内存增强计算准确率,

     

        缺点:单精度计算能力差,价格较高

     

    总结:单从性能上选择,Tesla K80是最强大的,但也最贵;综合性价比来考虑 GTX Titan X 最好。

    展开全文
  • Specific cuDNN installation

    2017-09-15 00:40:57
    Driver installation
    tar -zxf cudnn-8.0-linux-x64-v5.1.tgz
    cd cuda
    sudo cp lib64/* /usr/local/cuda-8.0/lib64/
    sudo cp include/* /usr/local/cuda-8.0/include/
    • In order to use the environment when login, we can add to ~/.bashrc like,
    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
    展开全文
  • nvidia tesla k40

    2019-07-18 01:04:40
    受 加速比由很多因素决定,软件、硬件、算法、程序员水平 几乎所有深度学习的研究者都在使用GPU 熟悉深度学习的人都知道,深度学习是需要训练的,所谓的训练就是在成千上万个变量中寻找 最佳值的计算。这需要通过...
    受 加速比由很多因素决定,软件、硬件、算法、程序员水平 几乎所有深度学习的研究者都在使用GPU   熟悉深度学习的人都知道,深度学习是需要训练的,所谓的训练就是在成千上万个变量中寻找 最佳值的计算。这需要通过不断的尝试实现收敛,而最终获得的数值并非是人工确定的数字,而是 一种常态的公式。通过这种像素级的学习,不断总结规律,计算机就可以实现像像人一样思考。如 今,几乎所有的深度学习(机器学习)研究者都在使用GPU进行相关的研究。当然,我说的是“几乎” 。除了GPU之外,包括MIC和FPGA也提供了不同的解决方案。NVIDIA如何看待不同的硬件架构对深度 学习的影响,又是如何评价这些技术的呢-   NVIDIA中国区解决方案架构工程总监罗华平认为:“技术发展和科技的发展,是需要不同的技 术一起来参与。无论是GPU也好、FPGA也好或者是专用的神经网芯片也好,它的主要目的都是推动深 度学习(机器学习)这个方向的技术发展。那么我们在初期,确实可以尝试不同的技术,来探讨哪种 技术可以更好的适合这项应用。从目前来看,深度学习大量的使用,主要集中在训练方面。那么在 这个领域,GPU确实是非常适合的,这也体现在所有的这些工业界的大佬如BAT、谷歌,Facebook等 等,都在使用GPU在做训练。”而除了训练之外,在实际的应用方面,NVIDIA也正在结合中国地区 IDC机房普遍具备的功耗、网络等特点,“考虑是否设计低功耗的GPU,来满足用户的需求”。   除了硬件方面的因素之外,英伟达中国区技术经理赖俊杰也从软件方面解答了GPU对于深度学习 应用的价值。首先从深度学习应用的开发工具角度,具备CUDA支持的GPU为用户学习Caffe、Theano 等研究工具提供了很好的入门平台。其实GPU不仅仅是指专注于HPC领域的Tesla,包括Geforce在内 的GPU都可以支持CUDA计算,这也为初学者提供了相对更低的应用门槛。除此之外,CUDA在算法和程 序设计上相比其他应用更加容易,通过NVIDIA多年的推广也积累了广泛的用户群,开发难度更小。 最后则是部署环节,GPU通过PCI-e接口可以直接部署在服务器中,方便而快速。得益于硬件支持与 软件编程、设计方面的优势,GPU才成为了目前应用最广泛的平台。   深度学习发展遇到瓶颈了吗-   我们之所以使用GPU加速深度学习,是因为深度学习所要计算的数据量异常庞大,用传统的计算 方式需要漫长的时间。但是,如果未来深度学习的数据量有所下降,或者说我们不能提供给深度学 习研究所需要的足够数据量,是否就意味着深度学习也将进入“寒冬”呢-对此,赖俊杰也提出了另 外一种看法。“做深度神经网络训练需要大量模型,然后才能实现数学上的收敛。深度学习要真正 接近成人的智力,它所需要的神经网络规模非常庞大,它所需要的数据量,会比我们做语言识别、 图像处理要多得多。假设说,我们发现我们没有办法提供这样的数据,很有可能出现寒冬”。   不过他也补充认为——从今天看到的结果来说,其实深度学习目前还在蓬勃发展往上的阶段。 比如说我们现阶段主要做得比较成熟的语音、图像方面,整个的数据量还是在不断的增多的,网络 规模也在不断的变复杂。现在我没有办法预测,将来是不是会有一天数据真不够用了。   对于NVIDIA来说,深度学习是GPU计算发展的大好时机,也是继HPC之后一个全新的业务增长点 。正如Pandey所提到的那样,NVIDIA将世界各地的成功经验带到中国,包括国外的成功案例、与合 作伙伴的良好关系等等,帮助中国客户的快速成长。“因为现在是互联网的时代,是没有跨界的时 代,大家都是同等一起的。” K40的显存频率也从之前的5.2GHz提高到了6GHz,显存位宽依然是384bit。带宽从之前的250GB/s提 高到了288GB/s,不过TDP继续维持K20X的235W水准,整体控制的很不错。 最大的变化要属显存容量了,之前K20X标配的是6GB,此次K40搭配的是12GB显存,不过显存颗 粒的数量并没有增加,因为NVIDIA这次使用的是4Gb显存,此前包括桌面及Tesla、Quadro产品线上 使用的显存颗粒都是2Gb容量,因此在维持24片显存的情况下Tesla K40的总容量提升到了12GB (24x4Gb),而K20X只有6GB(24x2Gb)。 还有一个值得注意的变化,那就是Tesla K40终于实现PCI-E 3.0支持了,虽然之前的Tesla K nvidia tesla k40 价格

    转载于:https://www.cnblogs.com/Crysaty/p/6189188.html

    展开全文
  • [深度学习]深度学习框架总结

    万次阅读 2017-04-16 11:53:11
    深度学习库比较 库名 主语言 从语言 速度 灵活性 文档 适合模型 平台 上手难易 开发者 模式 Tensorflo C++ cuda/python/Matlab/Ruby/R 中等 好 中等 CNN/RNN Linux,OSX 难 Google 分布式/声明...
  • 深度学习中GPU的作用

    千次阅读 2018-09-18 19:11:34
    英伟达推出的“霸王条款”:GeForce产品禁止用于...上周,英伟达悄然修改了用户许可协议,其中特别要求消费者级显卡GeForce允许区块链处理,但禁止在数据中心使用GeForce显卡做深度学习。 这句话该怎么理解呢?...
  • 最近,一直在自学深度学习。一边学习理论,一遍学习编程。在CNN的时候,手头的笔记本电脑就吃不消了,运行的速度明显跟不上。本来想买一台带好点的显卡,可是调研了一下,带NVIDIA 1080的差不多要1万左右,更不用...
  • 教你如何挑选深度学习GPU

    万次阅读 2017-12-06 14:16:35
    在今年 5 月,我在组装自己的深度学习机器时对市面上的所有 GPU 进行了评测。而在本文中,我们将更加深入地探讨: 为什么深度学习需要使用 GPU GPU 的哪种性能指标最为重要 选购 GP
  • 深度学习调用TensorFlow、PyTorch等框架 一.开发目标目标 提供统一接口的库,它可以从C++和Python中的多个框架中运行深度学习模型。欧米诺使研究人员能够在自己选择的框架内轻松建立模型,同时也简化了这些模型的...
  • 深度学习和并行化实现

    千次阅读 2018-02-07 14:54:29
    摘要: 深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别、图像识别和检索、自然语言理解等。深层模型是包含多个隐藏层的人工神经网络,多层非线性结构使其具备强大的特征表达能力和对复杂任务建模能力...
  • 整个2015年都在买买买。...我们买GPU的目的是用来科学计算,例如针对深度学习。另外两个GPU主要用途——游戏,挖矿——则不在此文讨论范围。而且此文针对性价比敏感人士,对于土豪人群,推荐直接上大厂整体GPU...
  • 有兴趣的读者可以从本书开始,通过图像分类、识别、检测和分割的案例,逐步深入卷积神经网络的核心,掌握深度学习的方法和精髓,领会 AlphaGo 战胜人类世界冠军的奥秘。 作者简介 李玉鑑(鉴) 北京工业大学教授,...
  • 我最喜欢的9个 Python深度学习

    万次阅读 2016-07-04 10:31:56
    如果你对深度学习和卷积神经网络感兴趣,但是并不知道从哪里开始,也不知道使用哪种库,那么这里就为你提供了许多帮助。 在这篇文章里,我详细解读了9个我最喜欢的Python深度学习库。 这个名单并不详尽,它...
  • 没有GPU,深度学习就无法进行。但当你没有优化任何东西时,如何让所有的teraflops都被充分利用? 最近比特币价格一路飙升,您可以考虑利用这些闲置的资源来获取利润。这并不难,你需要的就是设置一个钱包,...
  • 深度学习对于gpu的选择

    千次阅读 2018-05-07 11:29:29
    深度学习在2012年大放异彩,gpu计算也走入了人们的视线之中,它使得大规模计算神经网络成为可能。人们可以通过07年推出的CUDA(Compute Unified Device Architecture)用代码来控制gpu进行并行计算。本文首先根据...
  • 问题:实验室深度学习tesla k40c工作站GPU突然不能使用 表现:跑神经网络模型特别慢,内存爆满,但是显存却空着 原因:显卡驱动程序不兼容,导致显卡GPU不可用。 备注: 实验室显卡驱动型号:NVIDIA-Linux-...
  • 1080ti和2080ti对比深度学习使用

    千次阅读 2020-03-04 00:57:35
    https://blog.csdn.net/u013166171/article/details/89479687 如果是单玩游戏,那么2080ti最好,光线追踪,而且双卡复用需要游戏支持,所...
  • 深度学习(DL)平台的HPC

    千次阅读 2017-10-24 15:22:19
    SenseTime(商汤科技)作为一家专注于计算机视觉和深度学习原创技术的科技创新公司,为解决深度学习模型大、训练时间长等业界普遍面对的问题,组建了一支在应用算法上造诣深厚的HPC团队,为深度学习训练及应用部署...
  • 深度学习及并行化实现概述 摘要: 深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别、图像识别和检索、自然语言理解等。深层模型是包含多个隐藏层的人工神经网络,多层非线性结构...
1 2 3 4 5 ... 20
收藏数 918
精华内容 367
关键字:

k40做深度学习