← → Figure 9. Ginkgo is based on a universal linear operator abstraction. It uses C++ polymorphism to target a variety of CPU and GPU back ends and is extensible for future architectures.