def test_transfer_cuda_gpu(): import theano.sandbox.cuda as cuda_ndarray if cuda_ndarray.cuda_available == False: raise SkipTest("Can't test interaction with cuda if cuda not present") g = GpuArrayType(dtype='float32', broadcastable=(False, False))('g') c = cuda_ndarray.CudaNdarrayType((False, False))('c') av = theano._asarray(rng.rand(5, 4), dtype='float32') gv = gpuarray.array(av) cv = cuda_ndarray.CudaNdarray(av) gvs = gv[:, ::-2] cvs = cv[:, ::-2] f = theano.function([c], gpu_from_cuda(c)) fv = f(cv) assert GpuArrayType.values_eq_approx(fv, gv) fvs = f(cvs) assert GpuArrayType.values_eq_approx(fvs, gvs) f = theano.function([g], cuda_from_gpu(g)) fv = f(gv) assert cuda_ndarray.CudaNdarrayType.values_eq_approx(fv, cv) fvs = f(gvs) assert cuda_ndarray.CudaNdarrayType.values_eq_approx(fvs, cvs)
def test_transfer_cuda_gpu(): import theano.sandbox.cuda as cuda_ndarray if cuda_ndarray.cuda_available == False: raise SkipTest("Can't test interaction with cuda if cuda not present") g = GpuArrayType(dtype='float32', broadcastable=(False, False))('g') c = cuda_ndarray.CudaNdarrayType((False, False))('c') av = theano._asarray(rng.rand(5, 4), dtype='float32') gv = gpuarray.array(av) cv = cuda_ndarray.CudaNdarray(av) gvs = gv[:,::-2] cvs = cv[:,::-2] f = theano.function([c], gpu_from_cuda(c)) fv = f(cv) assert GpuArrayType.values_eq_approx(fv, gv) fvs = f(cvs) assert GpuArrayType.values_eq_approx(fvs, gvs) f = theano.function([g], cuda_from_gpu(g)) fv = f(gv) assert cuda_ndarray.CudaNdarrayType.values_eq_approx(fv, cv) fvs = f(gvs) assert cuda_ndarray.CudaNdarrayType.values_eq_approx(fvs, cvs)