国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何在GPU上加速數據科學

大數據
數據科學家需要算力。無論您是用 pandas 處理一個大數據集,還是用 Numpy 在一個大矩陣上運行一些計算,您都需要一臺強大的機器,以便在合理的時間內完成這項工作。

筆者按,數據科學家需要算力。無論您是用 pandas 處理一個大數據集,還是用 Numpy 在一個大矩陣上運行一些計算,您都需要一臺強大的機器,以便在合理的時間內完成這項工作。

在過去的幾年中,數據科學家常用的 Python 庫已經非常擅長利用 CPU 能力。

Pandas 的基礎代碼是用 C 語言編寫的,它可以很好地處理大小超過 100GB 的數據集。如果您沒有足夠的 RAM 來容納這樣的數據集,那么您可以使用分塊功能,它很方便,可以一次處理一個數據塊。

GPUs vs CPUs:并行處理

有了大量的數據,CPU 就不會切斷它了。

一個超過 100GB 的數據集將有許多數據點,數據點的數值在數百萬甚至數十億的范圍內。有了這么多的數據點要處理,不管你的 CPU 有多快,它都沒有足夠的內核來進行有效的并行處理。如果你的 CPU 有 20 個內核(這將是相當昂貴的 CPU),你一次只能處理 20 個數據點!

CPU 在時鐘頻率更重要的任務中會更好——或者根本沒有 GPU 實現。如果你嘗試執行的流程有一個 GPU 實現,且該任務可以從并行處理中受益,那么 GPU 將更加有效。

 

如何在GPU上加速數據科學

多核系統如何更快地處理數據。對于單核系統(左),所有 10 個任務都轉到一個節點。對于雙核系統(右),每個節點承擔 5 個任務,從而使處理速度加倍

深度學習已經在利用 GPU 方面發揮了相當大的作用。許多在深度學習中完成的卷積操作是重復的,因此在 GPU 上可以大大加速,甚至可以達到 100 次。

今天的數據科學沒有什么不同,因為許多重復的操作都是在大數據集上執行的,庫中有 pandas、Numpy 和 scikit-learn。這些操作也不太復雜,無法在 GPU 上實現。

最后,還有一個解決方案。

用 Rapids 加速 GPU

Rapids 是一套軟件庫,旨在利用 GPU 加速數據科學。它使用低級別的 CUDA 代碼實現快速的、GPU 優化的算法,同時它上面還有一個易于使用的 Python 層。

Rapids 的美妙之處在于它與數據科學庫的集成非常順利,比如 pandas 數據幀就很容易通過 Rapids 實現 GPU 加速。下圖說明了 Rapids 如何在保持頂層易用性的同時實現低層的加速。

如何在GPU上加速數據科學

Rapids 利用了幾個 Python 庫:

  • cuDF-Python GPU 數據幀。它幾乎可以做 pandas 在數據處理和操作方面所能做的一切。
  • cuML-cuGraph 機器學習庫。它包含了 Scikit-Learn 擁有的許多 ML 算法,所有算法的格式都非常相似。
  • cuGraph-cuGraph 圖處理庫。它包含許多常見的圖分析算法,包括 PageRank 和各種相似性度量。

如何使用 Rapids

安裝

現在你將看到如何使用 Rapids!

要安裝它,請訪問這個網站,在這里你將看到如何安裝 Rapids。你可以通過 Conda 將其直接安裝到你的機器上,或者簡單地使用 Docker 容器。

安裝時,可以設置系統規范,如 CUDA 版本和要安裝的庫。例如,我有 CUDA 10.0,想要安裝所有庫,所以我的安裝命令是:

  1. conda install -c nvidia -c rapidsai -c numba -c conda-forge -c pytorch -c defaults cudf=0.8 cuml=0.8 cugraph=0.8 python=3.6 cudatoolkit=10.0 

一旦命令完成運行,就可以開始用 GPU 加速數據科學了。

設置我們的數據

對于本教程,我們將介紹 DBSCAN demo 的修改版本。我將使用 Nvidia 數據科學工作站和 2 個 GPU 運行這個測試。

DBSCAN 是一種基于密度的聚類算法,可以自動對數據進行分類,而無需用戶指定有多少組數據。在 Scikit-Learn 中有它的實現。

我們將從獲取所有導入設置開始。先導入用于加載數據、可視化數據和應用 ML 模型的庫。

 

  1. import os  
  2. import matplotlib.pyplot as plt  
  3. from matplotlib.colors import ListedColormap  
  4. from sklearn.datasets import make_circles 

make_circles 函數將自動創建一個復雜的數據分布,類似于我們將應用于 DBSCAN 的兩個圓。

讓我們從創建 100000 點的數據集開始,并在圖中可視化:

 

  1. X, y = make_circles(n_samples=int(1e5), factor=.35, noise=.05)  
  2. X[:, 0] = 3*X[:, 0]  
  3. X[:, 1] = 3*X[:, 1]  
  4. plt.scatter(X[:, 0], X[:, 1])  
  5. plt.show()

如何在GPU上加速數據科學

CPU 上的 DBSCAN

使用 Scikit-Learn 在 CPU 上運行 DBSCAN 很容易。我們將導入我們的算法并設置一些參數。

 

  1. from sklearn.cluster import DBSCAN  
  2. db = DBSCAN(eps=0.6, min_samples=2) 

我們現在可以通過調用 Scikit-Learn 中的一個函數對循環數據使用 DBSCAN。在函數前面加上一個「%」,就可以讓 Jupyter Notebook 測量它的運行時間。

 

  1. %%time  
  2. y_db = db.fit_predict(X) 

這 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!

本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。

責任編輯:未麗燕 來源: 雷鋒網
相關推薦

2020-04-16 09:18:45

MarsRAPIDSGPU

2017-04-04 20:31:05

AWS GPUJupyter not深度學習

2014-03-31 09:45:33

Ubuntu LinuUbuntu 13.1

2018-12-24 15:50:29

Windows 10互聯網應用程序

2023-02-10 21:12:41

GPUmacOSStable

2016-10-21 19:24:35

數據科學家數據科學

2019-02-27 09:56:13

Windows 10保存數據Windows

2020-04-06 13:52:45

數據倉庫大數據平臺Hadoop

2019-10-22 08:00:22

數據科學AWSDC

2011-07-26 14:34:28

openSUSEpostgresql

2013-04-22 10:00:53

云計算大數據

2017-02-27 18:26:45

UbuntuADBAndroid

2017-11-27 15:16:24

大數據數據科學培訓

2019-08-02 15:30:42

UbuntuMongoDB命令

2019-11-26 16:58:51

Linuxpkgsrc

2019-01-07 09:50:06

Linuxtarball命令

2019-07-23 09:10:41

MacOSKibana開源

2019-11-26 09:20:47

LinuxJava

2019-07-12 16:28:32

MacKubernetes

2023-01-28 16:16:42

WindowsPython
點贊
收藏

51CTO技術棧公眾號

欧美伦理视频网站| 亚洲区一区二区| 日韩av一区二区在线影视| 亚洲一区二区在线免费看| 久久影视免费观看 | 69xxxx欧美| 成人在线小说| 超碰成人久久| 亚洲一区二区三区三| 免费看国产一级片| 亚洲网址在线观看| 91美女在线视频| 久久久久久久久久av| 自拍偷拍21p| 香蕉久久夜色精品国产使用方法| 欧美国产精品一区二区| 日本成人黄色片| 2222www色视频在线观看| av在线不卡网| 68精品久久久久久欧美| 欧美vide| 亚洲尤物精选| 亚洲免费视频一区二区| 久久99爱视频| 亚洲人成小说网站色在线| 国产日韩在线观看av| av在线免费一区| 国产一区二三区好的| 久久久综合av| 国产福利在线视频| 日日夜夜免费精品视频| 国产午夜精品全部视频在线播放| 国产精品视频黄色| 久久福利影院| 欧美精品久久久久久久多人混战| 天堂中文а√在线| 国产美女av一区二区三区| 久久国产精品久久国产精品| 在线国产小视频| 国产乱国产乱300精品| 男女激情免费视频| 极品美女一区二区三区| 91视频你懂的| 日本xxxx黄色| 欧美高清视频在线观看mv| 欧美福利一区二区| 99久久精品免费看国产小宝寻花| 成人一区二区三区| 欧美一区视频在线| 国产成人午夜| 国产成人精品免费视频网站| 456亚洲影院| 天天做天天爱天天综合网2021 | 国产无遮挡裸体免费久久| 色综合一个色综合亚洲| 神马影院一区二区三区| 国内自拍欧美| 国产精品国语对白| 澳门成人av网| 亚洲成a人v欧美综合天堂下载| 日韩精彩视频| 亚洲综合影院| 国产乱人伦真实精品视频| 日韩脚交footjobhd| 亚洲欧美日韩国产手机在线 | 国产精品私拍pans大尺度在线| 中文字幕免费一区二区三区| 亚洲高清免费观看高清完整版| 啊啊啊好爽视频| 久久午夜av| 91精品国产色综合久久不卡98口 | 中文字幕一区二区三区在线乱码| 林ゆな中文字幕一区二区| 91精品婷婷国产综合久久性色 | 伊人婷婷久久| 国产日产精品一区| 欧美日韩综合精品| 天堂综合网久久| 国产精品对白一区二区三区| 深夜激情久久| 亚洲第一av网| 欧美国产极品| 亚洲精品国精品久久99热| 捆绑紧缚一区二区三区在线观看| 国产一级精品aaaaa看| 欧美视频二区欧美影视| 日韩欧美一区二区三区久久| 精品人妻大屁股白浆无码| 日韩免费久久| 一区二区高清视频| 亚洲无线视频| 欧美与黑人午夜性猛交久久久| 国产精品s色| 欧美韩国日本在线| 精品一区二区在线播放| 亚洲最大av网站| 午夜影院在线播放| 欧美性猛交一区二区三区精品 | 在线观看一区视频| 欧美激情一区二区三区久久久| 欧美jizz| 无码播放一区二区三区| 国产成人高清视频| 伊人网站在线| www.亚洲成人| 日本精品另类| 日韩成人在线电影网| 国内精品伊人久久| 99在线观看免费视频精品观看| 91热福利电影| 综合激情婷婷| 最新天堂中文在线| 亚洲欧美第一页| 国产精品资源| 伊人av成人| 亚洲电影在线播放| 女人裸体免费网站| 亚洲男人天堂久| 亚洲精品乱码| 久久艹中文字幕| 亚洲国产日本| h网站在线播放| 久久九九精品99国产精品| 香蕉久久久久久| 久久夜精品香蕉| 日韩电影免费在线| 日本aaa在线观看| 欧美女孩性生活视频| 国产精品免费大片| av免费在线播放网站| 中文字幕一区二区三区在线不卡| 一区二区三区视频在线观看免费| 亚洲国产高清福利视频| 99热免费精品| 欧美精品hd| 日韩精品在线观看网站| 韩国女主播一区二区| 丝袜足脚交91精品| 日韩视频一区二区三区在线播放| 四虎影视国产在线视频| 狠狠爱综合网| 国产精品成人网| 香蕉成人影院| 杨幂一区欧美专区| 91精品国产高清一区二区三区| 国产理论在线播放| 久久精品久久久久久国产 免费| 久久99精品久久久久久国产越南 | 欧美在线se| 隔壁人妻偷人bd中字| 国产午夜精品久久久| 国产在线乱码一区二区三区| 日韩电影网站| 欧美激情乱人伦一区| 精精国产xxx在线视频app| 精品一区电影国产| 国产一区二区精品久久99| 视频在线这里都是精品| 国产精品12p| 亚洲欧美视频在线观看| 国产精品欧美在线观看| 中文字幕在线一二| 亚洲成人av在线| 看片的网站亚洲| 成年人黄色片视频| 九色91av视频| 亚洲视频www| 成人性生交大片免费看在线播放| 久久精品国产一区二区电影| 91蜜桃传媒精品久久久一区二区| 亚洲精品在线国产| 黄色高清在线观看| 久久99精品久久久久久久青青日本| 日韩美女一区二区三区| 欧美午夜寂寞| 四虎国产精品永远| 色婷婷av一区二区三区久久| 色天天综合网| 精品视频在线一区二区| 欧美—级a级欧美特级ar全黄| 国产精品伦一区| 大香伊人久久| 欧美一区二区三区爽大粗免费| 久久久久久久久久久久av| 精品国产91久久久| 欧美特黄色片| 狠狠色一日本高清视频| 日韩欧美黄色影院| 成人免费黄色大片| 韩日一区二区三区| 伊人福利在线| 成人乱色短篇合集| 成年人午夜久久久| 国产小视频福利在线| 亚洲一区二区三区午夜| 97精品视频在线| 成人综合婷婷国产精品久久| 亚洲欧美tv| v888av成人| 在线播放国产一区中文字幕剧情欧美|