Clean up kernel creation code in `codegen.driver`. Fix and dry-test SYCL codegen.
!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.SYCLis no longer a GPU target -
SyclPlatformno longer inherits fromplatforms.GenericGpu, but directly fromplatforms.Platform. - Emit SYCL kernels using
codegen.Kernelinstead ofcodegen.GpuKernel - Combine the various kernel creation utility functions in
codegen.driverinto aKernelFactoryclass for cleaner code - Move creation of
Lambdas fromLambda.from_expressiontoKernelFactory.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