如何在GPU上加速数据科学
这 10 万个点的运行时间是 8.31 秒,如下图所示:
GPU 上带 Rapids 的 DBSCAN 现在,让我们用 Rapids 进行加速! 首先,我们将把数据转换为 pandas.DataFrame 并使用它创建一个 cudf.DataFrame。pandas.DataFrame 无缝转换成 cudf.DataFrame,数据格式无任何更改。
然后我们将从 cuML 导入并初始化一个特殊版本的 DBSCAN,它是 GPU 加速的版本。DBSCAN 的 cuML 版本的函数格式与 Scikit-Learn 的函数格式完全相同:相同的参数、相同的样式、相同的函数。
最后,我们可以在测量运行时间的同时运行 GPU DBSCAN 的预测函数。
GPU 版本的运行时间为 4.22 秒,几乎加速了 2 倍。由于我们使用的是相同的算法,因此结果图也与 CPU 版本完全相同。
使用 Rapids GPU 获得超高速 我们从 Rapids 获得的加速量取决于我们正在处理的数据量。一个好的经验法则是,较大的数据集将更加受益于 GPU 加速。在 CPU 和 GPU 之间传输数据有一些开销时间——对于较大的数据集,开销时间变得更「值得」。 我们可以用一个简单的例子来说明这一点。 我们将创建一个随机数的 Numpy 数组并对其应用 DBSCAN。我们将比较常规 CPU DBSCAN 和 cuML 的 GPU 版本的速度,同时增加和减少数据点的数量,以了解它如何影响我们的运行时间。 下面的代码说明如何进行测试:
检查下面的 Matplotlib 结果图: 当使用 GPU 而不是 CPU 时,数量会急剧增加。即使在 10000 点(最左边),我们的速度仍然是 4.54x。在更高的一端,1 千万点,我们切换到 GPU 时的速度是 88.04x! 本文转自雷锋网,如需转载请至雷锋网官网申请授权。
(编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |