提交 bbb7c721 authored 作者: Frederic Bastien's avatar Frederic Bastien

make the test of pycuda handle case when it can't work and make it work in the buildbot.

上级 1b358a4a
...@@ -6,18 +6,32 @@ except ImportError: ...@@ -6,18 +6,32 @@ except ImportError:
from nose.plugins.skip import SkipTest from nose.plugins.skip import SkipTest
raise SkipTest("Pycuda not installed. Skip test of theano op with pycuda code.") raise SkipTest("Pycuda not installed. Skip test of theano op with pycuda code.")
import theano.sandbox.cuda as cuda_ndarray
if cuda_ndarray.cuda_available == False:
from nose.plugins.skip import SkipTest
raise SkipTest('Optional package cuda disabled')
import theano import theano
import theano.tensor as T import theano.tensor as T
from theano.misc.pycuda_example import PycudaElemwiseSourceModuleOp, PycudaElemwiseKernelOp from theano.misc.pycuda_example import PycudaElemwiseSourceModuleOp, PycudaElemwiseKernelOp
from theano.sandbox.cuda import GpuContiguous from theano.sandbox.cuda import GpuContiguous
import theano.misc.pycuda_example import theano.misc.pycuda_example
import theano.sandbox.cuda as cuda_ndarray
if theano.config.mode=='FAST_COMPILE':
mode_with_gpu = theano.compile.mode.get_mode('FAST_RUN').including('gpu')
mode_without_gpu = theano.compile.mode.get_mode('FAST_RUN').excluding('gpu')
else:
mode_with_gpu = theano.compile.mode.get_default_mode().including('gpu')
mode_without_gpu = theano.compile.mode.get_default_mode().excluding('gpu')
def test_pycuda_elemwise_source_module(): def test_pycuda_elemwise_source_module():
x=T.fmatrix('x') x=T.fmatrix('x')
y=T.fmatrix('y') y=T.fmatrix('y')
f=theano.function([x,y],x*y) f=theano.function([x,y],x*y, mode=mode_with_gpu)
print f.maker.env.toposort() print f.maker.env.toposort()
f2 = theano.function([x,y],x*y, mode=theano.compile.mode.get_default_mode().including("local_pycuda_gpu_elemwise")) f2 = theano.function([x,y],x*y, mode=mode_with_gpu.including("local_pycuda_gpu_elemwise"))
print f2.maker.env.toposort() print f2.maker.env.toposort()
assert any([ isinstance(node.op, theano.sandbox.cuda.GpuElemwise) for node in f.maker.env.toposort()]) assert any([ isinstance(node.op, theano.sandbox.cuda.GpuElemwise) for node in f.maker.env.toposort()])
...@@ -34,9 +48,9 @@ def test_pycuda_elemwise_source_module(): ...@@ -34,9 +48,9 @@ def test_pycuda_elemwise_source_module():
def test_pycuda_elemwise_kernel(): def test_pycuda_elemwise_kernel():
x=T.fmatrix('x') x=T.fmatrix('x')
y=T.fmatrix('y') y=T.fmatrix('y')
f=theano.function([x,y],x+y) f=theano.function([x,y],x+y, mode=mode_with_gpu)
print f.maker.env.toposort() print f.maker.env.toposort()
f2 = theano.function([x,y],x+y, mode=theano.compile.mode.get_default_mode().including("local_pycuda_gpu_elemwise_kernel")) f2 = theano.function([x,y],x+y, mode=mode_with_gpu.including("local_pycuda_gpu_elemwise_kernel"))
print f2.maker.env.toposort() print f2.maker.env.toposort()
assert any([ isinstance(node.op, theano.sandbox.cuda.GpuElemwise) for node in f.maker.env.toposort()]) assert any([ isinstance(node.op, theano.sandbox.cuda.GpuElemwise) for node in f.maker.env.toposort()])
...@@ -55,7 +69,7 @@ def test_pycuda_elemwise_kernel(): ...@@ -55,7 +69,7 @@ def test_pycuda_elemwise_kernel():
y3=T.ftensor3('y') y3=T.ftensor3('y')
z3=T.ftensor3('y') z3=T.ftensor3('y')
f4 = theano.function([x3,y3,z3],x3*y3+z3, mode=theano.compile.mode.get_default_mode().including("local_pycuda_gpu_elemwise_kernel")) f4 = theano.function([x3,y3,z3],x3*y3+z3, mode=mode_with_gpu.including("local_pycuda_gpu_elemwise_kernel"))
print f4.maker.env.toposort() print f4.maker.env.toposort()
assert any([ isinstance(node.op, PycudaElemwiseKernelOp) for node in f4.maker.env.toposort()]) assert any([ isinstance(node.op, PycudaElemwiseKernelOp) for node in f4.maker.env.toposort()])
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论