在完成 Jeremy Howard 非常出色的深度学习第一部分课程之后,我查看了一下我的亚马逊网络服务(AWS)账单,发现我每个月运行 GPU 都要花费差不多 200 美元。以这样的代价来完成网络课程看起来代价有点大,而且我已开始着手研究一些课程以外的数据集,并迫切地想得出结果。
创新互联自2013年起,先为岫岩等服务建站,岫岩等地企业,进行企业商务咨询服务。为岫岩企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
通过与大家进行交流,阅读了大量博客文章之后,我最终决定开始配置自己的深度学习服务器。当今科技和硬件的发展是如此的迅猛,我担心我曾阅读过的文章很快就会过时,但我希望自己的以下总结能够为大家带来帮助。
配置服务器的 6 大步骤:
1). 选择组件
2.) 组装
3). 安装操作系统
4). 安装驱动程序
5). 安装库
6). 设置远程访问
1. 选择部件
我阅读了大量博客,最终形成了现在应该选择哪种配置的概念。因为硬件更新换代太快,在下个世代到来时到底该买哪些型号的部件,这一问题还是得留给你们研究。但是一般而言,你需要选购以下部件:主板、CPU、内存(随机存取存储器,RAM)、硬盘驱动器(固态硬盘,SSD)、显卡(GPU)、CPU 风扇、电源和机箱。
P.S. 我强烈建议你在购买之前在 pcpartpicker.com 上创建一个清单。这个网站的特色在于它有一个「兼容性检查」的功能,它会告诉你自己选择的部件是否互相兼容。我的列表在这里。
部件清单(原文为美国市场价,机器之心将其替换为 2 月 23 日,京东自营/淘宝价)
我决定从单块显卡开始自己的装机之路,但我选择的微星 (MSI) 主板有多个 PCIe 通道,这意味着如果有需要,我可以在未来添加更多的 GPU。一般而言,我都会选择那些用户评论数最多的硬件,即使这些评论褒贬不一。但评论意味着部件受欢迎的程度,用户数量越大,就越有可能出现用户自行创建的使用指南和建议。这会为你接下来的两个步骤免去了很大的痛苦。
一些实用的文章:
2. 组装
这一部分非常有趣。几乎所有的部件,我都可以在网上找到相关的指导性视频,但是有一些部件我必须要根据相似型号的安装视频才可以。微星主板、酷冷至尊风扇和 NZXT 机箱的指导手册非常不错,但是我还是需要再找一些其他的材料。
经验总结
最后,大功告成了!
3. 安装操作系统
在显示器可以工作之后,你会看到一个这样的界面。这就是你的 BIOS(注:不同品牌的主板,BIOS 界面略有不同)。我需要更改两处配置,以保证所有的东西都能正常运行:更改启动优先级,替换默认的显卡。
在 MSI 主板上预置的 BIOS
我计划主要将我的机器用于编程和机器学习,所以我决定要安装 Ubuntu 操作系统。我还希望能够通过我的 Mac 对它进行远程操作,所以我可能不需要 Windows,但是你可以安装双系统。
制作安装 Ubuntu 的 U 盘
我依照针对 Mac 的说明(https://www.ubuntu.com/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
(https://help.ubuntu.com/community/Grub2)。
Ubuntu 启动菜单。你可以在开机后按压左 Shift 键进入这一菜单。
最后,我找到了两篇非常好的文章(http://askubuntu.com/questions/162075/my-computer-boots-to-a-black-screen-what-options-do-i-have-to-fix-it,http://askubuntu.com/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。
我通过使用这里的说明 (http://askubuntu.com/questions/149206/how-to-install-nvidia-run) 解决了这个问题,但是在最初,我都无法通过第一步:「点击 CTRL+ALT+F1,使用你的凭据登录。」我这样做了之后,屏幕又变成了空白,和显示器的连接就断开了。解决方法是启动 Ubuntu,进入文本模式,完成命令行的步骤。
更好的办法
最终让我感到欣慰的是所有的东西(驱动程序、CUDA、深度学习库等)都可以运行了。但是没过多久,因为一些配置文件我又把事情搞得一团糟。
在 Ask Ubuntu 网站上浏览了几个小时之后,我注意到英伟达驱动程序上预先安装了新的 CUDA 8.0 工具箱,让你可以同时安装 CUDA 和驱动程序。
我清除了现有的英伟达库,运行了下面的代码,然后一切都便正常运行了。你可以在这里 (http://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#ubuntu-x86_64) 看到完整的说明。
- wget
- http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
- sudo dpkg -i cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
- sudo apt-get update
- sudo 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. 安装深度学习库
有很多的好文章都对必要的深度学习库和如何安装进行了描述。关键点在于你不能够盲目地跟随这些说明,尤其是关于如何安装的部分。因为这些说明经常更新,你可以在这些库的网站上找到更好的示例。下面是我安装的一些工具:
在这之后,我进行了一些测验以保证一切正常运行,并开始运行 Jupyter 笔记本。
6. 设置远程访问
再是一个可选步骤。但是如果你希望通过笔记本电脑远程操作,下面是一些方法。
Teamviewer 是一款屏幕分享软件。如果你安装了这一软件,并在两个机器上运行,你便可以通过你的笔记本电脑控制 Ubuntu 主机,反之亦可。这让工作变得更加方便,但是在进行屏幕分享时做所有的事情都会有一点延迟且不灵活。
SSH 和端口转发
我想要远程通过 SSH 访问我的新机器,并且和它进行互动,就好像它是我在笔记本上多了个 Tab 键一样。为了做到这一点,我在 Ubuntu 上安装了 OpenSSH。
- sudo apt-get install openssh-server
- sudo service ssh status
之后,我将 Comcast 路由器配置到将外部通信量直接转发到我的主机。我根据 Comcast 的说明,出乎意料的是这居然管用!我通过在 www.canyouseeme.org 查看端口 22,确认了这一点。部分过程可能需要你的公共 IP 地址,你可以通过运行下面的代码找到:
- dig +short myip.opendns.com @resolver1.opendns.com
远程笔记本
另外一个很酷的技巧就是,如果你喜欢 Jupyter,你可以在你的深度学习主机上运行你的笔记本,但是在你笔记本电脑上进行浏览和编辑。这里有关于这一技巧的一些教程 (http://www.justinkiggins.com/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,开始编辑你在深度学习机器上的笔记本。
【本文是专栏机构机器之心的原创文章,微信公众号“机器之心( id: almosthuman2014)”】
分享标题:成本14,000元,如何自己动手搭建深度学习服务器?
文章起源:http://www.stwzsj.com/qtweb/news8/8508.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联