Moderne Workloads auf Supercomputern sind stark von GPU-Beschleunigung für allgemeine Berechnungen abhängig, um den Rechenbedarf für zunehmend komplexe Systeme zu decken. Typische Anwendungen umfassen die Entwicklung von Künstlicher Intelligenz und Großsimulationen. Allerdings hat die zunehmend heterogene Hardwareumgebung die Bedeutung von Performance-Portabilität hervorgehoben, um den flexiblen Einsatz von Software auf verschiedenen Hardwareplattformen zu ermöglichen. Es existieren verschiedene Frameworks für performance-portable GPU-Computing. Eine vergleichsweise wenig erforschte Alternative, die ebenfalls eine starke Performance-Portabilität bieten könnte, ist die Nutzung von Graphic-APIs und Shader-Sprachen für allgemeine GPU-Berechnungen. Diese Arbeit untersucht die Performance von Short-Range N-Body Simulationen unter Verwendung verschiedener Neighbor-Search-Ansätzen, die mit den Shader-Sprachen GLSL und Slang implementiert wurden. Die Implementierungen werden entweder durch Vulkan oder die NVIDIA driver API ausgeführt. Laufzeitmessungen wurden verwendet, um die Performance der unterschiedlichen Ansätze zu untersuchen. Die Ergebnisse zeigen, dass Direct Sum Slang-Shader-Code, der zu PTX kompiliert wurde und durch die NVIDIA driver API ausgeführt wurde, eine Beschleunigung von über dem 213-fachen im Vergleich zu einer Referenz-Direct-Sum-CPU-Implementierung für eine Simulationsgröße von N = 10^4 Partikeln erreichte. Während die CPU-Implementierung für größere Problemgrößen wie N = 10^5 Partikeln unpraktikabel wird, bleiben die GPU-Implementierungen effizient durchführbar und demonstrieren damit ihre Eignung für deutlich größere Workloads.
«
Moderne Workloads auf Supercomputern sind stark von GPU-Beschleunigung für allgemeine Berechnungen abhängig, um den Rechenbedarf für zunehmend komplexe Systeme zu decken. Typische Anwendungen umfassen die Entwicklung von Künstlicher Intelligenz und Großsimulationen. Allerdings hat die zunehmend heterogene Hardwareumgebung die Bedeutung von Performance-Portabilität hervorgehoben, um den flexiblen Einsatz von Software auf verschiedenen Hardwareplattformen zu ermöglichen. Es existieren verschiedene...
»