深度学习 应用 需要多少硬件产品成本分析表xls

查看: 3194|回复: 27
[虚心求教]
声望0 精华0帖子八豆12012 积分13866注册时间最后登录
柜台小老板
<em id="authorposton17-9-11 09:27
仅仅是学习研究。正式应用不可能只是一块显卡。配什么主板实惠?
声望0 精华0帖子八豆3846 积分4376注册时间最后登录
卖盗版光盘的
<em id="authorposton17-9-11 09:50
H110 紫薯布丁
声望5 精华2帖子八豆19058 积分45680注册时间最后登录
<em id="authorposton17-9-11 10:06
声望4 精华4帖子八豆7564 积分10659注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-11 12:43
用这玩意做深度学习?怎么玩?分享一下
声望0 精华0帖子八豆11556 积分16835注册时间最后登录
电脑公司总经理
<em id="authorposton17-9-11 13:16
撒哈拉 发表于
用这玩意做深度学习?怎么玩?分享一下
装一种解马软件,然后在播放马上科交片时,利用这块显卡强大的处理性能,能带马上的一切物体拉下来,即下马,便于观看者详细研究
声望4 精华4帖子八豆7564 积分10659注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-11 15:32
dcyxj 发表于
装一种解马软件,然后在播放马上科交片时,利用这块显卡强大的处理性能,能带马上的一切物体拉下来,即下 ...
相当于你只是通过显卡来获得图像样本,真正的卷积神经网络,还是利用PC编程,进行处理?我还以为有办法,让显卡来计算神经元呢。呵呵
声望0 精华0帖子八豆9795 积分12155注册时间最后登录
柜台小老板
<em id="authorposton17-9-11 15:55
就是利用显卡强大的并行处理性能,做海量的神经元计算。
国外有租赁的云系统可做实验用,按小时收费。
声望0 精华0帖子八豆6370 积分8844注册时间最后登录
电脑公司销售员
<em id="authorposton17-9-12 00:40
dcyxj 发表于
装一种解马软件,然后在播放马上科交片时,利用这块显卡强大的处理性能,能带马上的一切物体拉下来,即下 ...
**变**,我理解得对么?
声望4 精华4帖子八豆7564 积分10659注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-12 09:30
风林火山 发表于
就是利用显卡强大的并行处理性能,做海量的神经元计算。
国外有租赁的云系统可做实验用,按小时收费。 ...
这个倒是跟我理解的差不多,但是这玩意总需要一个软件接口,难道还要手动写代码,底层调用显卡?这也太难了吧,算法能搞死人,关键是并行计算这一块的编程就不容易,更何况还要熟悉显卡的底层调用接口,这个可不是什么openGL或者D3D的接口啊。
声望0 精华0帖子八豆9795 积分12155注册时间最后登录
柜台小老板
<em id="authorposton17-9-12 09:42
撒哈拉 发表于
这个倒是跟我理解的差不多,但是这玩意总需要一个软件接口,难道还要手动写代码,底层调用显卡?这也太难 ...
你以为AI,深度学习很简单吗,硬件只是载体。
关键还是算法与数学模型。
声望0 精华0帖子八豆9698 积分10543注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-12 10:23
买台品牌工作站或者机架服务器,外插一块丽台GTX1080i
声望4 精华4帖子八豆7564 积分10659注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-12 10:43
风林火山 发表于
你以为AI,深度学习很简单吗,硬件只是载体。
关键还是算法与数学模型。
深度学习方法真正的名称叫做卷积神经网络,这些都有的查,matlab里面直接就有函数,google前两年发布的tensorflow就是卷积神经网络,华为的麒麟970芯片,里面集成了这个网络的计算单元,直接利用显卡的多流水线,实现并行处理卷积神经网络是可行的,但是需要有相关的API。你说的算法,如果自定义网络,需要这点是毋庸置疑的,我说的只是卷积神经网络用显卡实现而已,就相当于把在pc上面运行的matlab卷积神经网络,搬到显卡上,利用显卡的并行计算优势。
声望0 精华0帖子八豆9795 积分12155注册时间最后登录
柜台小老板
<em id="authorposton17-9-12 10:44
三度烧伤之复活 发表于
买台品牌工作站或者机架服务器,外插一块丽台GTX1080i
搞开发,做实验的,不如搞台组装机,上多块公版1080TI实在
品牌工作站或者机架服务器价格贵,深度学习需要的是显卡的核心处理能力,其它的优化没用,还增加成本。
声望0 精华0帖子八豆9795 积分12155注册时间最后登录
柜台小老板
<em id="authorposton17-9-12 11:00
本帖最后由 风林火山 于
11:22 编辑
撒哈拉 发表于
深度学习方法真正的名称叫做卷积神经网络,这些都有的查,matlab里面直接就有函数,google前两年发布的te ...
matlab是建模软件,做数学模型用的,与Excel一样工具而已
麒麟970芯片,只是硬件范畴,关键还是算法与数学模型。
通俗一点讲:教一个3岁小孩1+1=2,不在呼谁教(家长/幼儿园老师还是培训机构的教员),也不在呼用什么教具(2根金条或者2根草木棍),只要让孩子知道1+1=2就行,关键在于方法。
声望4 精华4帖子八豆7564 积分10659注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-12 12:52
风林火山 发表于
matlab是建模软件,做数学模型用的,与Excel一样工具而已
麒麟970芯片,只是硬件范畴,关键还是算法与数学 ...
同意,不过不得不说目前的人工智能算法还是建立在上世纪九十年代的人工神经网络基础上,并未发生大的进步,如果谁能在算法上推进,那至少不是一般人能够评判的。
声望0 精华0帖子八豆3784 积分3854注册时间最后登录
卖盗版光盘的
<em id="authorposton17-9-13 16:49
如果只是学习,1060 6gb或者1070 8gb就够了,主板随便,内存16g就可以了。
声望1 精华1帖子八豆10687 积分12370注册时间最后登录
柜台小老板
<em id="authorposton17-9-13 17:27
人空瘦 发表于
如果只是学习,1060 6gb或者1070 8gb就够了,主板随便,内存16g就可以了。
学习?什么机器都可以吧
声望0 精华0帖子八豆3784 积分3854注册时间最后登录
卖盗版光盘的
<em id="authorposton17-9-13 17:55
clearsky 发表于
学习?什么机器都可以吧
声望3 精华3帖子八豆12416 积分19360注册时间最后登录
电脑公司总经理
<em id="authorposton17-9-13 20:58
dcyxj 发表于
装一种解马软件,然后在播放马上科交片时,利用这块显卡强大的处理性能,能带马上的一切物体拉下来,即下 ...
我就喜欢你这种
一本正经的胡说八道
声望0 精华0帖子八豆7063 积分7385注册时间最后登录
电脑公司销售员
<em id="authorposton17-9-13 21:22
配个5820K或者6800K,板子便宜些,新架构太贵了,省点钱在存储上,深度学习你要N卡肯定是为了支持CUDA的吧,不如直接titan,或者买公版1080ti保值率高些。
声望0 精华0帖子八豆9207 积分11382注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-13 22:18
淘宝有租&&最高4路GTX1080TI 远程速度杠杠的 价格便宜很多 搜 租GPU服务器
声望0 精华0帖子八豆4907 积分5975注册时间最后登录
电脑装机工
<em id="authorposton17-9-14 09:01
一个个说的跟真的一样
不知道多看看就能到心中**的境界??
声望22 精华17帖子八豆32207 积分34570注册时间最后登录
<em id="authorposton17-9-14 09:01
直接讲 挖矿 呗
声望0 精华0帖子八豆5032 积分5273注册时间最后登录
电脑装机工
<em id="authorposton17-9-14 09:49
要服务器主板,自己用就X99的板子去搞,不过,提醒一下,这玩意儿发热与噪音真的很大
声望5 精华0帖子八豆51407 积分52119注册时间最后登录
<em id="authorposton17-9-14 10:09
上个K40,杠杠的
声望0 精华0帖子八豆2096 积分2716注册时间最后登录
珠江路上卖盒饭的
<em id="authorposton17-9-14 17:12
根本轮不到你去选择芯片。你只是配置一下tensorflow而已。
学习Deep Learning和显卡没关系,CPU一样用。你又没有100w条数据要跑。
关键是算法和模型。
以及具体问题的设计和调参。
虽然叫机器学习,但人对业务问题的理解和数字的感知能力占据模型优劣的绝大部分。
声望4 精华4帖子八豆7564 积分10659注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-18 23:10
上山打老hu 发表于
根本轮不到你去选择芯片。你只是配置一下tensorflow而已。
学习Deep Learning和显卡没关系,CPU一样用。你 ...
说的很好,问题在有什么的软件可以直接调用显卡的计算能力?
声望0 精华0帖子八豆4369 积分9237注册时间最后登录
电脑公司部门经理
<em id="authorposton17-9-19 12:25
看不懂。帮顶
累计在线时长超过1000小时
论坛老用户在新版论坛发贴数量达到10个
老用户发帖300个,在线300小时
在世界末日前积累一定精华帖
十二生肖o蛇
参加神秘活动获得
车子棒思密达
韩系车主,用户在指定帖子中申请获得
十二生肖o马
参加神秘活动获得
江苏电信翼友会会员
别逼我变形
美系车主,用户在指定帖子中申请获得
论坛元老,论坛创始到2004年间注册且发帖数大于200的论坛用户。
Powered by789被浏览43450分享邀请回答1添加评论分享收藏感谢收起成本14,000元,如何自己动手搭建深度学习服务器?
成本14,000元,如何自己动手搭建深度学习服务器?
选自medium机器之心编译参与:曹瑞、李泽南在完成 Jeremy Howard 非常出色的深度学习第一部分课程之后,我查看了一下我的亚马逊网络服务(AWS)账单,发现我每个月运行 GPU 都要花费差不多 200 美元。以这样的代价来完成网络课程看起来代价有点大,而且我已开始着手研究一些课程以外的数据集,并迫切地想得出结果。通过与大家进行交流,阅读了大量博客文章之后,我最终决定开始配置自己的深度学习服务器。当今科技和硬件的发展是如此的迅猛,我担心我曾阅读过的文章很快就会过时,但我希望自己的以下总结能够为大家带来帮助。配置服务器的 6 大步骤:1. 选择组件2. 组装3. 安装操作系统4. 安装驱动程序5. 安装库6. 设置远程访问1. 选择部件我阅读了大量博客,最终形成了现在应该选择哪种配置的概念。因为硬件更新换代太快,在下个世代到来时到底该买哪些型号的部件,这一问题还是得留给你们研究。但是一般而言,你需要选购以下部件:主板、CPU、内存(随机存取存储器,RAM)、硬盘驱动器(固态硬盘,SSD)、显卡(GPU)、CPU 风扇、电源和机箱。P.S. 我强烈建议你在购买之前在
上创建一个清单。这个网站的特色在于它有一个「兼容性检查」的功能,它会告诉你自己选择的部件是否互相兼容。我的列表在这里。部件清单(原文为美国市场价,机器之心将其替换为 2 月 23 日,京东自营/淘宝价)CPU—英特尔 i7 7700k(Kabylake)4.2GHz 四核 2799 元内存—海盗船 复仇者 LPX 32GB (2 x 16) DDR4– 元固态硬盘—三星 850 EVO sata3 500G 1299 元GPU—索泰 GeForce GTX 1080 8GB 4999 元主板—微星 Z270-A PRO ATX LGA 元CPU 风扇—酷冷至尊 Hyper 212 EVO 82.9 CFM 128 元供电电源—EVGA SuperNOVA G2 750W ATX 879 元机箱—NZXT S340 (White) ATX Mid Tower Case 369 元总价:14,271 元我决定从单块显卡开始自己的装机之路,但我选择的微星 (MSI) 主板有多个 PCIe 通道,这意味着如果有需要,我可以在未来添加更多的 GPU。一般而言,我都会选择那些用户评论数最多的硬件,即使这些评论褒贬不一。但评论意味着部件受欢迎的程度,用户数量越大,就越有可能出现用户自行创建的使用指南和建议。这会为你接下来的两个步骤免去了很大的痛苦。一些实用的文章:Build Personal Deep Learning Rig (/blog/en/my-works/building-our-personal-deep-learning-rig-gtx-1080-ubuntu-16-04-cuda-8-0rc-cudnn-7-tensorflowmxnetcaffedarknet/)Optimizing a Starter CUDA Build (/optimizing-a-starter-cuda-machine-learning-ai-deep-learning-build/)Building a Deep Learning Dream Machine (http://graphific.github.io/posts/building-a-deep-learning-dream-machine/)Deep Learning Hardware Guide(//deep-learning-hardware-guide/)2. 组装这一部分非常有趣。几乎所有的部件,我都可以在网上找到相关的指导性视频,但是有一些部件我必须要根据相似型号的安装视频才可以。微星主板、酷冷至尊风扇和 NZXT 机箱的指导手册非常不错,但是我还是需要再找一些其他的材料。经验总结买一把好用的螺丝刀——我的螺丝刀非常的差劲,所以很快就让我停滞不前了。买一个杆长一点的螺丝刀,这样你就可以够得到很紧的地方,也是为自己省力。不要吝惜自己的力量——免责声明:要是把什么东西弄坏了,不要怪我。但是至少在两种情况下(CPU 和内存),我因为在安装部件时候用劲太小浪费了好多时间。我担心太过用力,所以如果部件不能够轻松放进去,我就放弃了。至于内存,我几乎在亚马逊上购买了一整套新的芯片。这些情况下,解决的办法就是用力压。理解你的 BIOS——BIOS 是一个预先安装在主板上的软件,是你的机器启动时加载的第一个软件。它基本上是你配置硬件和安装操作系统的一个控制面板。学会如何在 BIOS 上找到「引导盘」(U 盘或是包含操作系统的固态硬盘),怎样选择使用哪一张显卡都是非常重要的。遗憾的是微星的用户手册在这些问题上表达得不甚清楚,但是这个视频(/watch?v=C6mQqlmL5Sc)会让你更好地进行理解。你的显示器没有坏——弄清怎样让显示屏在我的新机器上工作花了我不少时间。我之前曾听说在你第一次启动的时候,你需要将你的 HDMI 线插到主板的某个位置,因为一开始显卡驱动还没有安装。我照做了,但是当我最后启动的时候,显示器上什么都没有。接着我尝试把线插到显卡上,也没有用。最后我尝试将显卡拔出来,把线连上主板并重新启动。终于能看到东西了!这意味着,微星的主板如果不能在 PCIe 通道找到其他的外置显卡,就会默认使用核显。因为在我第一次启动的时候,就安装了显卡,主板就选择使用我的的新新卡。显示器上看不到任何东西是因为我没有安装英伟达的驱动。最后,大功告成了!3. 安装操作系统在显示器可以工作之后,你会看到一个这样的界面。这就是你的 BIOS(注:不同品牌的主板,BIOS 界面略有不同)。我需要更改两处配置,以保证所有的东西都能正常运行:更改启动优先级,替换默认的显卡。在 MSI 主板上预置的 BIOS我计划主要将我的机器用于编程和机器学习,所以我决定要安装 Ubuntu 操作系统。我还希望能够通过我的 Mac 对它进行远程操作,所以我可能不需要 Windows,但是你可以安装双系统。制作安装 Ubuntu 的 U 盘我依照针对 Mac 的说明(/download/desktop/create-a-usb-stick-on-macos),下载了一个叫做 UNetBootin (https://unetbootin.github.io/) 的客户端,它可以为你把所有的事情都处理好。启动 UBUNTU若是一切正常,我应该能够插入我的 U 盘,重启,回答问题,安装一个完全可运行版本的 Ubuntu,准备好进行下一步。但是,我得到的确实这样的错误信息。我按了好几次退出键,之后按了删除键,之后 F1、 F10、 F12、 #%^ 、 $\&]&&&#^,但都没有用。问题在于微星主板已经选择了默认的「启动优先级」。再次进入 BIOS(在开机之后立刻按 F11),我看到 BIOS 的配置是首先启动硬件驱动(三星固态硬盘),这里面是空的,但是也可能会有一大堆选项。解决办法就是把 USB 选项拉到优先级列表的顶部,然后重启。最后,我看到了这十分友好的 Ubuntu 安装屏幕!在安装了 Ubuntu 并且重启之后,我很失望地发现我卡在了 Ubuntu 的加载屏幕上,它就停在了那里,最终超时。这又是怎么了呢?!原来问题在于微星主板内置的显卡(我的 GTX 1080 还在我的咖啡桌上)。它与 Ubuntu 的图形用户界面(GUI)不兼容!这真是经典的鸡和蛋的问题。没有 Ubuntu,我不能下载使用显卡所需的驱动,但是没有显卡,我不能安装 Ubuntu!进入 GRUB (/community/Grub2)。Ubuntu 启动菜单。你可以在开机后按压左 Shift 键进入这一菜单。最后,我找到了两篇非常好的文章(/questions/162075/my-computer-boots-to-a-black-screen-what-options-do-i-have-to-fix-it,/questions/716957/what-do-the-nomodeset-quiet-and-splash-kernel-parameters-mean)帮我解决了这个问题。解决办法就是在启动命令中添加一个 *nomodeset*参数。这帮我安装了一个普通版本的 Ubuntu GUI,得以让我继续进行。4. 安装驱动程序英伟达的驱动是出了名地难运行,这一个也不例外。在其他用户的引导下,我去英伟达的网站下载了 GeForce 驱动程序,接着利用 Ubuntu GUI 对它进行安装。这个错误给我带来了很大的痛苦。无法检测到可兼容的英伟达显卡这又是一个鸡和蛋的问题。我没有再重新接上 GTX 1080 是因为没有驱动程序它无法工作。如果我重新接上,MSI 主板就会开始再次使用它,我就又回到了我开始的地方。解决办法是重新进入 BIOS,改变显卡优先级。我更新了设置,将优先级赋予给内置显卡,而不是选择新的显卡。这样我又可以重新接入 GTX 1080,并正常进入 Ubuntu。你好像在运行 X 服务器我通过使用这里的说明 (/questions/149206/how-to-install-nvidia-run) 解决了这个问题,但是在最初,我都无法通过第一步:「点击 CTRL+ALT+F1,使用你的凭据登录。」我这样做了之后,屏幕又变成了空白,和显示器的连接就断开了。解决方法是启动 Ubuntu,进入文本模式,完成命令行的步骤。更好的办法最终让我感到欣慰的是所有的东西(驱动程序、CUDA、深度学习库等)都可以运行了。但是没过多久,因为一些配置文件我又把事情搞得一团糟。在 Ask Ubuntu 网站上浏览了几个小时之后,我注意到英伟达驱动程序上预先安装了新的 CUDA 8.0 工具箱,让你可以同时安装 CUDA 和驱动程序。我清除了现有的英伟达库,运行了下面的代码,然后一切都便正常运行了。你可以在这里 (/cuda/cuda-quick-start-guide/index.html#ubuntu-x86_64) 看到完整的说明。wget http://developer./compute/cuda/repos/ubuntu/cuda-repo-ubuntu.44-1_amd64.debsudo dpkg -i cuda-repo-ubuntu.44-1_amd64.debsudo apt-get updatesudo apt-get install cuda然后将下面的代码添加多你的~/.bash_文件中:export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}export LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LIBRARY_PATH:+:${LIBRARY_PATH}}5. 安装深度学习库有很多的好文章都对必要的深度学习库和如何安装进行了描述。关键点在于你不能够盲目地跟随这些说明,尤其是关于如何安装的部分。因为这些说明经常更新,你可以在这些库的网站上找到更好的示例。下面是我安装的一些工具:CUDA—利用 GPU 的并行计算平台cuDNN—加速深度学习的英伟达库Anaconda—Python 数据科学 (numpy, scikit, jupyter..)OpenBLAS—快速的线性代数方法Tensorflow—谷歌的机器学习框架Theano—深度学习框架Keras—另一种框架,可以简化 Tensorflow 或 Theano 的工作在这之后,我进行了一些测验以保证一切正常运行,并开始运行 Jupyter 笔记本。6. 设置远程访问再是一个可选步骤。但是如果你希望通过笔记本电脑远程操作,下面是一些方法。Teamviewer 是一款屏幕分享软件。如果你安装了这一软件,并在两个机器上运行,你便可以通过你的笔记本电脑控制 Ubuntu 主机,反之亦可。这让工作变得更加方便,但是在进行屏幕分享时做所有的事情都会有一点延迟且不灵活。SSH 和端口转发我想要远程通过 SSH 访问我的新机器,并且和它进行互动,就好像它是我在笔记本上多了个 Tab 键一样。为了做到这一点,我在 Ubuntu 上安装了 OpenSSH。sudo apt-get install openssh-serversudo service ssh status之后,我将 Comcast 路由器配置到将外部通信量直接转发到我的主机。我根据 Comcast 的说明,出乎意料的是这居然管用!我通过在 www.canyouseeme.org 查看端口 22,确认了这一点。部分过程可能需要你的公共 IP 地址,你可以通过运行下面的代码找到:dig +short
@远程笔记本另外一个很酷的技巧就是,如果你喜欢 Jupyter,你可以在你的深度学习主机上运行你的笔记本,但是在你笔记本电脑上进行浏览和编辑。这里有关于这一技巧的一些教程 (/blog/zero-configuration-remote-jupyter-server/),所以我在下面只列出了命令:$laptop: ssh -l bfortuner@DEEPLEARNINGIP$server: jupyter notebook --no-browser --port=8888$laptop: ssh -NL 8888:localhost:8888 bfortuner@DEEPLEARNINGIP现在你就可以在笔记本电脑的浏览器上访问 http://localhost:8888,开始编辑你在深度学习机器上的笔记本。
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 专业的人工智能媒体和产业服务平台
作者最新文章相关文章推荐
图像灰度值的概念是什么?灰度也可以认为是亮度,简单说就是色彩的深浅程度。
实际上在我们的日常生活中,通过三原色色彩深浅的组合,可以组成各种不同的颜色。产品能够展现的灰度数量越多...
图像灰度值的概念是什么?灰度也可以认为是亮度,简单说就是色彩的深浅程度。
实际上在我们的日常生活中,通过三原色色彩深浅的组合,可以组成各种不同的颜色。产品能够展现的灰度数量越多...
原文链接:/a/5947
深度学习的三种硬件方案:ASIC,FPGA,GPU;你更看好?
二、数据的训练:CPU与GPU之争
在如今的深度学习平台上,CPU面临着一个很尴尬的处境:它很重要又不是太重要。 它很重要,是因为它依旧是主流深度学习平台的重要组成部分:现百...
整个2015年都在买买买。。。买GPU。原因是想赶时髦去玩“深度学习”,但又口袋羞涩。于是整整一年都在各处比较,下单,拆,装,维护。为了省点钱煞费苦心,荒废了很多其他重要事情。所以想把经验教训写下来供...
从深度学习在2012年大放异彩,gpu计算也走入了人们的视线之中,它使得大规模计算神经网络成为可能。人们可以通过07年推出的CUDA(Compute Unified Device Architectu...
深度学习最近取得的成功势不可挡:从图像分类和语音识别到图片标注、理解视觉场景、视频概述、语言翻译、绘画,甚至是生成图像、语音、声音和音乐! 随着我们的家变得越来越智能,你会发现许多设备都会需要连续地使...
转自:/a/3982
今天被罗振宇的跨年演讲刷爆了朋友圈。不过他讲深度学习和GPU的时候,真让人虐心。
显卡的处理器称为图...
Reference.
Theano(Deep Learning Tool) 利用GPU来进行加速的配置及使用64位WIN7上成功安装theano,并运行了g++, GPUUsing the GP...
首先是坑爹的安装
1. Cuda8.0+Tensorflow10.0+cuDNN5.1.5
2. 链接:/tensorflow/tensorflow/tree/...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)少花钱搭建深度学习系统的硬件指南
由于深度学习的计算相当密集,所以有人觉得“必须要购买一个多核快速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缓存大小不应该很重要。下一节进一步分析的结果,也与此结论相一致。所需的CPU时钟频率(frequency)当人们想到快速的CPU时,他们通常首先想到时钟频率(clockrate)。 4GHz真的比3.5GHz快吗?这对于具有相同架构的处理器来说,通常是正确的,例如“Ivy Bridge”。但在不同架构的处理器之间,就不能这样比较了。此外,时钟频率也并非总是最佳的性能指标。在深度学习上,使用CPU的计算很少:比如增加一些变量、评估一些布尔表达式、在GPU或程序中调用一些函数。以上这些都取决于CPU内核时钟率。虽然这个推理似乎是合理的,但是当我运行深度学习程序时,CPU却有100%的使用率,这是为什么?为了找到原因,我做了一些CPU核频率的降频实验。在MNIST和ImageNet上的CPU降频测试 :以上数据,是在具有不同CPU内核时钟频率时,对ImageNet运行200个周期MNIST数据集,或1/4 ImageNet周期所用时间,进行性能测量的。其中以最大时钟频率作为每个CPU的基准线。为了比较:从GTX 680升级到GTX Titan,性能约为15%;从GTX Titan到GTX 980提升20%; GPU超频为所有GPU提升约5%的性能。那么为什么CPU内核频率对系统来说无关紧要,而使用率却是100%?答案可能是CPU缓存未命中(CPU持续忙于访问RAM,但是同时CPU必须等待RAM以跟上其较慢的时钟频率,这可能会导致忙碌和等待两者同时存在的矛盾状态)。如果这是真的,就像上面看到的结果一样,那么CPU内核的降频不会导致性能急剧下降。另外,CPU还执行其他操作,如将数据复制到小批量中,并将准备复制到GPU的数据准备好,但这些操作取决于内存时钟频率,而不是CPU内核时钟频率。所以,现在我们来看看内存方面。RAM时钟频率CPU-RAM,以及与RAM的其他交互,都相当复杂。我将在这里展示一个简化版本的过程。为了能更全面地理解,就我们先来深入了解从CPU RAM到GPU RAM这一过程。CPU内存时钟和RAM交织在一起。您的CPU的内存时钟决定了RAM的最大时钟频率,这两个部分构成CPU的总体内存带宽,但通常RAM本身确定了总体可用带宽,原因是它比CPU内存频率慢。 您可以这样确定带宽:(其中64是指64位CPU架构。对于我的处理器和RAM模块,带宽为51.2GB / s)但是,如果您复制大量的数据,这时会和带宽相关。通常,您的RAM上的时序(例如8-8-8)对于小数据量来说更为相关,并且决定您的CPU等待RAM追赶的时间。但是如上所述,您深入学习程序中的几乎所有数据都将轻松适应CPU缓存,除非因为太大,才无法从缓存中获益。这意味着计时器将是不重要的,而带宽可能才是重要的。那么这与深度学习程序有什么关系呢?我刚刚只是说带宽可能很重要,但是在下一步里,它就不是很重要了。您的RAM的内存带宽决定了一个小批量可以被重写和分配用于初始化GPU传输的速度,但下一步,CPU-RAM到GPU-RAM是真正的瓶颈,这一步使用直接内存存取(DMA)。如上所述,我的RAM模块的内存带宽为51.2GB/ s,但DMA带宽只有12GB / s!DMA带宽与常规带宽有关,但细节并不一定必须了解。如果您想详细了解,可到该维基百科词条查看,您可以在词条内查找RAM模块的DMA带宽(峰值传输限制)。但是先让我们看看DMA是如何工作的吧。(地址:https://en.wikipedia.org/wiki/DDR3_SDRAM#JEDEC_standard_modules)直接内存存取(DMA)具有RAM的CPU只能通过DMA与GPU进行通信。 在第一步中,CPU RAM和GPU RAM都保留特定的DMA传输缓冲区; 在第二步,CPU将请求的数据写入CPU侧的DMA缓冲区; 在第三步中,保留的缓冲区无需CPU的帮助即可传输到GPURAM。 这里有人可能会想:你的PCIe带宽是8GB / s(PCIe 2.0)或15.75GB / s(PCIe 3.0),所以你应该买一个像上面所说的良好峰值传输限制的RAM吗?答案是:不必要。软件在这里会扮演重要角色。如果你以一种聪明的方式进行一些传输,那么你就不再需要那些便宜且慢的内存。 异步迷你批量分配(Asynchronousmini-batch allocation)一旦您的GPU完成了当前迷你批量的计算,它就想立即计算下一迷你批次(mini-batch)。您现在可以初始化DMA传输,然后等待传输完成,以便您的GPU可以继续处理数字。但是有一个更有效的方法:提前准备下一个迷你批量,以便让您的GPU不必等待。这可以轻松且异步地完成,而不会降低GPU性能。用于异步迷你批次分配的CUDA代码:当GPU开始处理当前批次时,执行前两次调用;当GPU完成当前批处理时,执行最后两个调用。数据传输在数据流的第二步同步之前就已经完成,因此GPU处理下一批次将不会有任何延迟。Alex Krishevsky的卷积网络的ImageNet 2012迷你批次的大小为128,仅需要0.35秒就能完成它的完整的反向传递。我们能够在如此短时间内分配下一批吗?如果我们采用大小为128的批次,并且维度244x244x3大小的数据,总量大约为0.085 GB。若使用超慢内存,我们有6.4 GB / s,即每秒75个迷你批次!所以使用异步迷你批量分配,即使是最慢的RAM对深入学习也将足够。如果使用异步迷你批量分配,购买更快的RAM模块没有任何优势。该过程也间接地意味着CPU缓存是无关紧要的。您的CPU的快速覆盖速度(在快速缓存中),以及准备(将缓存写到RAM)一个迷你批次其实并不重要,因为在GPU请求下一个迷你批次之前,整个传输就已经完成了,所以一个大型缓存真的没那么重要。所以底线确实是RAM的时钟频率是无关紧要的,所以买便宜的就行了。但你需要买多少个呢?▍RAM大小您应该至少具有与GPU内存大小相同的RAM。当然,您可以使用较少的RAM,但这样的话可能需要一步一步地传输数据。然而,从我的经验来看,使用更大的RAM会更加方便。心理学告诉我们,专注力是随着时间的推移会慢慢耗尽的一种资源。有些为数不多的硬件,可以帮您节省注意力资源以解决更困难的编程问题, RAM就是其中之一。如果您有更多的RAM,您可以将更多的时间投入到更紧迫的事情上,而不是花费大量的时间来弥补RAM瓶颈。 有了很多RAM,您可以避免这些瓶颈,节省时间并提高生产率,使注意力投入到更紧迫的地方。特别是在Kaggle比赛中,我发现额外的RAM对于特征操作非常有用。所以如果你资金充裕,并做了大量的预处理,那么额外的RAM可能是一个不错的选择。▍硬盘驱动器/SSD在某些情况下,硬盘驱动器可能是深度学习的重大瓶颈。如果您的数据集很大,您通常会在SSD /硬盘驱动器上放一些数据,RAM中也有一些,以及GPURAM中也会放两个迷你批量(mini-batch)。为了不断地供给GPU,我们需要以GPU可以运行完的速度提供新的的迷你批量(mini-batch)。为此,我们需要使用与异步迷你批量分配相同的想法。我们需要异步读取多个小批量的文件,这真的很重要!如果我们不这样做,结果表现会被削弱很多(约5-10%),并且你精心设计的硬件优势将毫无作用(好的深入学习软件在GTX 680也能运行很快,而坏的深入学习软件即使用GTX 980也会步履维艰)考虑到这一点,如果我们将数据保存为32位浮点数据,就会遇到Alex的ImageNet卷积网络遇到的数据传输速率的问题,约每0.3秒0.085GB即290MB / s。如果我们把它保存为jpeg数据,我们可以将它压缩5-15倍,将所需的读取带宽降低到约30MB / s。如果我们看硬盘驱动器的速度,我们通常会看到速度为100-150MB / s,所以这对于压缩为jpeg的数据是足够的。 类似地,一个人可以使用mp3或其他压缩技术处理的声音文件,但是对于处理原始32位浮点数据的其他数据组,难以很好地压缩数据(只能压缩32位浮点数据10-15%)。所以如果你有大的32位数据组,那么你肯定需要一个SSD,因为速度为100-150 MB / s的硬盘会很慢,难以跟上GPU。所以如果你今后有可能遇到这样的数据,那就买一个一个SSD;如果不会遇到那样的数据,一个硬盘驱动器就足够用了。许多人购买SSD是为了感觉上更好:程序启动和响应更快,并且使用大文件进行预处理也更快一些。但是对于深入学习,仅当输入维度很高且无法充分压缩数据时,才用得到SSD。如果您购买SSD,您应该买一个能够容纳您常用大小的数据组的SSD,另外还需要额外留出几十GB的空间。其实,让硬盘驱动器来存储未使用的数据组也是个好主意。▍电源单元(PSU)一般来说,您需要一个足够的PSU来满足未来的所有GPU。 GPU通常会随着时间的推移而更加节能,所以即使当其他组件到了更换的时候,PSU也能继续工作很长时间,所以良好的PSU是一个明智的投资。您可以通过将CPU和GPU的所需瓦数,与其他组件所需瓦数相加,再加上作为电源峰值缓冲的100-300瓦,就能计算出所需的瓦数。 要注意的一个重要部分,是留意您的PSU的PCIe连接器是否支持带有连接线的8pin + 6pin的接头。我买了一个具有6x PCIe端口的PSU,但是只能为8pin或6pin连接器供电,所以我无法使用该PSU运行4个GPU。另一个重要的事情是购买具有高功率效率等级的PSU,特别是当您运行多个GPU并想要运行很长时间。在全功率(瓦特)下运行4个GPU系统,对卷积网进行两个星期的训练,将消耗300-500千瓦时,而在德国的电力成本还要高出20美分/ kWh,即60~100EUR($ 66~111)。如果这个价格是百分之百效率的价格,那么用80%电能训练这样一个网络会额外增加18-26欧元的成本!这对于单个GPU来说要少得多,但在高效电源上花费更多的钱是很有意义的。▍散热(Cooling)散热是十分重要的,它可能引发另一个重要的瓶颈,比不良硬件选择更能降低性能。您的CPU可以使用标准散热器,但是对于GPU,您需要特别注意。现代GPU在运行算法时,会将其速度提高到最大值,同时提高的还有功耗,但一旦GPU达到温度上限阈值(通常为80°C),GPU将降低速度从而避免突破温度阈值。这样可以实现最佳性能,同时避免了GPU过热。然而,典型的风扇速度的预编程,不是为运行深度学习程序而设计的,因此在开始深入学习程序后的几秒内,就达到了温度阈值。结果是性能下降(约几个百分点),对于多个GPU而言,GPU之间存在相互加热的情况,所以整体性能会下降10-25%。由于NVIDIA GPU是首屈一指的游戏GPU,因此针对Windows进行了优化。您可以在Windows中点击几下更改风扇计划,但在Linux中却不行,因为大多数深入学习库是为Linux编写的,这是一个问题。最简单和最有性价比的解决方案是使用一个具有更合理风扇设定的BIOS程序刷新GPU,这样即可以使GPU保持低温,也能使噪音水平达到可接受的阈值(如果使用服务器来作为解决方案,为了避免产生难以忍受的噪音,就要降低风扇的运行速度了)。您也可能超速运行GPU的内存,虽然会产生30-50MHz的噪声,不过也是一个可行的办法。刷新BIO软件是专为Windows设计的,但您可以使用wine操作系统从Linux / Unix操作系统调用该程序。另一个方案是设置您的Xorg服务器(Ubuntu操作系统)的配置,您可以在其中设置 “coolbits”选项。这对于单个GPU非常有效,但是如果您有多个GPU,其中有些是headless GPU,即没有显示器,则必须模拟一个显示器(难度非常高)。我尝试了很长时间,并且使用实时启动CD来恢复我的图形设置,结果令人沮丧,程序始终无法在这个GPU上正常运行。另一个更昂贵也更复杂的方案是使用水来冷却。 对于单个GPU,即使在最大负载下,水冷却法也能降低一半温度,从而使其达不到温度阈值。甚至在多台GPU情况下,空气降温难以应对时,水冷却也可以很好的降温。 水冷却的另一个优点是它运行得更加默默无闻,如果工作的地方运行多个GPU,水冷却将会具有良好的表现。每个GPU的水冷却将耗费大约100美元,还有一些额外的前期成本(约$ 50)。水冷还需要额外的精力来组装您的电脑,但网上有很多详细的指南手册,而且总共只需要几个小时就能搞定。后期维护很简单。根据我的经验,我为我的深入学习集群购买过大型塔,因为他们拥有GPU区域的另加风扇,但我发现这在很大程度上是无关紧要的:大约只下降2-5°C,所以不值得投资那么多钱去买这么庞大的东西。最重要的还是直接对您的GPU采取降温措施:刷新BIOS、使用水冷却法、或忍受打了折扣的运行效果。在某些情况下,以上这些都是合理的选择。你也可以根据自己的需要找出合适的解决方案。▍主板和电脑机箱您的主板应该有足够的PCIe端口,以支持您要运行的GPU数量(通常限于4个GPU,即使还有多余的PCIe插槽);请记住,大多数GPU都需要2个PCIe插槽的宽度,比如您将需要7个插槽来运行4个GPU。 PCIe 2.0接口对于单个GPU来说可以适用;但即使对于单个GPU,PCIe 3.0也更加经济划算;对于多个GPU,通常总会购买PCIe3.0接口,这将是一个好的决定,因为PCIe连接口常常是个瓶颈。主板的选择很简单:选一个支持所需硬件配置的主板。当您选择机箱时,您应该确保它满足GPU的长度要求。大多数机箱都满足,但如果您购买小机箱,您应该多留意,要检查其尺寸和规格;您还可以尝试用Google图像搜索,并查看是否在其中找到带有GPU的图片。我刚开始也认为谈监视器是件愚蠢的事,但后来发现,它们确实有巨大的影响,而且非常重要,所以我必须要写一些关于它的内容。我在3英寸27寸显示器上花费的钱,让我感觉到肉疼。但使用多个显示器时,效率确实提升了很多。如果我只使用单个显示器,我感到非常困难。千万不要在这件事上纠结,试想一下,如果您无法以更高效的方式操作,那么即使有一个特别快速的深度学习系统又有什么用呢?当深度学习系统运行时,典型的显示器布局:左:论文,Google搜索,gmail,中间:代码;右:输出窗口,R,文件夹,系统显示器,GPU显示器,待办事项列表和其他小应用程序。当深度学习系统运行时,典型的显示器布局:左:论文,Google搜索,gmail,中间:代码;右:输出窗口,R,文件夹,系统显示器,GPU显示器,待办事项列表和其他小应用程序。▍建立PC的一些心得很多人都害怕搭建电脑,因为硬件组件特别昂贵,谁都不想花冤枉钱。但是有一个很简单的思路,就是不能装在一起的硬件根本无法凑合。主板手册通常会非常具体地阐明如何组装所有部件。另外,如果您没有经验,还有大量的操作指南和视频教程指导您完成整个过程。自己组装电脑的好处是,一旦你组装过一次,你以后就知道它是如何组装的了,因为所有的电脑都是以相同的方式组建的。组装一台电脑将会成为一种陪伴你一生的技能。所以,立刻亲自尝试一次吧!▍结论/TL; DRGPU :GTX 680或GTX 960(资金有限); GTX 980(最佳性能); GTX Titan(如果你需要内存);GTX 970(无卷积网络);CPU:每个GPU两个线程;完整的40个PCIe线路和合适的PCIe配件(与主板匹配); & 2GHz;快速缓冲存储区无关紧要RAM:使用异步迷你批量配置;时钟频率和计时器并不重要;购买至少与GPU RAM一样多的CPU RAM;硬盘驱动器/ SSD:如果您有图像或声音数据,请使用异步批处理文件读取和压缩数据;除非你使用大的输入维度的32位浮点数据组,否则一个硬盘驱动器就够了。PSU: GPU+ CPU +(100-300)的总瓦数就是所需的电源供应量;如果您使用大的卷积网络,那么,就需要一个带有高效能额定功率的PSU;另外,确保具有足够的PCIe接头(6 + 8pin),以及您将来可能会新购买的GPU所需的电量。散热:如果您运行单个GPU,请在您的配置中设置coolbits标志;否则刷新BIOS以增加风扇速度是最简单和最便宜的;若想没有噪音就使用水冷却法。主板:选择PCIe3.0,以及选择您未来所需GPU数量一样多的扩展插槽数(一个GPU需要两个插槽,每个系统最多4个GPU);显示器:如果要升级系统以提高生产力,相对于升级GPU,多买一台显示器可能更有意义。
(来源:,如对本网转载内容、版权有异议,请联系我们: )
安卓网官方微信
微信号 Hiapk2013
这里有最无节操的小编和最鲜辣的资讯!
手机扫描二维码访问

我要回帖

更多关于 产品成本分析表模板 的文章

 

随机推荐