我启动了一个在GPU上运行的脚本,如下所示:THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32,base_compiledir=../../temp python t.py
有时甚至需要几分钟才能开始:脚本t.py的第一行是print语句(即。print('start')),并且在几分钟前不会显示。在
如果使用CPU,打印语句将立即出现:
^{pr2}$
我预先使用sudo pkill -9 python终止了所有Python进程。运行nvidia-smi表明在运行脚本之前,没有进程使用任何gpu。(我使用nVidia gpu,特别是nVidia GeForce GTX Titan X)
我注意到这个问题出现在屏幕会话(使用GNU Screen)中,而这个问题是在一段时间前创建的(看起来是半天)。取消屏幕会话并创建一个新会话可以解决这个问题。但是,我不明白它为什么能解决这个问题。在
什么能解释这个问题?在
一些时间安排:
使用Python脚本:import time
print('start import theano')
theano_import_start_time = time.time()
import theano
theano_import_duration = time.time() - theano_import_start_time
print('done import theano')
print('theano_import_duration: {0} seconds'.format(theano_import_duration))
使用以下命令运行:francky@server:/scratch1/a/b$ THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32,base_compiledir=../../temp_compilation python -u test_import_theano.py
我得到:start import theano
Using gpu device 0: GeForce GTX TITAN X (CNMeM is disabled)
done import theano
theano_import_duration: 221.107403994 seconds
221秒对于导入库来说是相当长的时间。如果我关闭屏幕并创建一个新屏幕,导入时间大约为1.1秒。在
缓慢的速度似乎是可以复制的:即使我不超过一次运行import thea,它仍然需要大约220秒(除非我杀死并创建一个新的屏幕)。而且,我不会清空base_compiledir。在