?本文转载自http://towardsdatascience.com,原作者为机器学习工程师George Seif。
原文可查看:
https://towardsdatascience.com/nvidias-new-data-science-workstation-a-review-and-benchmark-e451db600551?sk=7258339c74fa22b174b7b842f6afb555
过去几年,业界对数据科学的兴致高涨,许多公司甚至已经开始重新调整业务战略并自称为“数据驱动型”企业。
其中的理由很简单,而且也已经不是什么秘密了:更多的数据为我们提供了更大的机遇,让我们能够获取更多信息并创造更大的商业价值。
大数据集需要高算力。你需要使用CPU,理想情况下最好使用至强系列处理器那样的多核CPU。大量的RAM肯定也是不可或缺的——数据科学家常需要使用64甚至128GB RAM,有时这些都还不足以满足需求。
除此之外,GPU不仅在深度学习领域大受欢迎,现在也开始向数据科学领域进军。如今,GPU还可用于加速大型数据帧的处理和可视化(类似于Pandas)。一直以来常用的XGBoost库就自带内置GPU加速功能。
NVIDIA近期发布了数据科学工作站,这是一台将所有数据科学硬件和软件整合至一个软件包中的PC。该工作站是一个完整的高性能机器,拥有数据相关工作任务所需的所有计算能力和软件。
本篇文章将对NVIDIA数据科学工作站进行测试和评测,接下来笔者将一一道来。
规格
笔者测试的是Boxx的工作站,它预安装了所有软硬件,为以防万一还有一些额外的布线。机器的预构建非常棒,省去了原本需要几小时才能完成的安装。以下是主要硬件规格:
- CPU - 2个英特尔至强SP金牌5217,8核 / 16线程,3.0Ghz
- RAM - 192GB DDR4–2933 MHz ECC
- 存储 - 1.0TB SSD M.2 PCIe驱动
- GPU - 2颗分别拥有48GB VRAM的NVIDIA Quadro RTX 8000
此外还配有鼠标和键盘,提供3年保修。
若想获得最大收益,构建自定义机器始终是最佳选择。这台机器的部件选择恰到好处:CPU的32位总线用于并行处理、大量高速RAM、PCIe SSD(速度远远大于标准SATA驱动)、以及2个48GB VRAM GPU。
(Boxx的数据科学工作站虽然是专为数据科学而设计的,但仍配备了所有标准端口,包括USB、音频、麦克风和磁盘驱动。)
然后还有经常被低估的部分:软件。该工作站预装了Ubuntu 18.04,以及您此前需要从源代码安装的所有数据科学和机器学习库和软件。例如:
- 数据和机器学习 - pandas、numpy、scipy、numba、matplotlib、xgboost、dask、scikit-learn、h5py、cython
- 深度学习 - TensorFlow、Keras、PyTorch、NLTK
- NVIDIA - GPU驱动、CUDA 10、cuDNN、RAPIDS
所有这些Python库都打包在Python虚拟环境中,以避免未来发生任何冲突。
从源代码安装TensorFlow颇具难度,确保GPU驱动和CUDA能够与上述所有库协同工作则更加困难。因此,预安装所有软件能够很大程度上避免这些大麻烦。
那么,这些听起来十分强大的硬件和软件能做什么呢?
让我们来一探究竟吧。
XGBoost 基准测试
XGBoost 是一个开源库,能够实现高性能的梯度提升决策树。底层C ++代码库与顶部的Python接口相结合,提升了XGBoost的运行速度及使用体验。XGBoost是数据科学家的首选库,特别是在Kaggle竞赛中。
为了了解工作站使用XGBoost处理超大数据集时的性能,我们将使用Rapids.ai的演示笔记本电脑运行一个基准测试。
Rapids是一套软件库,旨在利用GPU加速数据科学。在底层它使用CUDA代码实施快速优化GPU算法,同时在顶层仍使用易用的Python。
笔记本电脑使用了Numpy的random.rand()函数生成数据帧。为了打破限制,笔者将数据帧的大小设置为1,000,000行乘以5000列32位浮点数,这占用了笔记本中能使用的所有内存。如果能更有效地读取数据,还可以挤压出更大的内存。因为一旦训练开始,RAM使用将会趋于稳定。
然后,笔记本将基于此数据运行XGBoost模型的训练。
仅使用2个至强处理器CPU(共16核心/ 32线程)也可以很好地处理如此庞大的数据集。训练开始后,所有32个线程都被激活,达到100%的使用率,而且还有足够的RAM空间运行另一个规模较小的训练。
而当我们添加了GPU之后,XGBoost的速度可以凭借单个GPU无缝加速约4.5倍,通过2个GPU可以无缝加速5倍。
深度学习基准测试
深度学习在数据科学领域占有一席之地。计算机视觉和自然语言处理领域中的所有挑战几乎都是由领先的深度网络主导。
人们想要购买具有这种GPU性能的机器的一个重要原因就是为了训练深度学习模型。
对于大型深度学习数据集来说,GPU内存越大越好。那些深度网络拥有数百个层,需要大量的内存空间,特别是当你想增加批尺寸以加快训练时。
高端消费级GPU(如2080 Ti和1080 Ti)配备了11GB内存。这些显卡都具有强大的性能表现,但11GB通常还无法满足安装一个大型神经网络所需的内存大小。这时,你可以选择类似于云端V100的GPU,其拥有更为强大的性能,且按需收费,每小时3.06美元。
为测试这些RTX 8000的性能,我们将使用TensorFlow的官方tf_cnn_benchmarks。存储库包含在ImageNet分类数据集上运行标准图像分类模型训练的脚本。训练的运行会经过一定次数的迭代,然后计算其平均速度,计量单位为“图像/秒”(每秒钟处理的图像数量)。
为真正测试工作站的功能,我们将运行各种批尺寸和GPU数量的基准测试。在此基准测试中训练ResNet152 时得到的结果如下所示:
即使是单颗RTX 8000,其处理速度也超过100张图像/秒,这对于ResNet152来说已经非常快速了。我们还有足够的空间来增加批尺寸,最高可达256,从而进一步加快速度。
我们发现,在充分利用算力的情况下,更大的批尺寸够持续缩减训练时间。在一些需要大量内存的应用程序中(例如用于视频处理的3D CNN),标准消费级11GB GPU甚至无法满足批尺寸为1的需求,而RTX 8000的48GB内存则提供了大量空间以及能够满足各类批尺寸和模型规模需求的足够空间。
总结
总而言之,数据科学工作站是一台很棒的机器。好马配好鞍,它所配备的所有硬件必然也都是高品质。
其中最棒的一点就是所有东西都非常好用。所有库和软件都更新到了最新版本,且均已安装完毕。令人惊喜的是:用户只需启动PC就能直接运行TensorFlow代码,而不会出现任何问题,而在此之前这通常是需要安装源代码的。仅此一点就意味着数据科学工作站能够为用户节省大量的时间和财力,免去不便。
硬件选择也非常合适。极大的RAM和GPU内存带来了很高的灵活性,非常便利。运行多GPU通常既不会带来额外的工作量也不会出现问题。当使用超过4张显卡时,GPU数量增加会导致收益递减。如果您更喜欢不同的硬件设置,可以在订购机器时根据需要自定义CPU、RAM和GPU选项。
拥有自己的工作站可能前期投资会比较大,因为您需要一次性购买大量硬件。但是,这让您能够在没有云成本的情况下在本地开展工作,这种便利性以及所有完美的预设置让你的前期投资物有所值。这就是我们所说的非常好用的数据科学软件包。