def _test_template(self, nbtype, src):
     dtype = np.dtype(str(nbtype))
     dst = np.zeros(1, dtype=dtype)
     src = dtype.type(src)
     arytype = nbtype[::1]
     kernel = compiler.compile_kernel(assign_value, [arytype, nbtype])
     kernel[1, 1](dst, src)
     self.assertEqual(dst[0], src)
    def test_loading_from_memory(self):
        arytype = types.float32[:]
        kernel = compiler.compile_kernel(copy_kernel_1d, [arytype] * 2)

        # Load BRIG memory
        symbol = '&{0}'.format(kernel.entry_name)
        brig_module = BrigModule(kernel.binary)

        self._check(brig_module, symbol)
    def test_hsa_kernel(self):
        src = np.arange(1024, dtype=np.float32)
        dst = np.zeros_like(src)

        # Compiler kernel
        arytype = types.float32[::1]
        kernel = compiler.compile_kernel(copy_kernel_1d, [arytype] * 2)

        # Run kernel
        kernel[src.size // 256, 256](dst, src)

        np.testing.assert_equal(src, dst)
    def test_loading_from_file(self):
        arytype = types.float32[:]
        kernel = compiler.compile_kernel(copy_kernel_1d, [arytype] * 2)

        # Write the brig file out
        brig_file = tempfile.NamedTemporaryFile(delete=False)
        with brig_file:
            brig_file.write(kernel.binary)

        # Load BRIG file
        symbol = '&{0}'.format(kernel.entry_name)
        brig_module = BrigModule.from_file(brig_file.name)
        # Cleanup
        os.unlink(brig_file.name)

        self._check(brig_module, symbol)
    def test_device_function(self):
        src = np.arange(10, dtype=np.int32)
        dst = np.zeros_like(src)

        arytype = types.int32[::1]
        devfn = compiler.compile_device(udt_devfunc, arytype.dtype,
                                        [arytype, types.intp])

        def udt_devfunc_caller(dst, src):
            i = hsa.get_global_id(0)
            if i < dst.size:
                dst[i] = devfn(src, i)

        kernel = compiler.compile_kernel(udt_devfunc_caller,
                                         [arytype, arytype])

        kernel[src.size, 1](dst, src)
        np.testing.assert_equal(dst, src)
 def test_copy_kernel_1d(self):
     arytype = types.float32[:]
     kernel = compiler.compile_kernel(copy_kernel_1d, [arytype] * 2)
     self.assertIn("prog kernel &{0}".format(kernel.entry_name),
                   kernel.assembly)