Skip to content

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

Frederik Hennig requested to merge fhennig/fix-sycl-codegen into v2.0-dev

!449 (merged) accidentally broke SYCL code generation since SYCL kernels do not receive a launch config, but their kernel object expected one since it was being modelled as a GPU kernel.

This MR fixes this, alongside a few other improvements:

  • Target.SYCL is no longer a GPU target
  • SyclPlatform no longer inherits from platforms.GenericGpu, but directly from platforms.Platform.
  • Emit SYCL kernels using codegen.Kernel instead of codegen.GpuKernel
  • Combine the various kernel creation utility functions in codegen.driver into a KernelFactory class for cleaner code
  • Move creation of Lambdas from Lambda.from_expression to KernelFactory.create_lambda
  • Add dry-dock tests for SYCL code generation that only test if the codegen driver runs successfully

Relates to #126

Edited by Frederik Hennig

Merge request reports