利用多个GPU提高运行效率python
#利用多个GPU加速 import os os.environ['CUDA_VISIBLE_DEVICES'] = '2,1,0'
这是存在多个GPU的电脑上能够实现的,只要放在你编写的代码中便可。
其中,web
os库提供通用的,基本的操做系统交互功能,与操做系统相关的,包括经常使用路径操做,进程管理,环境参数等编程
因此这里须要import os
库来进行加速svg
利用jit编译加速 cpu。在使用这几行代码前,须要首先定义函数函数
在Python中,经常使用def
spa
def 函数名(参数列表): 函数体
来定义函数,就像Python的内置函数同样,从而本身调用本身的函数实现你所须要的需求。
下面是一个小例子操作系统
def example(arg1,arg2): arg1=1 arg=2 print('你须要运行的代码')
不少状况下,为实现需求而进行编程,都会转换成数值,而后运行计算,那么能够将你的代码利用 def
定义为函数,将参数和函数体换成你本身要运行的代码,无论你的计算有多复杂,笔者曾经尝试进行很是复杂的多重数值积分,让你们感觉一下:
np.exp(cta_0+cta_1*np.log(x_1)+cta_2*np.log(x_2)+cta_3*np.log(x_3)+cta_4*np.log(x_4)+cta_5*np.log(x_5)+cta_6*np.log(x_6))/(1+np.exp(cta_0+cta_1*np.log(x_1)+cta_2*np.log(x_2)+cta_3*np.log(x_3)+cta_4*np.log(x_4)+cta_5*np.log(x_5)+cta_6*np.log(x_6))))*((1/(5620000*np.sqrt(2*3.1415926535898)))*np.exp(-(((x_2-36050000)/5620000)**2)/2))*((1/(0.01*np.sqrt(2*3.1415926535898)))*np.exp(-(((x_3-0.04)/0.01)**2)/2))*((1/(0.07419776239466247091*x_4*np.sqrt(2*3.1415926535898)))*np.exp(-((np.log(x_4)-19.9345857246606)**2)/(2*(0.07419776239466247091**2))))*((1/(0.2614264718127*x_5*np.sqrt(2*3.1415926535898)))*np.exp(-((np.log(x_5)+3.09177957735430)**2)/(2*(0.2614264718127**2))))*((1/(0.100526743073751*x_6*np.sqrt(2*3.1415926535898)))*np.exp(-((np.log(x_6)+3.67021574053313)**2)/(2*(0.100526743073751**2))))
一度由于运行太慢,都算了5个小时了,告诉我由于运行内存不足而算不下去,可是加上@jit
后就彻底不同了,半个小时左右就算出了结果。code
你们能够参照下面这个简单的例子进行加速:xml
#jit编译 from numba import jit @jit def example(arg1,arg2): result=arg1+arg2 print('你的代码') return result
return
的就是是你所须要的结果blog
这一步就是最后一步了,只要像下面同样输入上述函数名,赋予参数值,点击运行Run,就能获得你想要的结果
arg1=5 arg2=6 result=example(arg1,arg2)