Draft: HIP Target and Platform
Introduce Target.HIP
and backend.platforms.HipPlatform
.
Plan
The common aspects of CUDA and HIP will be moved to their shared base class GpuPlatform
.
I will attempt to introduce HIP into the test suite via Cupy, but am unsure how this is going to work out.
Rationale
Separate modelling of CUDA and HIP in the code generator will be necessary to capture architectural differences in !438. Also, it turns out to be very important for the new waLBerla code generator (see https://i10git.cs.fau.de/da15siwa/sfg-walberla); using the target is the easiest way to distinguish between CUDA and HIP for GPU codegen.