Start removing event system
Created by: vchuravy
As I have mentioned over the last little while I would like to remove the event system. Over the years it has proven itself to be cumbersome, and prone to introduce bugs.
In contrast @maleadt
developed a task-based concurrency scheme for CUDA.jl that is rather
elegant and doesn't introduce a new terminology beside Julia's existing tasks.
This is the last big chance I forsee and I plan on KernelAbstractions 0.9 to be a direct pre-cursor to 1.0.
Things that need to be hammered out:
- Does this also work with the oneAPI and ROCm backend?
-
synchronize(::Device)
is rather nice, but is also exported by CUDA.jl - For 1.0 can we add KA as a dependency to GPUArrays.jl and move CUDAKernels.jl into CUDA.jl