Skip to content
Snippets Groups Projects
Commit 24446d10 authored by Andreas Klöckner's avatar Andreas Klöckner
Browse files

Be more careful when naming pyopencl host code (unbreaks meshmode)

parent 55ba3a29
No related branches found
No related tags found
No related merge requests found
......@@ -456,7 +456,10 @@ def generate_code_v2(kernel):
allow_complex=allow_complex,
var_name_generator=kernel.get_var_name_generator(),
is_generating_device_code=False,
gen_program_name=kernel.name,
gen_program_name=(
kernel.target.host_program_name_prefix
+ kernel.name
+ kernel.target.host_program_name_suffix),
schedule_index_end=len(kernel.schedule))
from loopy.codegen.result import generate_host_or_device_program
......
......@@ -37,7 +37,9 @@ def map_schedule_onto_host_or_device(kernel):
from functools import partial
kernel_name_gen = partial(
kernel.get_var_name_generator(),
kernel.name + kernel.target.device_program_name_suffix)
kernel.target.device_program_name_prefix
+ kernel.name
+ kernel.target.device_program_name_suffix)
from loopy.schedule import (
RunInstruction, EnterLoop, LeaveLoop, Barrier,
......
......@@ -542,8 +542,10 @@ def generate_arg_setup(gen, kernel, implemented_data_info, options):
# }}}
def generate_invoker(kernel, implemented_data_info, host_code):
def generate_invoker(kernel, codegen_result):
options = kernel.options
implemented_data_info = codegen_result.implemented_data_info
host_code = codegen_result.host_code()
system_args = [
"_lpy_cl_kernels", "queue", "allocator=None", "wait_for=None",
......@@ -580,7 +582,7 @@ def generate_invoker(kernel, implemented_data_info, host_code):
gen("_lpy_evt = {kernel_name}({args})"
.format(
kernel_name=kernel.name,
kernel_name=codegen_result.host_program.name,
args=", ".join(
["_lpy_cl_kernels", "queue"]
+ args
......@@ -754,11 +756,7 @@ class CompiledKernel:
kernel=kernel,
cl_kernels=cl_kernels,
implemented_data_info=codegen_result.implemented_data_info,
invoker=generate_invoker(
kernel,
codegen_result.implemented_data_info,
codegen_result.host_code(),
))
invoker=generate_invoker(kernel, codegen_result))
# {{{ debugging aids
......
......@@ -81,7 +81,9 @@ class TargetBase(object):
# }}}
host_program_name_prefix = ""
host_program_name_suffix = "_outer"
device_program_name_prefix = ""
device_program_name_suffix = ""
def split_kernel_at_global_barriers(self):
......
......@@ -269,6 +269,9 @@ class PyOpenCLTarget(OpenCLTarget):
warnings) and support for complex numbers.
"""
host_program_name_prefix = "_lpy_host_"
host_program_name_suffix = ""
def __init__(self, device=None, pyopencl_module_name="_lpy_cl"):
# This ensures the dtype registry is populated.
import pyopencl.tools # noqa
......
......@@ -32,4 +32,4 @@ except ImportError:
else:
_islpy_version = islpy.version.VERSION_TEXT
DATA_MODEL_VERSION = "v29-islpy%s" % _islpy_version
DATA_MODEL_VERSION = "v31-islpy%s" % _islpy_version
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment