code: def test_local_gpualloc_memset_0():
      i = theano.tensor.iscalar()
      z = np.zeros((1,), dtype="float32")
      o = np.ones((1,), dtype="float32")
      ones = np.ones((2,), dtype="float32")
  
      # Test with 0 from CPU op.
      # Should not be transferred as the only client is the output
      a = tensor.alloc(z, i)
      f = theano.function([i], a, mode=mode_with_gpu)
      topo = f.maker.fgraph.toposort()
      assert len(topo) == 1
      assert isinstance(topo[0].op, theano.tensor.Alloc)
      assert (np.asarray(f(6)) == 0).all()
      assert _check_stack_trace(f)
  
      # Test with 0 from CPU op.
      # Should be transferred as it is used by another op.
      a = tensor.alloc(z, i)
      f = theano.function([i], a.cumsum(), mode=mode_with_gpu)
      topo = f.maker.fgraph.toposort()
      assert len(topo) == 3
      assert isinstance(topo[0].op, GpuAlloc)
      assert (np.asarray(f(6)) == 0).all()
      assert _check_stack_trace(f)
  
      # Test with 0
      a = GpuAlloc(test_ctx_name)(z, i)
      f = theano.function([i], a, mode=mode_with_gpu)
      topo = f.maker.fgraph.toposort()
      assert len(topo) == 1
      assert isinstance(topo[0].op, GpuAlloc) and topo[0].op.memset_0
      assert (np.asarray(f(6)) == 0).all()
      assert _check_stack_trace(f)
  
      # Test with 1
      a = GpuAlloc(test_ctx_name)(o, i)
      f = theano.function([i], a, mode=mode_with_gpu)
      topo = f.maker.fgraph.toposort()
      assert len(topo) == 1
      assert isinstance(topo[0].op, GpuAlloc)
      assert not topo[0].op.memset_0
      assert (np.asarray(f(6)) == 1).all()
      assert _check_stack_trace(f)
  
      # Test with 1, 1
      a = GpuAlloc(test_ctx_name)(ones, i)
      f = theano.function([i], a, mode=mode_with_gpu)
      topo = f.maker.fgraph.toposort()
      assert len(topo) == 1
      assert isinstance(topo[0].op, GpuAlloc)
      assert not topo[0].op.memset_0
      assert (np.asarray(f(2)) == 1).all()
      assert _check_stack_trace(f)
  
imports: from __future__ import absolute_import, print_function, division
  from nose.tools import assert_raises
  import numpy
  import theano
  from theano import tensor
  import theano.tensor.slinalg
  from theano.tests.breakpoint import PdbBreakpoint
  from theano.tests import unittest_tools, test_ifelse
  from theano.tensor.tests import test_basic
  from theano.gof.opt import check_stack_trace
  import theano.gpuarray
  from ..None import basic_ops
  from ..type import GpuArrayType, gpuarray_shared_constructor, get_context
  from ..basic_ops import GpuAlloc, GpuAllocEmpty, GpuReshape, GpuFromHost, HostFromGpu, host_from_gpu
  from ..blas import GpuGemm
  from ..elemwise import GpuCAReduceCuda, GpuCAReduceCPY, GpuElemwise, Elemwise, max_inputs_to_GpuElemwise
  from ..dnn import GpuDnnReduction
  from ..subtensor import GpuSubtensor
  from ..linalg import GpuCusolverSolve, cusolver_available, GpuCholesky
  from .config import mode_with_gpu, mode_without_gpu, test_ctx_name, SkipTest
  import unittest
  from theano.tensor.nnet import abstract_conv
  from theano.gpuarray import dnn, blas, opt
label_desc: Use image node_id 8 for calling a global function with example usage: test_local_gpualloc_memset_0() without return types