本文是关于如何在python中使用GPU来大大提高效率。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。我们就不多说了。让我们和边肖一起看看。
Cupy我觉得可以理解为cuda for numpy,安装方法pip安装cupy,假设
importnumpayasnp
Importcupyascp然后np。XXX一般可以直接换成cp.XXX。
事实上,numpy已经足够快了。毕竟是c写的,每次运行都会尽力调用系统资源。为了验证这一点,我们可以通过矩阵乘法进行测试:通过多线程并发、多进程并行和单线程的方式正式比较numpy的速度和资源的调度。代码是
#th_pr_array.py
fromthreadingimportThread
从多进程导入进程
从时间导入时间现在
importnumpayasnp
importsys
N=3000
defMatrixTest(n,name,t):
x=NP . rand . rand(n,n)
x=x@x
打印(f'{name}@{t}:{Now()-t} ')
defhtest(:)
t=现在()
foriirange(5):
Thread(target=MatrixTest,args=[N,f'th{i} ',t])。开始()
defprTest():
t=现在()
foriirange(5):
进程(target=MatrixTest,args=[N,f'pr{i} ',t])。开始()
if__name__=='__main__':
ifsys.argv[1]=='th':
thTest()
elifsys.argv[1]=='pr':
prTest()
else:
t=现在()
foriirange(5):
测试运行如下
(基本)e : \ Documents \ 00 \ 1108 python th _ pr _ numpy . py th
th0 @ 1636357422 . 58888888666
TH2 @ 163635742 . 56666666666
th3 @ 1636357422 . 58888888666
th4 @ 1636357422 . 56666666666
th5 @ 1636357422 . 58888888666
(基本)e : \ Documents \ 00 \ 1108 python th _ pr _ numpy . py pr
pr3 @ 1636357462.4170427
pr0 @ 1636357462.4170427
pr1 @ 1636357462.4170427
pr4 @ 1636357462.4170427
pr2 @ 1636357462 . 56666666666
(基本)e : \ Documents \ 00 \ 1108 python th _ pr _ numpy . py single
single @ 1636357567.8899782
single @ 1636357567.8899782
single @ 1636357567.8899782
single @ 1636357567.8899782
single @ 1636357567.8899782
所以不要在numpy中使用python内置的并行性和并发性。相反,它将被称为累赘。此外,这样的比较将证明numpy的强大性能。
但是在cupy面前,这个速度会很苍白。接下来,连续五次创建一个5000x5000的随机矩阵,并将该矩阵相乘。
#np_cp.py
importnumpayasnp
importcupyascp
importsys
从时间导入时间现在
N=5000
defestnp(t):
foriirange(5):
x=随机数(N,N)
x=x@x
打印(f'np:{Now()-t} ')
defestcp(t):
foriirange(5):
x=随机数(N,N)
x=x@x
打印(f'cp:{Now()-t} ')
if__name__=='__main__':
t=现在()
ifsys.argv[1]=='np':
测试计划
elifsys.argv[1]=='cp':
testCp(t)的最终结果是
(基本)E: \文档\00\1108python np_cp.py np
NP . 38860 . 88888868861
(基本)E: \文档\00\1108python np_cp.py cp
cp3860 . 8888888886
更何况很霸道。当矩阵的维数从5000x5000上升到15000x15000时,cupy的计算时间变化不大,充其量是线性增长。毕竟只要缓存能容纳,矩阵再大,乘法数也只会增加行或列。
以上就是如何在python中使用GPU来大大提高效率。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/78647.html