关于深度学习主机的一些选配问题

2023-05-16

作为一个深度学习的初学者,你可能会遇到这样的问题:“我该如何训练我自己或者别人的Model?”“我该如何配置一台合适的主机?”“目前有哪几种训练模型的方式?”
接下来,我将会对此进行详细的介绍,当然,这只是我个人的一些观点,如有不对的地方还希望大家能够体谅!

文章目录
一、 目前有哪几种训练模型的方式?
方案一:配置一个“本地服务器”–通俗来说就是一台“高配”电脑。
方案二:配置一台自己的“云服务器主机
方案三:配置一个“深度学习集群"
二、 我该如何配置一台自己主机呢?
注意事项
一、 目前有哪几种训练模型的方式?
方案一:配置一个“本地服务器”–通俗来说就是一台“高配”电脑。
优点:比较自由,不受约束。
缺点:价格昂贵,需要考虑金钱问题。(配置一台初级的深度学习主机大概需要1.5w左右,具体细节请看下文)
适用情况:
1)你本人有充足的的资金;
2)需要发表论文,多次训练自己的Model;
3)尝试运行别人的Model;
4)想要从事深度学习领域的研究;

方案二:配置一台自己的“云服务器主机
优点:可以按照项目的需要选择合适的配置,比较灵活。
缺点:针对个人来讲,价格还是比较贵的。
适用情况:
1)由于项目的需要,需要使用到深度学习,需要训练Model;
2)初创企业
注:根据我个人的了解,当前云服务器的计费方式主要有两种:按时计费、按月计费和按年计费。国内有的公司提供了相应的GPU服务器和FPGA服务器平台,但是还处于测试阶段。详细的介绍请看下文。

方案三:配置一个“深度学习集群"
优点:更快更高效的获得自己的Model,即加快开发的效率;
缺点:对于个人来讲不太现实,一般是大公司的选择;
适用情况:
1)具有雄厚基金的大公司,如BAT等都有自己的深度学习集群平台和自己的深度学习框架;
2)深度学习领域的初创公司;以上就是3种训练Model的方式,下面我将会给出一些有用的云服务器连接,感兴趣的同学可以自己探索。

百度AI云服务器,支持PaddelPaddel和Tensorflow
腾讯云服务器,支持GPU云服务器和FPGA云服务器,后者处于内测阶段
阿里云服务器,支持GPU云服务器和FPGA云服务器,后者处于内测阶段
华为机器学习云服务器
微软云服务器,国内不支持GPU服务器,北美支持
联众集群,一个专业的GPU集群解决方案提供商
二、 我该如何配置一台自己主机呢?
要配置一台深度学习主机,你需要选择合适的CPU、GPU、内存条、固态硬盘、电源、散热、机箱、主板等(最好支持PICE,应用于多GPU的其概况下)。下面进行详细的解读:

GPU:即图像处理单元,最为一个并行处理器,起初是专门用来处理图像的,但是由于大数据的驱动,如今的它已经广泛的应用到了多个领域中,包括“深度学习”“智能驾驶”“VR”等。

由于它可以利用多个线程来进行高速的矩阵运算,而深度学习中会涉及到很多的矩阵运算。这正是它的用武之地。因此选择一个合适的GPU变得“至关重要”。

深度学习中常用的GPU包括:GTX960,GTX970,GTX1080, TiTan x,GTX1080Ti等,以上的GPU都属于GeForce系列,进行“单浮点运算”,都是一些比较新的型号具有很强的性能,按照以上的顺序性能依次提升,最主要的改变是在“架构和SM(线程个数)”方面,960,970都属于“Maxwell架构”,而后三者都是“Pascal架构”。当然他们的价格也是逐渐升高,你需要根据自己的资本选择合适的GPU。总之“一个好的GPU可以将你的训练时间从几周缩减成几天”。

如果资金充足,建议选择后三者。

CPU:作为一个高速的串行处理器,常用来作为“控制器”使用,用来发送和接收指令,解析指令等。

深度学习为什么需要CPU?期初的我也不明白原因。但是阅读了一些资料以后,我开始有了自己的见解。最主要的原因是:由于GPU内部结构的限制,使得它比较适合进行高速的并行运算,而并不适合进行快速的指令控制,而且许多的数据需要在GPU和CPU之间进行存取,这就需要用到CPU,因为这是它的强项。

总之,对于深度学习来说,对CPU的要求不是特别高,你需要记住一个原则是“你需要选择一个好的GPU,一个较好的CPU”,这样可以节约一部分成本,同时有相似的性能。

内存条:大家对它都很熟悉,主要进行CPU和外设之间的数据交换,它的存取速度要比硬盘快好几倍,但是价格比较昂贵,通常会和容量成正比。

在深度学习中,会涉及到大量的数据交换操作(例如按batch读取数据)。当然你也可以选择将数据存储在硬盘上,每次读取很小的batch块,这样你的训练周期就会非常长。常用的方案是“选择一个较大的内存,每次从硬盘中读取几个batch的数据存放在内存中,然后进行数据处理”,这样可以保证数据不间断的传输,从而高效的完成数据处理的任务。

这里还有一个不成文的规定:即你的内存大小最起码要大于你所选择的GPU的内存的大小。那个根据这个规定你很块就可以确定你可以选择的内存的容量,通常选择16GB,如果你有足够的资金,可以考虑购买一个32GB的内存,这会在训练较大的模型时展现它的优势。这里值的你去投资。

固态硬盘:作为一个“本地存储器”,它是每个电脑不可或缺的一部分。你需要在它上面存储一些重要的信息。由于其速度较慢,价格自然也比较便宜。根据市场的价格,1T的硬盘也就300多。

在深度学习中,硬盘可以用来“保存代码”“保存Model”“保存中间结果”“保存数据集”等。建议你选择一个较大容量的硬盘,通常会选择1T/2T。因为你可能会发现一般的数据集就是几个G,同时深度学习本身就是基于“大数据”的,它需要许多的数据来获得较好的性能。这也是众所周知的。一个好的方法是:“你可以利用上一些旧的硬盘,因为硬盘的扩展十分简单,这样可以节省一部分资金。”

散热:由于电子设备的运转会产生大量的热,而每个电子元件都有一个可承受的温度范围,过高或者过低的温度通常会导致元器件不能处于正常的工作状态,导致这个主机的性能变差。

由于深度学习设计到很大的计算量,通常需要几小时或者几十或者几百个小时的训练,在这期间要保证元器件的正常工作,就需要做好相应的散热措施。这样既可以保证主机的效率,同时也可以延长主机的使用寿命。
常用的散热措施主要有4种:
1)通过设置BIOS选项,具体的细节在网上搜索。
2)添加散热片。它通常由铝或铜制成,通常安装在CPU或者GPU等原件的周围或者上面。铜制品通常会有更好的散热效果。
3)添加散热风扇。如今每台台式电脑或者笔记本电脑可能都会配有一个或者多个风扇来进行扇热,正是由于风扇的原因,你通常会听到一部分噪声。
4)添加水冷。如果你是一个游戏狂热者,你可能会对它比较熟悉。它通常用在高配的游戏主机上面,不仅具有很好的散热效果,同时基本上没有什么噪声。但是它的价格会比较高。如果你的主机配置了多个GPU,强烈建议你配置水冷,这可以持续的保持你的设备处于高速的运转中。

主板:现在应该轮到它啦。这个东西对于电子专业的人来说都很熟悉。就是一个用来组装电路的PCB板。你需要将很多个元器件组装在它上面,然后通过焊锡来连接它。

对于深度学习来讲,最重要的就是内存和PCIE的卡槽啦。它会涉及到后期的拓展。如果你后期可能会扩展你的设备,那你就需要考虑主板的可拓展性。如果你不需要进行后期的拓展,那么你可以买一个相对便宜的主板,只需要满足你当前的需求即可。为什么要强调PCIE,作为一个高速的传输接口,它常常用来设备之间的通信,例如CPU和GPU或者GPU与GPU。如果你后期可能会拓展你的GPU个数,那么建议你选择带有PCIE3.0 x8和x16接口的主板。

常用的主板有“超星微的X10SRA、C602、C612”等,总之,选择主板时需要在满足你的最低要求的同时考虑到拓展性。

机箱:欧,差点都把它给忘啦。有了以上的硬件之后,你还需要一个东西将它们组合成为一个整体,从而便于携带。哈哈,这个东西就是“机箱”。机箱上面会有各种卡槽和接口,包括硬盘、主板、电源等。

它的选择比较简单,只需要考虑硬盘和主板的尺寸即可。即要能将硬盘安装进去,这也是最低的要求啊。

好啦,以上就是你需要选择的一些设备。相信你应该明白啦。我的目目标是“让你知其然,而且知其所以然”。我更想让你知道的是为什么需要这些东西,而且说明了它们的作用,以及深度学习对它们的要求。

上几张高大上的配置服务器吧。。。
在这里插入图片描述
来自友商KEMOVE推荐

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于深度学习主机的一些选配问题 的相关文章

  • 关于C中的Int类型到底是几个字节。

    C语言标准是这样规定的 xff1a int最少16位 xff08 2字节 xff09 xff0c long不能比int短 xff0c short不能比int长 xff0c 具体位长由编译器开发商根据各种情况自己决定 在32位x86处理器上
  • Jetson TX2开启高功耗模式

    Jetson TX2 工作模式及相应的CPU和GPU频率 xff1a 上电的时候 xff0c 默认最低功耗模式1 xff0c 风扇不转 1 直接运行home下的jetson clocks sh xff0c 开启最大频率 sudo jetso
  • 在失望中重找希望——我的2013年工作总结

    时间过的真的是快 来广州已整整工作了一年啦 从2012年长沙工作离职后 为了我的女朋友 我毅然踏上了南下广州的征途 来到羊城后 很快 xff0c 一个礼拜就找到了现在工作的这家公司 现在回想一下 真觉得当初没有好好斟酌一下 2013年里 x
  • 【100%有效】解决AndroidStudio 控制台编译输出中文乱码,亲测解决!

    背景 在AndroidStudio中新建了一个Java Module xff0c 但是点击 Run app 之后 xff0c Build Output 控制台输出的中文都是乱码 xff0c 都是问号一样的字符 google了很多方法 xff
  • 图传数传模块

    文章中写了关于如何调摄像头的程序 https blog csdn net JanKin BY article details 103929781 如何将摄像头获取的视频发送到远端实现图传数传 xff0c 按RJ45的网口线路排布 xff0c
  • TX2系统烧录jetpack4.6 ubuntu18.04

    sdk版本与系统版本相关 xff0c 下载的4 6为ubuntu 18 04 1 烧录下jeston nvidia官方网站上下载sdk manager Jetson 下载中心 NVIDIA Developer sudo apt instal
  • 如何把UCF101数据集分成训练集和测试集

    34 After extracting the RAR we run this to move all the files into the appropriate train test folders Should only run th
  • 强国的语言与语言强国

    强国的语言与语言强国 作者 xff1a 教育部语言文字信息管理司司长 教育部语言文字应用研究所所长 中国社会科学院研究生 李宇明 理论上语言是一律平等的 xff0c 现实中语言是有强有弱的 语言的强弱与语言所属社团的强弱盛衰呈正相关 古罗马
  • 基于时间序列的异常检测算法小结

    最近在学习基于时间序列的异常检测算法 xff0c 看到一篇好文 xff0c 原文博客地址 xff1a http blog rexking6 top 2018 11 05 基于时间序列的异常检测 以下是相应的知识 xff1a 简介 搜罗了网上
  • Python函数

    定义函数 def def是定义define definition 的缩写 Python中使用def来定义函数 xff0c 函数的命名规则和变量的命名规则相同 函数名后的 xff08 xff09 用于传入参数 xff0c 函数体以冒号 xff
  • JDK和SDK的区别

    JDK和SDK的区别如下 xff1a 1 SDK是Software Development Kit的缩写 xff0c 中文意思是 软件开发工具包 这是一个覆盖面相当广泛的名词 xff0c 可以这么说 xff1a 辅助开发某一类软件的相关文档
  • 【无标题】

    GANimator Neural Motion Synthesis from a Single Sequence This repository provides a library for novel motion synthesis f
  • Effective C++(一):让自己习惯C++

    个人读书记录 xff0c 不适用教学内容 目录 条款01 xff1a 视C 43 43 为一个语言联邦 条款02 xff1a 尽量以const xff0c enum xff0c inline替换 define 条款03 xff1a 尽可能使
  • Effective C++(二):构造/析构/赋值运算

    个人读书记录 xff0c 不适用教学内容 目录 条款05 xff1a 了解C 43 43 默默编写并调用了哪些函数 条款06 xff1a 若不想使用编译器自动生成的函数 xff0c 就该明确拒绝 条款07 xff1a 为多态基类声明virt
  • Effective C++(三):资源管理

    个人读书记录 xff0c 不适用教学内容 目录 条款13 xff1a 以对象管理资源 条款14 xff1a 在资源管理类中小心copying行为 条款15 xff1a 在资源管理类中提供对原始资源的访问 条款16 xff1a 成对使用new
  • Unreal Engine工程项目目录及对应作用

    目录 vs Binaries xff1a 编译文件 Config xff1a 配置文件 Content xff1a 资产文件 DerivedDataCache xff1a UE针对平台特化的资源版本 Intermediate xff1a 中
  • Unreal Engine中的UHT和UBT

    UBT xff1a 附加在引擎之外的一个自定义工具 xff0c 用于管理跨各种构建配置 xff0c 来配置和构建 UE源码的过程 UHT xff1a 一个支持UObject系统的自定义解析和代码生成工具 目录 UBT xff08 Unrea
  • Unreal Engine项目目录结构

    目录 Engine 引擎源码文件 Games 项目工程文件 Visualizer VS编辑器配置文件 之前说的是工程目录结构 xff0c 这次来说项目目录结构 这里只是举了个例子 xff0c 实际请根据不同的UE版本自行分析 Engine
  • Unreal Engine的编译类型和命名规则

    目录 编译类型 命名规则 资源命名规则 文件夹命名规则 编译类型 debug game只能调试你的项目 xff0c 不能调试编辑器项目 多加了一个editor xff0c 就可以调试编辑器了 不同的编译类型可以理解为引擎在不同的类型下的监管
  • 面向对象设计的一些原则

    人很懒惰 xff0c 不愿意多写代码 xff0c 即便是Ctrl C 43 Ctrl V 也不愿意把别人的代码改来改去 xff0c 由此产生了各种复用的方法和设计原则 目录 单一职责原则 里氏转换原则 依赖倒置原则 迪米特原则 接口隔离原则

随机推荐

  • Unreal Engine中的Actor:理解、生成与消亡

    目录 谈谈Actor 生成 xff08 实例化 xff09 Acotr StaticClass UClass xff1a 类模板 类的快照 Actor的生命周期 Actor的消亡 Destroy xff1a 标记删除 SetLifeSpan
  • Android5.0网络之ipv6

    移动设备的大量兴起势必进一步加强ip地址不足的危机 ipv6或许成为一种比較好的选择方案 ipv6地址的获取分为两种方式 xff1a 无状态 xff1b 有状态 无状态 xff1a 通过接收路由公告 RA 来设置自己的ipv6地址 有状态
  • Unreal Engine中调试常用方法

    目录 常用调试方法 AddOnScreenDebugMessage UE LOG xff1a 在控制台看调试信息 在蓝图中直接调用PrintString 自定义日志分类 声明 定义 简化日志输出的宏 日志格式化输出 常用调试方法 在虚幻引擎
  • UE中的FString操作

    此篇是指单纯记录 xff0c 方便之后查阅 目录 创建 转型到FString FString转型到其他类型 字符串中是否包含指定串 查找给定串在其中是什么位置 字符串比较 读文件 裁剪字符串 编码解决的是文字问题 稍微细致一些的可以看 xf
  • 关于UE4/UE5的LogProperty: Warning: Serialized Class XXX for a property的尝试解决方案

    Warning reference will be nullptred Development Programming amp Scripting Epic Developer Community Forums unrealengine c
  • UE中的宏GENERATED_BODY()做了什么?

    宏GENERATED BODY做了什么 xff1f 阿佑001 博客园 cnblogs com 添加了一个静态函数static void StaticRegisterNativeUMyObject 声明结构体struct Z Constru
  • Unreal Engine 网络系统(一):网络模型及网络视角下的Gameplay框架

    个人学习记录 xff0c 如有错误请及时联系我 xff01 欢迎交流 xff01 1 客户端 服务器模型 服务器 xff1a 有一个客户端担当游戏状态的主控者 作用 xff1a 做出所有重要决定 xff0c 保证公平性 xff0c 包含所有
  • Unreal Engine 网络系统(二):网络对象同步、网络身份

    目录 网络身份 行为同步和属性同步 Actor网络身份 区分Client amp Server 身份授权类别 划分终端所在用途 思考几个问题 xff1a 什么是同步 xff1f 网络游戏中 xff0c 什么内容需要同步 xff1f 虚幻中的
  • Unreal Engine 网络系统(三):RPC同步

    目录 RPC RPC执行分三种形式 修改所有权 RPC 全称Remote Procedure Call xff0c 远端调用 指在本机上调用函数 xff0c 但在其他机器上远程执行的函数 RPC函数可以允许Client或Server通过网络
  • Unreal Engine 网络系统(四):UEC++的RPC

    目录 行为同步 On Server xff1a 服务端的RPC代码 On Client xff1a 客户端的RPC代码 NetMulticast xff1a 广播的RPC代码 属性同步 行为同步 借助UFUNCTION进行函数标记 UFUN
  • Unreal Engine 网络系统(五):带宽管理(相关性及优先级)

    目录 相关性 优先级 创建 查找 加入房间 xff08 Session xff09 网络游戏是通过计算机硬件通信方案将多台终端连接 xff0c 组建的玩家沟通环境 xff0c 从而使得玩家连接到一起游戏 受限于网络传输环境的影响 xff0c
  • 字串起始位置最大值

    给定两个字符串s1和s2 xff0c 如果s1删除若干个字符后变成s2 xff0c 则称s2为s1的子串 xff0c 求s2在s1中的起始位置的最大值 输入描述 xff1a 只有一行 s1 xff0c s2 xff0c s1和s2用空格隔开
  • 【c++】的作用域 (局部域,类域,名字命名空间,文件域)

    这里写目录标题 局部域类域类修饰指针由类限制修饰指向变量的指针由类修饰指向函数的指针 命名空间背景 xff1a 文件域 c 43 43 支持四个域 xff1a 局部域 xff0c 类域 xff0c 名字空间域 xff0c 文件域 局部域 函
  • Java变量名规则

    给大家简单介绍一下java中的变量名规则 和实用的起名工具 记忆变量名起名规则小技巧 变量名开头可用的类型 字下美人 字母 下划线 美元符号 人民币符号 变量名开头后面可用的类型 字下美人数非 字母 下划线 美元符号 人民币符号 数字 非关
  • Linux中的字符串和字节序列处理函数

    花了两天的时间总结了Linux编程时的字符串操作函数和字节序列操作函数 xff0c 以便后续查阅 这些函数大都不会去检查传入的参数是否为NULL xff0c 因此在使用之前要自己做检查 xff0c 否则后果你懂的 一个基本知识点 xff1a
  • extern "c"用法解析

    引言 C 43 43 保留了一部分过程式语言的特点 xff0c 因而它可以定义不属于任何类的全局变量和函数 但是 xff0c C 43 43 毕竟是一种面向对象的程序设计语言 xff0c 为了支持函数的重载 xff0c C 43 43 对全
  • 解决树莓派Unbuntu mate 使用VNC连接灰屏报错“Could not acquire name on session bus”问题

    修改 vnc xstartup 文件 打开 vnc xstartup 文件 1 添加两行 unset SESSION MANAGER unset DBUS SESSION BUS ADDRESS 2 查看桌面环境是什么 xff1a 先查看系
  • python:isinstance用法

    isinstance xff08 object xff0c type xff09 只要object是type类型 xff0c 返回True xff1b 否则返回False 作用 xff1a 来判断一个对象是否是一个已知的类型 其第一个参数
  • windows下开启Qemu串口调试

    1 EDKII 包编译 如果要在 windows 下启用串口信息打印 xff0c 需要在 build 时加 D DEBUG ON SERIAL PORT 选项 需要注意的是 xff0c 在 target txt 中 TARGET 只能是 D
  • 关于深度学习主机的一些选配问题

    作为一个深度学习的初学者 xff0c 你可能会遇到这样的问题 xff1a 我该如何训练我自己或者别人的Model xff1f 我该如何配置一台合适的主机 xff1f 目前有哪几种训练模型的方式 xff1f 接下来 xff0c 我将会对此进行