数据分析师需要计算能力。无论您是在 Pandas 中处理大型数据集,还是使用 Numpy 乘以大量矩阵,您都需要一台功能强大的机器来在合理的时间内完成工作。在本文中,我们将清楚地展示如何使用 GPU 将数据处理速度提高数十倍。
在过去的几年里,为数据科学设计的 Python 库已经非常擅长利用 CPU 的能力。例如,Pandas 在处理大于 100GB 的数据集方面表现出色。如果您的机器没有足够的 RAM,您始终可以使用方便的功能将数据分成小批量并一次处理一个块。
GPU 与 CPU:并行处理
CPU 可以更好地处理时钟速度起着重要作用的进程。对于无法在 GPU 上执行的任务也值得使用它。反过来,GPU 在执行受益于并行处理的程序时更加高效。
多核系统如何处理数据的图示。对于单核系统(左),所有 10 个任务都发送到一个核。对于双核系统(右),每个核心执行 5 个任务,从而使处理速度加倍。
GPU 对深度学习有很大影响。重复计算,例如卷积,最多可加速 100 倍。
数据科学还具有可重用操作的功能,可使用 Pandas、Numpy 和 Scikit-Learn 等库处理大型数据集。在 GPU 上执行这些操作非常容易。
使用 Rapids 进行 GPU 加速
Rapids是一组软件库,旨在使用 GPU 加速数据科学。它生成低级 CUDA 代码以快速执行 GPU 优化的算法,同时仍然具有简单的 Python 实现。
Rapids 的优势在于它与数据科学库集成良好。例如,Pandas 数据帧可以轻松传输到 Rapids 并在 GPU 上加速处理。下图显示了Rapids如何在保持高级实施的同时提供低级加速。
Rapids 使用多个 Python 库:
– cuDF:GPU 数据帧。支持与Pandas几乎相同的数据处理方式。
— CuML:机器学习库。包含 Scikit-Learn 中的许多 ML 算法。
– cuGraph:GPU 上的图形处理。支持许多基本的图形分析算法,包括PageRank。
企业可以传播促销优惠、重要更新和提醒,确保及时有 购买批量短信服务 效地传递信息。与电子邮件或邮政邮件等传统通信方法相比,短信的即时性和高打开率具有关键优势。此外,批量短信服务具有成本效益。通过将沟通工作整合到
Rapids 使用指南
安装
现在您将看到急流的实际行动!
作为示例,我们将在具有 NVIDIA Tesla V100 GPU 的服务器上运行简单的代码。
为了进行演示,我们决定在两个 NVIDIA Tesla V100 GPU上运行代码,并将执行时间与在两个 NVIDIA Quadro RTX 8000 GPU上运行的Nvidia 数据科学工作站进行比较。
为了使用 Rapids 和所有必要的软件下载并运行该映像,我们使用了以下命令。在此示例中,我们选择了 Ubuntu 18.04、CUDA 10.0 和 Python 3.7 的配置。您可以在 Rapids 网站上更改版本并复制安装命令。
数据设置
在此示例中,我们将查看DBSCAN 演示的修改版本。 DBSCAN 是一种聚类算法,可以自动将数据分组,而无需指定簇的数量。Scikit-Learn中有类似的实现。
让我们首先导入必要的库:
两台 NVIDIA Tesla V100 上的执行时间降至814 毫秒!与 CPU 相比,加速是 12 倍,但大多数情况下此类程序的代码并未针对在 CPU 上执行进 罗马当地人喜爱的 7 家餐厅 行优化。因此,我们来比较一下两个 NVIDIA Quadro RTX 8000 GPU 的性能:它们显示的结果是 4.22 秒。与 Quadro RTX 8000 相比, Tesla V100 处理器实现了5 倍的加速。
结果 2x NVIDIA Tesla V100
急流的超级加速!
我们使用 Rapids 获得的加速量取决于正在处理的数据量。但是,CPU 和 GPU 之间的数据传输会产生额外的延迟。当我们处理大型数据集时,它变得不那么重要。
让我们看一个简单的例子。
让我们创建一个 Numpy 随机数数组并对其应用 DBSCAN。同时,我们通过增加和减少数据点的数量来比较执行速度。这样我们就可以看到数据量如何影响加速率。
10000×100 像素数据集的示例代码:
在示例中,数据集由一百万个点组成。从图中可以看到,Tesla GPU 上的处理时间为 142 毫秒,CPU 上的处理时间为 18.3 秒。 Quadro RTX 处理同样的任务大约需要 1.5 秒(根据文章中使用 CPU 速度比较的图表估算),也就是说,Tesla 几乎比它快了11 倍。
因此
随着数据量的增加,从GPU获得的加速也会有一定程度的增加。
现在您知道使用强大的 GPU 可以 美国手机号码列表 实现多高的数据处理速度。为了进一步深入了解数据科学,我们建议您阅读《Python for Complex Problems: Data Science and Machine Learning》一书( 《Python 数据科学手册》的翻译)。
原始文章和在 NVIDIA Quadro RTX 8000 GPU 上运行的程序的结果可以在。