游戏迷提供最新游戏下载和手游攻略!

使用AMD CPU构建自己的深度学习服务器

发布时间:2024-10-17浏览:29

集合

制作零件清单

在准备零件之前,您需要准确地弄清楚您想要从机器中获得什么。就我个人而言,我希望得到以下改进:

比Amazon p2 Room 更强大,可提供额外的GPU、RAM、存储和定制液体冷却将持续很长时间硬件预算约为3000 美元我使用pcpartpicker.com (http://pcpartpicker.com/) 来分解组件,因为它可以比较和组装其他零件变得很容易,并且有一个很棒的零件兼容性检查器。我将详细解释为什么选择每个组件以及它们如何与整个系统一起工作。以下是我的服务器链接地址:https://pcpartpicker.com/b/CgpG3C。

GPU: GTX 1080 Ti 混合

因为您使用显卡来训练模型,所以这是组装过程中最重要的部分,因此GPU 越强大,处理大型数据集的速度就越快。 GPU 内存越大,处理能力就越强(例如,训练速度更快、批量大小更大……)。我为我的服务器选择了其中两个显卡,因为我的预算中有足够的空间,因此我可以在一张卡上训练模型,并让另一个用户在第二张卡上训练他们的模型。您可以根据预算缩小GPU 内存(1070、1060 等),以防止它与其他组件竞争。 Hybrid 1080 GPU 也很不错,因为除了大多数GPU 所具有的普通风扇冷却之外,它还预装了aio 水冷。 1080 Ti 在满负载运行时可能会过热,因此良好的冷却系统对于延长卡的使用寿命并在训练模型时保持其性能至关重要。有关显卡选择的更多详细信息,请参阅http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/,它帮助我真正了解了如何选择适合深度学习环境的显卡。

CPU: AMD Threadripper 1900x

即使您使用显卡来训练神经网络,CPU 仍然很重要,因为您使用它来进行数据准备等操作,因此这些多核CPU 将有助于加快速度。我使用“Threadripper”Treadripper,因为它是市场上非常新的多核CPU(ThreadRipper第二代有32个核心!)并且比Intel便宜得多。 1900x 是去年发布的基础TR,它只有8 个核心,但我对这款服务器的总体目标是保持其可升级性。

需要注意的一点是,在选择CPU 时,请确保您有8 或16 个PCIe 显卡插槽,以确保它们在低负载下发挥最佳性能,否则您将面临系统堵塞的风险。在高端CPU 上,如果您的服务器中有4 个显卡,那么您就有足够的PCIe 插槽。

主板:微星X399 SLI Plus

之所以选择这款主板,是因为它是全ATX主板,可容纳4个GPU和高达128GB的RAM。正如我之前所说,该服务器的主要目标之一是保持其可升级性。

内存:32GB Corsair Vengeance LPX DDR4 (2 x 16GB)

内存越大,处理大数据集就越容易。我的下一个升级计划是再添加两个16GB RAM 内存条,这就是为什么我没有安装四通道内存(4 x 8GB 内存条),尽管这会提高服务器的性能。

存储:256GB 三星SSD 2TB HDD

我将Ubuntu、我所有的库、我正在处理的数据集都保存在SSD 上,以及我拥有的所有其他内容都保存在2TB HDD 上。

散热器:Corsair H100i v2 液冷器

Threadripper 没有备用冷却器(如果你有30 美元的闲钱,你至少应该买一个便宜的二手冷却器),所以我想要一个便宜且易于维护的冷却器,可以全天候使用。这种一体式冷却器易于安装、极其可靠(在数十万台中,也许只有一两台会泄漏冷却液)并且安静。

电源:EVGA SuperNOVA 1000w 80+金牌认证

最好有一个比技术要求更大功率的PSU。 PCPartpicker的功率计算器可以让您粗略地了解您需要多少功率(我的服务器是824w),但是它经常会弄错数字,所以最好谨慎行事,以防您的计算机无法启动。 “金牌认证”只是指PSU 的效率(有多少电力被浪费为热量)。

机箱:Corsair 760T 全塔式

我选择这种情况是因为价格和内部空间的大小。虽然它不会加快您的模型训练速度,但透明侧面板和红色LED 确实让您看起来更酷。

这张照片里的东西花了我一年的积蓄和毕业钱。

将各个部分放在一起

您可能不太了解如何组装计算机。这个过程实际上就像组装一套昂贵的乐高积木。任何人都可以做到,因为它非常简单。我将向您简要介绍如何构建计算机,并且强烈建议您在构建自己的计算机时观看完整视频(https://www.youtube.com/watch?v=IhX0fOUYd8Q)。这些说明几乎适用于您使用的任何计算机,就像我上面链接的视频指南一样。

步骤一:组装CPU

这可能是组装计算机过程中最可怕的部分,因为您必须遵循特定的步骤,并且可能会因为一些小事故(例如损坏CPU 引脚)而毁掉价值430 美元的CPU。但这一步其实很简单,你只需要确保在组装之前观看视频教程即可。 Threadripper 的安装过程略有不同,因为在大多数主板上,您不需要“锁定”处理器,而是使用单个笼子。

第2 步:组装电源

安装电源的顺序没有正确或错误之分,但我喜欢先将PSU 放入盒子中,因为在某些情况下,您需要将PSU 卡入插槽,以便可以“穿过主板”。

第三步:组装其他部件

这是至关重要的一步。一旦主板安装完毕,剩下的安装就很容易了。我将按以下顺序安装它:

安装内存。这就像按照正确的方向移动内存模块并将插槽正确地按入主板一样简单(请参阅安装手册,因为插槽取决于您拥有的内存模块的数量)。安装CPU 散热器。唯一的小问题是我必须更换安装支架才能兼容TR,这需要付出很大的努力。安装散热器需要8个螺栓,我安装了。安装显卡。只需将显卡安装到主板上的特定卡插槽中(例如记忆棒,请参阅手册以了解哪些插槽可以容纳该卡),然后将散热器固定到机箱上。确保您的冷却器位于GPU 上方。我在上图中犯了一个小错误,所以我不得不把它挂回机箱的前面板上。安装存储。为了更好的散热,我拆掉了一块驱动板,因此我将SSD和HDD放置在右下角的单个驱动器托架中。第四步:安装成功?

您现在可以打开您的设备。起初,由于我的设备电源按钮上的正负极线接反了,所以我的设备没有成功开机,但随后仍然出现了预期的白灯和红灯。如果一切顺利,您可以看到计算机屏幕亮起,然后主板开始搜索启动设备。

设置服务器

安装操作系统

下一步是安装操作系统。我使用的是Linux,因为大多数深度学习框架都是为该系统设计的。使用的台式电脑是Ubuntu 16.04 LTS,所有东西都可以使用USB安装。有许多免费工具,例如UNetbootin 或Rufus(仅限Windows),可以下载到USB 闪存驱动器并用作备份。以下教程涵盖了在Mac 上创建可启动USB 的完整过程(https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-macos?_ga=2.169997348.541383618.1529376295-1852780805.1529376295#0),如果您使用Windows,可以打开此链接:https://www.howtogeek.com/howto/linux/create-a-bootable-ubuntu-usb-flash-drive-the-easy-way/。

设置SSH

第一步:端口映射

您需要对所有路由器执行类似的过程。如果是Apple路由器,您可以按照以下指南操作:https://portforward.com/apple/。步骤如下: 1. 为您的服务器设置一个静态IP,以防止每次关闭时它都发生变化。 2. 使用Apple Airport Utility 登录路由器。 3. 映射服务器的端口。要完成此步骤,您需要找到服务器的MAC 地址。如何在Ubuntu中查找地址可以查看这个链接:http://technologyinfinite.blogspot.com/2016/07/Three-simple-ways-to-find-mac-address .html。 (http://technologyinfinite.blogspot.com/2016/07/Three-simple-ways-to-find-mac-address.html%E3%80%82)

步骤2:创建动态IP 地址

我之前为服务器创建了一个动态IP 地址,这样我就可以从终端远程连接到它。您可以通过本网站(http://canyouseeme.org/)验证其有效性。

输入这样的命令来连接到我的服务器:

ssh [我的用户名]@[我的IP] -L 8888:[dl-rig_static_ip]:8889

我的服务器在端口8888 上运行,jupyter 笔记本在8889 上运行(-L 选项将指定的本机端口重定向到不同的主机和端口)。这样我们就可以在本地运行我们的设备并与服务器同时进行测试以进行训练。如果您不想这样做,只需在-L 之前输入所有内容即可。在下一节中,我将解释如何更改运行jupyter 笔记本的端口。

安装深度学习/机器学习库

现在您需要安装所有深度学习/机器学习相关的库。我将把安装脚本分成几个部分,以便您更容易理解。该脚本基于Jeremy Howard 编写的install-gpu.sh (https://github.com/fastai/courses/blob/master/setup/install-gpu.sh)。里面有很多东西不仅因为它们是实用工具,尤其是因为这就是我们在Fastai中要使用的东西。

首先,我们需要确保系统是最新的并且安装了我们需要的所有基本工具包:

sudo apt-get 更新

sudo apt-get --assume-yes 升级

sudo apt-get --assume-yes install tmux build-essential gcc g++ make binutils 解压

sudo apt-get --assume-yes 安装软件属性-common

sudo apt-get --assume-yes 安装git

下一步是下载并安装所有CUDA GPU 的驱动程序包:

mkdir ~/downloadscd ~/下载

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

sudo apt-get 更新

sudo apt-get -y 安装cuda

sudo apt-get --assume-yes 升级

sudo apt-get --assume-yes 自动删除

sudo apt-get install cuda-toolkit-9.0 cuda-command-line-tools-9-0

现在我们开始验证CUDA 是否安装正确:

须藤modprobe 英伟达

nvcc--版本

英伟达-SMI

现在,让我们将CUDA(Nvidia 深度学习api)添加到路径变量中:

猫~/.bashrc 'EOF'

导出路径=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

导出LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\

${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

EOF

源~/.bashrc

下一步是安装CuDNN 库(创建神经网络所需):

wget http://files.fast.ai/files/cudnn-9.1-linux-x64-v7.tgz

tar xf cudnn-9.1-linux-x64-v7.tgz

sudo cp cuda/include/*.* /usr/local/cuda/include/

sudo cp cuda/lib64/*.* /usr/local/cuda/lib64/

现在我们为当前用户安装Anaconda:

wget 'https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh'

bash'Anaconda3-5.0.1-Linux-x86_64.sh'-b

光盘~

echo '导出PATH=\'$HOME/anaconda3/bin:\$PATH\'' ~/.bashrc

导出路径='$HOME/anaconda3/bin:$PATH'

conda 安装-y bcolz

conda 升级-y --全部

接下来,安装Tensorflow 和Keras:

pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp36-cp36m-linux_x86_64.whl

pip安装keras

mkdir ~/.keras

回声'{

'image_dim_ordering': 'tf',

'': 1e-07,

'floatx': 'float32',

'后端': '张量流'

}' ~/.keras/keras.json

接下来,我们将为Fastai 安装Python 依赖项:

mkdir -p ~/development/_training/ml

cd ~/development/_training/ml

git 克隆https://github.com/fastai/fastai.git

法斯塔

conda 环境更新

以下部分介绍如何配置jupyter Notebook:

# 不注释下一行将提示您提供密码

# 与您的jupyter 笔记本一起使用。

jupass=`python -c '来自notebook.auth import passwd;打印(密码())'`

# 将密码硬编码到上面的“jupyter”注释行并取消注释下面的行。

#jupass=sha1:85ff16c0f1a9:c296112bf7b82121f5ec73ef4c1b9305b9e538af

# 为jupyter 笔记本创建ssl 证书

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout $HOME/mykey.key -out $HOME/mycert.pem -subj '/C=IE'

# 配置笔记本

echo 'c.NotebookApp.certfile=u'/home/{user}/mycert.pem'' $HOME/.jupyter/jupyter_notebook_config.py

echo 'c.NotebookApp.keyfile=u'/home/{user}/mykey.key'' $HOME/.jupyter/jupyter_notebook_config.py

echo 'c.NotebookApp.password=u''$jupass''' $HOME/.jupyter/jupyter_notebook_config.py

echo 'c.NotebookApp.ip='*'' $HOME/.jupyter/jupyter_notebook_config.py

echo 'c.NotebookApp.open_browser=False' $HOME/.jupyter/jupyter_notebook_config.py

要更改运行Jupyter 笔记本的默认端口(端口8888),请取消注释并输入所需的端口。这允许您同时在服务器和本地运行笔记本,并允许多个用户在您使用笔记本时使用他们自己的笔记本。

#echo 'c.NotebookApp.port=9999' $HOME/.jupyter/jupyter_notebook_config.py

现在我们开始配置tmux。该工具允许我们在终端窗口中创建多个“窗口”,同时在断开连接后仍保持程序运行。这个文件需要检查,因为它有助于我们了解tmux 的所有功能。它非常有用,因为您可以在一个窗口中运行笔记本,在另一个窗口中监视GPU 使用情况,并在第三个窗口中打开Linux 终端:

pip 安装tmuxp

mkdir ~/.tmuxp

接下来,我们将为tmuxp 创建一个配置文件,它将在单个命令中设置开发环境,这样我们就不需要每次要处理事情时都配置窗口并启用Jupyter Notebook。对于fastai 环境,我们将首先使用tmuxp 加载fastai。请参阅使用tmuxp 的链接,这里是bash 脚本中的文档,用于在服务器重新启动时保存tmux 会话。现在我们来配置运行环境。

猫$HOME/.tmuxp/fastai.yml

session_name: 快泰

视窗:

- window_name: 开发窗口

布局:主垂直

选项:

主窗格宽度: 140

shell_command_before:

# 在所有窗格中作为第一个命令运行

- cd ~/development/_training/ml/fastai

- 源激活fastai

窗格:

- shell_command:

-清除

- shell_command:

- 清除

- jupyter笔记本

- shell_command:

- 观看-n 0.5 nvidia-smi

Tmuxp 配置

由于我们不再需要这些,我们可以删除安装文件:

cd ~/下载

rm -rf cuda-repo-ubuntu1604_9.0.176-1_amd64.deb xf cudnn-9.1-linux-x64-v7.tgz Anaconda3-5.0.1-Linux-x86_64.sh

光盘~

就是这样。当我写这篇文章时,服务器正在24/7 运行,没有任何问题、没有噪音并且非常容易地通过训练。

用户评论

请在乎我1秒

我一直想自己组一台深度学习服务器!看到这篇文章,感觉找到了宝藏指南!我的想法是选用 Ryzen 9 7950X,听说性能强劲,能轻松搞定各种模型训练。请问哪款主板推荐呢?

    有15位网友表示赞同!

北染陌人

AMD CPU确实在深度学习方面很有优势,特别是那些拥有多核心和高频率的型号。不过选购的时候还是要结合具体的预算和需求来选择合适的型号啊!这个教程讲得很清楚了!我也想去尝试一下。

    有12位网友表示赞同!

你与清晨阳光

说 AMD CPU 适合深度学习服务器倒是不假,但是单从 CPU 性能来说,也比不上 Intel 的顶级处理器。最终效果还得看 GPU 能否跟上 CPU 的节奏呢? 这篇文章缺乏对 GPU 系统的详细介绍

    有11位网友表示赞同!

墨城烟柳

想打造一台深度学习服务器,AMD CPU 是不错的选择,而且性价比更高一些。我最近也在研究这个方向,这篇文章很有用!分享一下你的搭建经验吗?

    有14位网友表示赞同!

念初

深度学习服务器确实很酷,但是我的知识水平有限,对于这些配置信息有点懵懂啊。希望以后能看到更详细的教程,或者一些入门级的指南!

    有6位网友表示赞同!

孤街浪途

搭建深度学习服务器需要考虑很多因素,不仅仅是 CPU 的性能问题。存储、网络、操作系统等等也都是重要的硬件条件和软件环境呢!这篇文章只关注CPU配置,感觉有点片面呀。

    有9位网友表示赞同!

嘲笑!

看来 AMD CPU 在深度学习领域确实很有竞争力了。我之前对这方面知之甚少,现在看来搭建一台深度学习服务器似乎不再那么遥不可及了!

    有17位网友表示赞同!

代价是折磨╳

搭建深度学习服务器虽然可以自己动手完成,但是需要一定的硬件知识和经验。对于新手来说,可能还是选择一些现成的云计算平台比较合适吧!

    有6位网友表示赞同!

巷雨优美回忆

amd cpu 在深度学习上表现不错, 能够负担得起成本就可以选用, 节省了部分不必要的开销,而且 AMD 的多核性能一直都是优势之一。

    有6位网友表示赞同!

迷路的男人

这篇文章很有实践意义,适合想学习搭建深度学习服务器的同学参考。但是对于一些比较细节性的问题,还需要进一步了解和学习啊!

    有14位网友表示赞同!

走过海棠暮

想要打造一台高性能的深度学习服务器,CPU 性能是重要的基础因素。AMD 最近几年在 CPU 处理器技术上进步很大,而且价格相对 Intel 的主流产品更实惠,非常适合预算有限的用户选择!

    有8位网友表示赞同!

断秋风

对于深度学习模型训练,GPU 才是王道啊!不过选用合适的 CPU 也能够提高系统性能和效率,尤其是像 AMD 新一代的 Ryzen 处理器,多核数量和频率都超过了不少 Intel 产品。 这篇文章对 CPU 的介绍很到位,让我对选择 AMD 心动啦!

    有18位网友表示赞同!

江山策

搭建深度学习服务器需要考虑很多方面,CPU 只是其中一部分。选购主板、内存、硬盘等等都是关键环节,还需要根据实际需求来选择合适的配置方案啊!

    有6位网友表示赞同!

七夏i

使用 AMD CPU 搭建深度学习服务器确实是一个比较实惠的选择,特别是对于一些预算有限的爱好者来说更是一大福音! 希望这篇文章可以帮助更多人实现自己的深度学习梦想!

    有14位网友表示赞同!

繁华若梦

我之前一直是 Intel 阵营,不过最近听说 AMD 的 Ryzen 处理器在深度学习方面表现出色。准备入手一块 Ryzen 9 7950X试试水,这篇文章给了我很大的启发!谢谢分享!

    有10位网友表示赞同!

妄灸

这个教程太棒了!终于知道怎么选购合适 AMD CPU 搭建深度学习服务器了!我马上就会行动起来!

    有6位网友表示赞同!

苍白的笑〃

搭建深度学习服务器成本可不低啊!光 CPU 就得上千元,而且还需要考虑其他硬件配置的费用。不过想想能够自己搭建一台高性能的机器,还是很值得的!

    有16位网友表示赞同!

?亡梦爱人

感觉文章没说到深度学习常用的框架、工具和算法啊,只有CPU配置介绍,很多读者可能想了解更全面的信息!希望能发一些后续内容分享更多实战经验啊!

    有10位网友表示赞同!

热点资讯