加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

如安在GPU上加快数据科学

发布时间:2019-08-08 11:53:25 所属栏目:教程 来源:skura
导读:笔者按,数据科学家必要算力。无论您是用 pandas 处理赏罚一个大数据集,照旧用 Numpy 在一个大矩阵上运行一些计较,您都必要一台强盛的呆板,以便在公道的时刻内完成这项事变。 在已往的几年中,数据科学家常用的 Python 库已经很是善于操作 CPU 手段。 Panda

这 10 万个点的运行时刻是 8.31 秒,如下图所示:

如安在GPU上加快数据科学

行使 Scikit-Learn 在 CPU 上运行 DBSCAN 的功效

GPU 上带 Rapids 的 DBSCAN

此刻,让我们用 Rapids 举办加快!

起首,我们将把数据转换为 pandas.DataFrame 并行使它建设一个 cudf.DataFrame。pandas.DataFrame 无缝转换成 cudf.DataFrame,数据名目无任何变动。

  1. import pandas as pd  
  2. import cudf  
  3. X_df = pd.DataFrame({'fea%d'%i: X[:, i] for i in range(X.shape[1])})  
  4. X_gpu = cudf.DataFrame.from_pandas(X_df) 

然后我们将从 cuML 导入并初始化一个非凡版本的 DBSCAN,它是 GPU 加快的版本。DBSCAN 的 cuML 版本的函数名目与 Scikit-Learn 的函数名目完全沟通:沟通的参数、沟通的样式、沟通的函数。

  1. from cuml import DBSCAN as cumlDBSCAN  
  2. db_gpu = cumlDBSCAN(eps=0.6, min_samples=2) 

最后,我们可以在丈量运行时刻的同时运行 GPU DBSCAN 的猜测函数。

  1. %%time  
  2. y_db_gpu = db_gpu.fit_predict(X_gpu) 

GPU 版本的运行时刻为 4.22 秒,险些加快了 2 倍。因为我们行使的是沟通的算法,因此功效图也与 CPU 版本完全沟通。

如安在GPU上加快数据科学

行使 cuML 在 GPU 上运行 DBSCAN 的功效

行使 Rapids GPU 得到超高速

我们从 Rapids 得到的加快量取决于我们正在处理赏罚的数据量。一个好的履历法例是,较大的数据集将越发受益于 GPU 加快。在 CPU 和 GPU 之间传输数据有一些开销时刻——对付较大的数据集,开销时刻变得更「值得」。

我们可以用一个简朴的例子来声名这一点。

我们将建设一个随机数的 Numpy 数组并对其应用 DBSCAN。我们将较量通例 CPU DBSCAN 和 cuML 的 GPU 版本的速率,同时增进和镌汰数据点的数目,以相识它怎样影响我们的运行时刻。

下面的代码声名怎样举办测试:

  1. import numpy as np  
  2.  
  3. n_rows, n_cols = 10000, 100  
  4. X = np.random.rand(n_rows, n_cols)  
  5. print(X.shape)  
  6.  
  7. X_df = pd.DataFrame({'fea%d'%i: X[:, i] for i in range(X.shape[1])})  
  8. X_gpu = cudf.DataFrame.from_pandas(X_df)  
  9.  
  10. db = DBSCAN(eps=3, min_samples=2)  
  11. db_gpu = cumlDBSCAN(eps=3, min_samples=2)  
  12.  
  13. %%time  
  14. y_db = db.fit_predict(X) 
  15.  
  16. %%time  
  17. y_db_gpu = db_gpu.fit_predict(X_gpu) 

搜查下面的 Matplotlib 功效图:

如安在GPU上加快数据科学

当行使 GPU 而不是 CPU 时,数目会急剧增进。纵然在 10000 点(最左边),我们的速率如故是 4.54x。在更高的一端,1 万万点,我们切换到 GPU 时的速率是 88.04x!

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读