电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>单片机>最基本的深度学习系统的硬件指南

最基本的深度学习系统的硬件指南

2017-09-22 | rar | 1.10 MB | 次下载 | 1积分

资料介绍

  

  由于深度学习的计算相当密集,所以有人觉得“必须要购买一个多核快速CPU”, 也有人认为“购买快速CPU可能是种浪费”。

  那么,这两种观点哪个是对的? 其实,在建立深度学习系统时,最糟糕的事情之一就是把钱浪费在不必要的硬件上。 本文将告诉你如何用最省钱的方式,来搭建一个高性能深度学习系统。

  当初,在我研究并行深度学习过程中,我构建了一个GPU集群 ,所以我需要仔细选择硬件。 尽管经过了反复的研究和推理,但当我挑选硬件时,我仍然会犯许多错误,并且当应用于实践中时,那些错误就展现出来了。 所以,在这里,我想分享一下我所学到的知识,希望你不会像我一样再陷入同样的陷阱。

  ▍GPU

  本文假设您将使用GPU进行深度学习。 如果您正在建立或升级您的系统,那么忽视GPU是不明智的。 GPU才是深度学习应用的核心,它能大大提升处理速度,所以绝对不能忽略。

  我在之前的文章中详细介绍了GPU的选择,并且GPU的选择可能是您的深度学习系统中最关键的选择。

  一般来说,如果您的资金预算有限,我推荐您购买GTX 680,或者GTX Titan X(如果你很有钱,可用它做卷积)或GTX 980(它性价比很高,但若做大型卷积神经网络就有些局限性了),它们在eBay上就能买得到。

  另外,低成本高性价比的内存我推荐GTX Titan。 之前我支持过GTX 580,但是由于新更新的cuDNN库显着提升了卷积速度,故而所有不支持cuDNN的GPU都已经过时了,其中 GTX 580就是这样一款GPU。 如果您不使用卷积神经网络,GTX 580仍然是一个很好的选择。

  

  你能识别上面哪个硬件会导致糟糕的表现? 是这些GPU的其中一个? 还是CPU?

  ▍CPU 要选择CPU,我们首先要了解CPU及它与深度学习的关系。 CPU对深度学习有什么作用? 当您在GPU上运行深度网络时,CPU几乎没有计算, 但是CPU仍然可以处理以下事情:

  在代码中写入和读取变量

  执行诸如函数调用的指令

  在GPU上启动函数调用

  创建小批量数据

  启动到GPU的数据传输

  所需CPU的数量

  当我用三个不同的库训练深度神经网络时,我总是看到一个CPU线程是100%(有时另一个线程会在0到100%之间波动)。 而且这一切立即告诉你,大多数深入学习的库,以及实际上大多数的软件应用程序,一般仅使用一个线程。

  这意味着多核CPU相当无用。 如果您运行多个GPU,并使用MPI之类的并行化框架,那么您将一次运行多个程序,同时,也需要多个线程。

  每个GPU应该是一个线程,但每个GPU运行两个线程将会为大多数深入学习库带来更好的性能;这些库在单核上运行,但是有时会异步调用函数,就使用了第二个CPU线程。

  请记住,许多CPU可以在每个内核上运行多个线程(这对于Intel 的CPU尤为如此),因此通常每个GPU对应一个CPU核就足够了。

  CPU和PCI-Express

  这是一个陷阱! 一些新的Haswell CPU不支持那些旧CPU所支持的全部40个PCIe通道。如果要使用多个GPU构建系统,请避免使用这些CPU。 另外,如果您有一个带有3.0的主板,则还要确保您的处理器支持PCIe 3.0。

  CPU缓存大小

  正如我们将在后面看到的那样,CPU高速缓存大小在“CPU-GPU-管线”方面是相当无关紧要的,但是我还是要做一个简短的分析,以便我们确保沿着这条计算机管道能考虑到每一个可能出现的瓶颈,进而我们可以全面了解整体流程。

  通常人们购买CPU时会忽略缓存,但通常它是整体性能问题中非常重要的一部分。 CPU缓存的片上容量非常小,且位置非常靠近CPU,可用于高速计算和操作。 CPU通常具有缓存的分级,从小型高速缓存(L1,L2)到低速大型缓存(L3,L4)。

  作为程序员,您可以将其视为哈希表,其中每个数据都是键值对(key-value-pair),您可以在特定键上进行快速查找:如果找到该键,则可以对高速缓存中的值执行快速读写操作; 如果没有找到(这被称为缓存未命中),则CPU将需要等待RAM赶上,然后从那里读取该值(这是非常缓慢的过程)。 重复的缓存未命中会导致性能显着降低。 高效的CPU高速缓存方案和架构,通常对CPU的性能至关重要。

  CPU如何确定其缓存方案,是一个非常复杂的主题,但通常可以假定重复使用的变量、指令和RAM地址将保留在缓存中,而其他不太频繁出现的则不会。

  在深度学习中,相同的内存范围会重复被小批量读取,直到送到GPU,并且该内存范围会被新数据覆盖。但是如果内存数据可以存储在缓存中,则取决于小批量大小。

  对于128位的小批量大小,我们对应于MNIST和CIFAR分别有0.4MB和1.5 MB,这适合大多数CPU缓存;对于ImageNet,我们每个小批量有超过85 MB的数据( ),即使是最大的缓存(L3缓存不超过几MB),也算是很大的了。

  由于数据集通常太大而无法适应缓存,所以新的数据需要从RAM中每个读取一小部分新的,并且需要能够以任何方式持续访问RAM。

  RAM内存地址保留在缓存中(CPU可以在缓存中执行快速查找,并指向RAM中数据的确切位置),但是这仅限于整个数据集都存储于RAM时才会如此,否则内存地址将改变,并且缓存也不会加速(稍后你会看到的,使用固定内存时则不会出现这种情况,但这并不重要)。

  深度学习代码的其他部分(如变量和函数调用),将从缓存中受益,但这些代码通常数量较少,可轻松适应几乎任何CPU的小型快速L1缓存。

  从这个推理结果可以看出,CPU缓存大小不应该很重要。下一节进一步分析的结果,也与此结论相一致。

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
  2. 19.00 MB  |  4次下载  |  免费
  3. 2使用TL431设计电源
  4. 0.67 MB   |  2次下载  |  免费
  5. 3BT134双向可控硅手册
  6. 1.74 MB   |  2次下载  |  1 积分
  7. 4一种新型高效率的服务器电源系统
  8. 0.85 MB   |  1次下载  |  1 积分
  9. 5LabVIEW环形控件
  10. 0.01 MB   |  1次下载  |  1 积分
  11. 6PR735,使用UCC28060的600W交错式PFC转换器
  12. 540.03KB   |  1次下载  |  免费
  13. 751单片机核心板原理图
  14. 0.12 MB   |  1次下载  |  5 积分
  15. 8BP2879DB支持调光调灭的非隔离低 PF LED 驱动器
  16. 1.44 MB  |  1次下载  |  免费

本月

  1. 1开关电源设计原理手册
  2. 1.83 MB   |  52次下载  |  免费
  3. 2FS5080E 5V升压充电两串锂电池充电管理IC中文手册
  4. 8.45 MB   |  23次下载  |  免费
  5. 3DMT0660数字万用表产品说明书
  6. 0.70 MB   |  13次下载  |  免费
  7. 4UC3842/3/4/5电源管理芯片中文手册
  8. 1.75 MB   |  12次下载  |  免费
  9. 5ST7789V2单芯片控制器/驱动器英文手册
  10. 3.07 MB   |  11次下载  |  1 积分
  11. 6TPS54202H降压转换器评估模块用户指南
  12. 1.02MB   |  8次下载  |  免费
  13. 7STM32F101x8/STM32F101xB手册
  14. 1.69 MB   |  8次下载  |  1 积分
  15. 8基于MSP430FR6043的超声波气体流量计快速入门指南
  16. 2.26MB   |  7次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935119次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183335次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73807次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65987次下载  |  10 积分