Fundamental GPU Support
-
Review changes -
-
Download -
Patches
-
Plain diff
This MR introduces the fundamentals of GPU support to the new backend
General
- Introduce
GenericGpu
platform and threads range export: GPU platforms communicate the kernel's required thread grid size to the outside via aGpuThreadsRange
object separate from the AST - Add configuration options relating to GPUs
CUDA Platform
- Introduce CUDA platform
- Add materialization + guards for full and sparse iteration spaces
- Add materialization of math functions
SYCL Platform
- Introduce SYCL platform
- Add materialization + guards for full and sparse iteration spaces
- Add materialization of math functions
CUDA Just-In-Time Compiler
- Migrate implementation of
cupy
-based JIT to new backend as an object-oriented structure
Deviations and Missing Features
In 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.
Edited by Frederik Hennig
Merge request reports
Compare and
Show latest version
- version 298687cd94
- version 28e11d5111
- version 27f2045b96
- version 261080f7db
- version 25a06eba1d
- version 2489dd1cb3
- version 2375d6968f
- version 22216ec78b
- version 21ac6811b9
- version 20876aac6a
- version 196b6c1dff
- version 18637f35db
- version 17205feda4
- version 16040c0925
- version 154c5cbb3c
- version 14c10870a5
- version 13b1b8f513
- version 12f340af58
- version 11356a8343
- version 10428424d1
- version 995907f7b
- version 8ff396a6a
- version 707c66d67
- version 60ff6bb94
- version 533df1906
- version 45d03477a
- version 3d447eb1b
- version 203b9e02a
- version 1b85a6763
- backend-rework (base)
- latest version9d11577f32 commits,
- version 298687cd9431 commits,
- version 28e11d511130 commits,
- version 27f2045b9629 commits,
- version 261080f7db28 commits,
- version 25a06eba1d27 commits,
- version 2489dd1cb326 commits,
- version 2375d6968f25 commits,
- version 22216ec78b24 commits,
- version 21ac6811b923 commits,
- version 20876aac6a22 commits,
- version 196b6c1dff21 commits,
- version 18637f35db20 commits,
- version 17205feda419 commits,
- version 16040c092518 commits,
- version 154c5cbb3c17 commits,
- version 14c10870a516 commits,
- version 13b1b8f51315 commits,
- version 12f340af5814 commits,
- version 11356a834313 commits,
- version 10428424d112 commits,
- version 995907f7b11 commits,
- version 8ff396a6a10 commits,
- version 707c66d679 commits,
- version 60ff6bb948 commits,
- version 533df19067 commits,
- version 45d03477a6 commits,
- version 3d447eb1b5 commits,
- version 203b9e02a4 commits,
- version 1b85a67633 commits,