Skip to content
Snippets Groups Projects
Select Git revision
  • a624abc26d940566771b03ab3ba468394c4ae9a8
  • master default protected
  • v2.0-dev protected
  • zikeliml/Task-96-dotExporterForAST
  • zikeliml/124-rework-tutorials
  • fma
  • fhennig/v2.0-deprecations
  • holzer-master-patch-46757
  • 66-absolute-access-is-probably-not-copied-correctly-after-_eval_subs
  • gpu_bufferfield_fix
  • hyteg
  • vectorization_sqrt_fix
  • target_dh_refactoring
  • const_fix
  • improved_comm
  • gpu_liveness_opts
  • release/1.3.7 protected
  • release/1.3.6 protected
  • release/2.0.dev0 protected
  • release/1.3.5 protected
  • release/1.3.4 protected
  • release/1.3.3 protected
  • release/1.3.2 protected
  • release/1.3.1 protected
  • release/1.3 protected
  • release/1.2 protected
  • release/1.1.1 protected
  • release/1.1 protected
  • release/1.0.1 protected
  • release/1.0 protected
  • release/0.4.4 protected
  • last/Kerncraft
  • last/OpenCL
  • last/LLVM
  • release/0.4.3 protected
  • release/0.4.2 protected
36 results

test_create_kernel_config.py

Blame
  • Markus Holzer's avatar
    Markus Holzer authored and Jan Hönig committed
    a624abc2
    History
    test_create_kernel_config.py 1.25 KiB
    import numpy as np
    import sympy as sp
    import pystencils as ps
    import pystencils.config
    
    
    def test_create_kernel_config():
        c = pystencils.config.CreateKernelConfig()
        assert c.backend == ps.Backend.C
        assert c.target == ps.Target.CPU
    
        c = pystencils.config.CreateKernelConfig(target=ps.Target.GPU)
        assert c.backend == ps.Backend.CUDA
    
        c = pystencils.config.CreateKernelConfig(backend=ps.Backend.CUDA)
        assert c.target == ps.Target.CPU
        assert c.backend == ps.Backend.CUDA
    
    
    def test_kernel_decorator_config():
        config = pystencils.config.CreateKernelConfig()
        a, b, c = ps.fields(a=np.ones(100), b=np.ones(100), c=np.ones(100))
    
        @ps.kernel_config(config)
        def test():
            a[0] @= b[0] + c[0]
    
        ps.create_kernel(**test)
    
    
    def test_kernel_decorator2():
        h = sp.symbols("h")
        dtype = "float64"
    
        src, dst = ps.fields(f"src, src_tmp: {dtype}[3D]")
    
        @ps.kernel
        def kernel_func():
            dst[0, 0, 0] @= (src[1, 0, 0] + src[-1, 0, 0]
                             + src[0, 1, 0] + src[0, -1, 0]
                             + src[0, 0, 1] + src[0, 0, -1]) / (6 * h ** 2)
    
        # assignments = ps.assignment_from_stencil(stencil, src, dst, normalization_factor=2)
        ast = ps.create_kernel(kernel_func)
    
        code = ps.get_code_str(ast)