After clicking “Watch Now” you will be prompted to login or join.
Click “Watch Now” to login or join the NVIDIA Developer Program.
From High to Low Level: A Comparative Study of Programming Approaches for NVIDIA GPUs
Joshua Romero, NVIDIA | Mauro Bisson, NVIDIA
Learn about various available methods to program NVIDIA GPUs, from using high-level GPU libraries in Python to optimized CUDA C programming. We'll discuss the development and performance of several implementations of software to simulate the 2D Ising model for spin systems, comparing the different programming approaches in terms of development effort and simulation performance. We'll show how Python, in combination with the Numba/CuPy packages, enables users to write programs, with all the productivity benefits of a high-level language, that can still provide competitive performance to lower-level implementations. We'll also highlight some performance pitfalls encountered with these tools and discuss how we addressed them. Finally, we'll compare performance against published results on other hardware platforms and show that even simple programming methods on GPUs can provide competitive performance, while our optimized low-level implementation can rapidly simulate lattices sizes outside the scope of comparable field-programmable gate array solutions.