百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

评测与基准测试NVIDIA全新数据科学工作站

toyiye 2024-06-21 11:55 7 浏览 0 评论

?本文转载自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,有时这些都还不足以满足需求。

NVIDIA Quadro RTX 8000 GPU拥有48GB VRAM

除此之外,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的数据科学工作站

(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。

Rapids如何实现加速

笔记本电脑使用了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选项。

拥有自己的工作站可能前期投资会比较大,因为您需要一次性购买大量硬件。但是,这让您能够在没有云成本的情况下在本地开展工作,这种便利性以及所有完美的预设置让你的前期投资物有所值。这就是我们所说的非常好用的数据科学软件包。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码