minpy使用GPU加速Numpy科學(xué)計(jì)算方式
minpy使用GPU加速Numpy科學(xué)計(jì)算
minpy是一個(gè)基于MXNet的支持GPU的加速Numpy計(jì)算的庫(kù),用法和Numpy幾乎一樣,使用:
import scipy.io as sio import matplotlib as plt import minpy.numpy as np
使用時(shí)只需要在Numpy前面加上minpy,就可以像Numpy一樣使用它進(jìn)行矩陣運(yùn)算。
minpy安裝起來(lái)也很簡(jiǎn)單:
先安裝MXNet依賴
# 安裝cuda10.1版本的MXNet pip install mxnet-cu101 ?? # 如果你的cuda版本為10.0,則執(zhí)行下面的命令,其他版本同理 pip install mxnet-cu100
然后安裝minpy:
pip install minpy
然后就可以正常使用了。
Install mxnet and install minpy
make sure the things below.
- 1.your machine has a nvidia gpu.
- 2.installed gpu cuda and cudnn.
how to install mxnet?
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ? ? --upgrade mxnet-cu90
use cu90 because my cuda version is 9.0
then install minpy
pip install minpy
then is a demo to test minpy gpu acceleration.
import time import numpy as np import numpy.random as random import minpy.numpy as mnp def main(): random.seed(0) X = random.randn(10000, 16000) A = np.array(X,dtype=np.float32) Y = random.randn(16000, 5000) B = np.array(Y,dtype=np.float32) print("A.shape:%s" ,A.shape) print("B.shape:%s" ,B.shape) start = time.time() C = mnp.dot(A,B) d1 = time.time() - start print('minpy numpy:', d1) print(C) start = time.time() C = np.dot(A,B) d2 = time.time() - start print('numpy:', d2) print(C) print("%s" , d2/d1) if __name__ == '__main__': main()
output
A.shape:%s (10000, 16000) B.shape:%s (16000, 5000) minpy numpy: 0.3046295642852783 [[-129.23964 34.24473 205.77763 ... 64.57458 -134.04288 -282.5226 ] [ 56.055874 151.66455 4.534541 ... -59.855354 77.807755 102.97847 ] [ 53.7853 -133.20685 -114.16803 ... -78.15841 -22.429447 -100.71634 ] ... [ 18.944311 -179.30074 -114.42271 ... -22.20309 -29.131681 16.166618 ] [ -5.1453457 -11.761197 -28.63139 ... -236.34016 -67.44423 -50.811813 ] [ 137.46251 -77.67743 -74.262535 ... -25.249132 83.94517 -14.008699 ]] numpy: 3.323066234588623 [[-129.23964 34.24473 205.77763 ... 64.57458 -134.04288 -282.5226 ] [ 56.055874 151.66455 4.534541 ... -59.855354 77.807755 102.97847 ] [ 53.7853 -133.20685 -114.16803 ... -78.15841 -22.429447 -100.71634 ] ... [ 18.944311 -179.30074 -114.42271 ... -22.20309 -29.131681 16.166618 ] [ -5.1453457 -11.761197 -28.63139 ... -236.34016 -67.44423 -50.811813 ] [ 137.46251 -77.67743 -74.262535 ... -25.249132 83.94517 -14.008699 ]] %s 10.908548034020265
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Python時(shí)間日期常見(jiàn)的一些操作方法
Python的datetime模塊是處理日期和時(shí)間的強(qiáng)大工具,datetime類可以獲取當(dāng)前時(shí)間、指定日期、計(jì)算時(shí)間差、訪問(wèn)時(shí)間屬性及格式化時(shí)間,這些功能使得在Python中進(jìn)行時(shí)間日期處理變得簡(jiǎn)單高效,需要的朋友可以參考下2024-09-09如何用Python來(lái)搭建一個(gè)簡(jiǎn)單的推薦系統(tǒng)
這篇文章主要介紹了如何用Python來(lái)搭建一個(gè)簡(jiǎn)單的推薦系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08用Python的Tornado框架結(jié)合memcached頁(yè)面改善博客性能
這篇文章主要介紹了用Python的Tornado框架結(jié)合memcached頁(yè)面改善vLog性能,主要使用到了緩存來(lái)提升性能,需要的朋友可以參考下2015-04-04Python PyQt5 Pycharm 環(huán)境搭建及配置詳解(圖文教程)
這篇文章主要介紹了Python PyQt5 Pycharm 環(huán)境搭建及配置詳解,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Pygame坦克大戰(zhàn)游戲開(kāi)發(fā)實(shí)戰(zhàn)詳解代碼
《坦克大戰(zhàn)》以二戰(zhàn)坦克為題材,既保留了射擊類游戲的操作性,也改進(jìn)了射擊類游戲太過(guò)于復(fù)雜難玩的高門檻特點(diǎn),集休閑與競(jìng)技于一身。經(jīng)典再度襲來(lái),流暢的畫面,瘋狂的戰(zhàn)斗,讓玩家再次進(jìn)入瘋狂坦克的世界。玩家的目標(biāo)是控制坦克躲避危險(xiǎn),消滅掉所有的敵人即可進(jìn)入下一關(guān)2022-02-02python計(jì)算最小優(yōu)先級(jí)隊(duì)列代碼分享
python計(jì)算最小優(yōu)先級(jí)隊(duì)列代碼分享,大家參考使用吧2013-12-12Python之關(guān)于類變量的兩種賦值區(qū)別詳解
這篇文章主要介紹了Python之關(guān)于類變量的兩種賦值區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03