diff --git a/examples/python/call-external.py b/examples/python/call-external.py index 904270472391a3f3c776ba6c254450a9755eed13..68618a7ecaaaba9c9c93495a05c2313a7660b377 100644 --- a/examples/python/call-external.py +++ b/examples/python/call-external.py @@ -7,12 +7,14 @@ from loopy.target.c import CTarget # {{{ blas callable class BLASCallable(lp.ScalarCallable): - def with_types(self, arg_id_to_dtype, kernel): + def with_types(self, arg_id_to_dtype, kernel, program_callables_info): for i in range(0, 2): if i not in arg_id_to_dtype or arg_id_to_dtype[i] is None: # the types provided aren't mature enough to specialize the # callable - return self.copy(arg_id_to_dtype=arg_id_to_dtype) + return ( + self.copy(arg_id_to_dtype=arg_id_to_dtype), + program_callables_info) mat_dtype = arg_id_to_dtype[0].numpy_dtype vec_dtype = arg_id_to_dtype[1].numpy_dtype @@ -32,7 +34,7 @@ class BLASCallable(lp.ScalarCallable): from loopy.types import NumpyType return self.copy(name_in_target=name_in_target, arg_id_to_dtype={0: NumpyType(vec_dtype), 1: NumpyType(vec_dtype), - -1: NumpyType(vec_dtype)}) + -1: NumpyType(vec_dtype)}), program_callables_info def emit_call_insn(self, insn, target, expression_to_code_mapper): assert self.is_ready_for_codegen() @@ -97,9 +99,13 @@ knl = lp.make_kernel( """ y[:] = gemv(A[:, :], x[:]) """, [ - lp.ArrayArg('A', dtype=np.float64, shape=(n, n)), - lp.ArrayArg('x', dtype=np.float64, shape=(n, )), - lp.ArrayArg('y', shape=(n, )), ...], - target=CTarget()) + lp.GlobalArg('A', dtype=np.float64, shape=(n, n)), + lp.GlobalArg('x', dtype=np.float64, shape=(n, )), + lp.GlobalArg('y', shape=(n, )), ...], + target=CTarget(), + lang_version=(2018, 2)) -knl = lp.register_function_lookup(knl, blas_fn_lookup) +knl = lp.register_function_id_to_in_knl_callable_mapper( + knl, blas_fn_lookup) + +print(lp.generate_code_v2(knl).device_code()) diff --git a/examples/python/global_barrier_removal.py b/examples/python/global_barrier_removal.py index 7ab049cd1906f703b0efc39808ff68a63b91ff37..cc4926feeeb3815da1c66a2548bf3235df8f1fcc 100644 --- a/examples/python/global_barrier_removal.py +++ b/examples/python/global_barrier_removal.py @@ -24,7 +24,7 @@ from loopy.preprocess import preprocess_kernel knl = preprocess_kernel(knl) from loopy.schedule import get_one_scheduled_kernel -knl = get_one_scheduled_kernel(knl) +knl = get_one_scheduled_kernel(knl.root_kernel, knl.program_callables_info) # map schedule onto host or device print(knl) diff --git a/examples/python/hello-loopy.py b/examples/python/hello-loopy.py index 9098c544490035dd19b960422d1abbb7a5210b68..764cea0e63036ff1a1338cce1210c9e198e954a7 100644 --- a/examples/python/hello-loopy.py +++ b/examples/python/hello-loopy.py @@ -16,7 +16,8 @@ a = cl.array.arange(queue, n, dtype=np.float32) # ------ knl = lp.make_kernel( "{ [i]: 0<=i