!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 targetSyclPlatform
no longer inherits from platforms.GenericGpu
, but directly from platforms.Platform
.codegen.Kernel
instead of codegen.GpuKernel
codegen.driver
into a KernelFactory
class for cleaner codeLambda
s from Lambda.from_expression
to KernelFactory.create_lambda
Relates to #126