Skip to content
Snippets Groups Projects

Clean up kernel creation code in `codegen.driver`. Fix and dry-test SYCL codegen.

Merged Frederik Hennig requested to merge fhennig/fix-sycl-codegen into v2.0-dev
Viewing commit 422a2494
Prev
Show latest version
2 files
+ 57
13
Preferences
Compare changes
Files
2
@@ -436,23 +436,11 @@ class DefaultKernelCreationDriver:
f"No platform is currently available for CPU target {self._target}"
)
elif Target._GPU in self._target:
elif self._target.is_gpu():
gpu_opts = self._cfg.gpu
omit_range_check: bool = gpu_opts.get_option("omit_range_check")
match self._target:
case Target.SYCL:
from ..backend.platforms import SyclPlatform
auto_block_size: bool = self._cfg.sycl.get_option(
"automatic_block_size"
)
return SyclPlatform(
self._ctx,
omit_range_check=omit_range_check,
automatic_block_size=auto_block_size,
)
case Target.CUDA:
from ..backend.platforms import CudaPlatform
@@ -467,6 +455,17 @@ class DefaultKernelCreationDriver:
omit_range_check=omit_range_check,
thread_mapping=thread_mapping,
)
elif self._target == Target.SYCL:
from ..backend.platforms import SyclPlatform
auto_block_size: bool = self._cfg.sycl.get_option("automatic_block_size")
omit_range_check = self._cfg.gpu.get_option("omit_range_check")
return SyclPlatform(
self._ctx,
omit_range_check=omit_range_check,
automatic_block_size=auto_block_size,
)
raise NotImplementedError(
f"Code generation for target {self._target} not implemented"