人工智能浪潮下
越来越多科研机构、企业单位
投身到深度学习科研中
伴随大批行业新进入者
"深度学习服务器如何选择"
成为了经常被用户提及的问题
那么这个问题究竟该如何进行解答呢?
首先,我们知道深度学习服务器的重要组件有CPU、内存、硬盘、GPU和算法。并且,这些组件都有其需要重点关注的主要参数:
CPU我们需要注意它的核心数、主频和功耗
内存我们要注意它的容量和频率
硬盘我们要注意它的带宽、IOPS、容量以及协议
GPU我们要注意它的CUDA Cores、Tensor Cores、显存、浮点计算能力以及GPU-GPU带宽
算法我们要注意它是CNN、RNN还是其他类算法网络
接下来,让我们一起来看下深度学习计算过程,都有哪些步骤:
1、数据调入
2、数据预处理
3、数据从内存拷贝到显存,并计算
4、数据结果返回到内存
5、数据保存
知道了深度学习计算过程和深度学习服务器主要组件,这些服务器组件在深度学习计算中究竟起到了什么样的作用呢?
数据调入时
因为GPU执行深度学习计算效率十分高,需频繁捞取数据进行计算,因此对硬盘读写操作次数多,需要硬盘具备更高IOPS。
所以我们在选择时,NVMe SSD>SATA SSD>机械硬盘
数据预处理时
CPU主频越高,生成图片的速度越快,多核心只能增加数据流处理能力,在数据较少情况下,没有较大影响。
所以,我们优先选择高主频CPU。
数据拷贝并计算时
主要涉及到内存到GPU的数据传输及计算能力,此时瓶颈一般在GPU算力,我们可通过扩展GPU数量,提升整体并行计算能力。
算法
算法定义了深度学习神经网络执行的层(输入层,卷积层,激活层,池化层,全连接层)
模型根据算法结构定义了各个层之间的连接,不同模型对应的连接层不同
框架是模型的执行主体,不同框架对深度学习模型的执行方式不一样
目前,算法网络主要使用的便是CNN和RNN:
CNN网络
CNN网络的特点:计算量大,但可以比较有效地将问题进行并行拆分
CNN硬件配置:计算能力 > 显存 (显存不够多卡来凑)
RNN网络
RNN网络的特点:计算量大,需要大量内存(显存)防止执行过程中的数据溢出
RNN硬件配置:显存 (单卡不够共享来凑) > 计算能力
最终BOSS
预算问题,是我们在深度学习服务器选择时绕不开的问题。那么,在我们预算有限情况下,该如何进行配置选择呢?请谨记以下原则:
GPU >SSD >内存 >CPU
CPU主频 > CPU核心