Cupy的用處概述

前提:傳統(tǒng)的數(shù)組和矩陣都是通過numpy來設(shè)定喊巍,然后numpy來調(diào)用cpu計(jì)算屠缭!
cupy的作用:數(shù)組和矩陣都是通過cupy來設(shè)定,然后cupy來調(diào)用gpu并行計(jì)算玄糟!

區(qū)別與聯(lián)系:

  • 區(qū)別:numpy自動調(diào)用cpu來進(jìn)行"數(shù)組和矩陣間"的計(jì)算勿她,計(jì)算任務(wù)默認(rèn)單進(jìn)程;cupy自動調(diào)用gpu來進(jìn)行"數(shù)組和矩陣間"的計(jì)算阵翎,gpu中默認(rèn)并行計(jì)算逢并!
  • 聯(lián)系:二者的函數(shù)和實(shí)操的功能基本完全一樣,一般只需把np.xxx()改成cp.xxx()即可郭卫。當(dāng)然砍聊,cupy還未完全寫完,有些numpy的函數(shù)它還未實(shí)現(xiàn)(基本用不到)贰军。

cupy的優(yōu)勢:專門進(jìn)行大型玻蝌、高維數(shù)組/矩陣的快速計(jì)算(非常非承分猓快)!
要想實(shí)現(xiàn)數(shù)組/矩陣的快速運(yùn)算俯树,要注意3點(diǎn):

  • 數(shù)組/矩陣的維度帘腹、尺寸一定要夠大,計(jì)算量夠大才行许饿,否則gpu的初始化都耗的時(shí)間比計(jì)算時(shí)間都長阳欲!總之:計(jì)算量一定要夠大,最好矢量化編程陋率;
  • 數(shù)組/矩陣間的運(yùn)算球化,比如矩陣相加、相乘瓦糟、點(diǎn)乘等筒愚,一定要直接使用cupy自帶的函數(shù)(如加法:cupy.add(x1,x2))!不要直接寫一個(gè):+ 運(yùn)算符菩浙!即:能用自帶函數(shù)就盡量用自帶函數(shù)巢掺!
  • 一定避免cpu和gpu混合編程:比如在一個(gè)循環(huán)計(jì)算中,每一步循環(huán)中的計(jì)算量不大芍耘,但是又有cpu計(jì)算(比如加減乘除賦值等)址遇,又用gpu矩陣計(jì)算。此時(shí)用cupy反而會降低運(yùn)算效率斋竞!因?yàn)?cpu和gpu之間的切換倔约、數(shù)據(jù)互通等一系列初始化非常耗時(shí)"(相比計(jì)算任務(wù)來說)!

下面用一個(gè)很簡單的例子即可體現(xiàn)上面的內(nèi)容:循環(huán)矩陣相加

import cupy as cp
import numpy as np
import time

# 高維矩陣/數(shù)組:
gpu = cp.ones( (1024,512,4,4) )
cpu = np.ones( (1024,512,4,4) )

# 純numpy的cpu測試:
ctime1 = time.time()
for c in range(1024):
    cpu = np.add(cpu,cpu)   # 這里用np.add()和直接用 + 一樣坝初!內(nèi)核都是cpu來算
ctime2 = time.time()
ctotal = ctime2 - ctime1
print('純cpu計(jì)算時(shí)間:', ctotal)

# 純cupy的gpu測試:
gtime1 = time.time()
for g in range(1024):
    gpu = cp.add(gpu,gpu)   # 自帶的加法函數(shù)
gtime2 = time.time()
gtotal = gtime2 - gtime1
print('純gpu計(jì)算時(shí)間:', gtotal)

# gpu和cpu混合編程:
ggtime1 = time.time()
for g in range(1024):
    gpu = gpu + gpu         # 手工加法:+ 默認(rèn)回到cpu計(jì)算=!!鳄袍!
ggtime2 = time.time()
ggtotal = ggtime2 - ggtime1
print('混合的計(jì)算時(shí)間:', ggtotal)

三組循環(huán)矩陣相加的耗時(shí)結(jié)果:

純cpu計(jì)算時(shí)間: 43.857738733291626
純gpu計(jì)算時(shí)間: 0.02496480941772461
混合的計(jì)算時(shí)間: 1.4730699062347412

彼此差距非常明顯绢要!上文中需要注意的2、3點(diǎn)非常非常重要拗小!
由本例也可看出重罪,cupy的gpu并行計(jì)算潛力有多大!
本例的計(jì)算量還是太小哀九,一個(gè)GTX-1050的筆記本顯卡剿配,都根本還沒發(fā)揮其功力!如果將cupy應(yīng)用到服務(wù)器上阅束、應(yīng)用到深度學(xué)習(xí)之中呼胚,潛力非常大!

本文集會持續(xù)更新cupy的相關(guān)操作息裸,并實(shí)時(shí)將其與對應(yīng)的numpy使用進(jìn)行對比蝇更。
numpy教程網(wǎng)站
cupy教程網(wǎng)站

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沪编,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子年扩,更是在濱河造成了極大的恐慌蚁廓,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件常遂,死亡現(xiàn)場離奇詭異纳令,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)克胳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來圈匆,“玉大人漠另,你說我怎么就攤上這事≡咀” “怎么了笆搓?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纬傲。 經(jīng)常有香客問我满败,道長,這世上最難降的妖魔是什么叹括? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任算墨,我火速辦了婚禮,結(jié)果婚禮上汁雷,老公的妹妹穿的比我還像新娘净嘀。我一直安慰自己,他們只是感情好侠讯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布挖藏。 她就那樣靜靜地躺著,像睡著了一般厢漩。 火紅的嫁衣襯著肌膚如雪膜眠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天溜嗜,我揣著相機(jī)與錄音宵膨,去河邊找鬼。 笑死粱胜,一個(gè)胖子當(dāng)著我的面吹牛柄驻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播焙压,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸿脓,長吁一口氣:“原來是場噩夢啊……” “哼抑钟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起野哭,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤在塔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拨黔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛔溃,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年篱蝇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贺待。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡零截,死狀恐怖麸塞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涧衙,我是刑警寧澤哪工,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站弧哎,受9級特大地震影響雁比,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撤嫩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一偎捎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧非洲,春花似錦鸭限、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梦染,卻和暖如春赡麦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帕识。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工泛粹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肮疗。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓晶姊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伪货。 傳聞我的和親對象是個(gè)殘疾皇子们衙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容