This MR introduces the fundamentals of GPU support to the new backend
GenericGpu
platform and threads range export: GPU platforms communicate the kernel's required thread grid size to the outside via a GpuThreadsRange
object separate from the ASTcupy
-based JIT to new backend as an object-oriented structureIn the new implementation, block size selection is entirely up to the JIT / the runtime system and no longer affects the backend. Adaptive block sizes, register restrictions, etc. are not yet implemented by this MR.