Skip to content

Commit ba7c205

Browse files
LazilyPyOpenCLCompilingFunctionCaller: limit arg size for GPUs
1 parent 9d7feae commit ba7c205

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

arraycontext/impl/pytato/compile.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,12 +415,22 @@ def _dag_to_transformed_pytato_prg(self, dict_of_named_arrays, *, prg_id=None):
415415
prg_id, "pre_generate_loopy", pt_dict_of_named_arrays)
416416

417417
with ProcessLogger(logger, f"generate_loopy for '{prg_id}'"):
418+
import pyopencl as cl
419+
dev = self.actx.context.devices[0]
420+
limit = dev.max_parameter_size
421+
target = None
422+
if dev.type & cl.device_type.GPU:
423+
# Leave some extra space since our sizes are estimates
424+
target = lp.PyOpenCLTarget(limit_arg_size_nbytes=limit//2)
425+
418426
pytato_program = pt.generate_loopy(
419427
pt_dict_of_named_arrays,
420428
options=lp.Options(
421429
return_dict=True,
422430
no_numpy=True),
423-
function_name=_prg_id_to_kernel_name(prg_id))
431+
function_name=_prg_id_to_kernel_name(prg_id),
432+
target=target,
433+
)
424434
assert isinstance(pytato_program, BoundPyOpenCLProgram)
425435

426436
self.actx._compile_trace_callback(

0 commit comments

Comments
 (0)