Although the library APIs for AMD and NVIDIA are very similar, we find very different run-time and performance behaviour for the ELPA code. Thus, a new abstraction layer driving the GPU computations within ELPA has been implemented. Below this abstraction layer, the vendor specific implementations coexist and can be independently developed and optimized. We believe that this very flexible approach facilitates the integration of upcoming new architectures, e.g., Intel GPUs.