A Beginners Guide to GPUs for Pythonistas
|Countdown link||Open timer|
In this talk, I will be discussing Python and GPUs! I will give a brief history of Python and parallel computing, take a look at Python’s ‘infamous’ GIL, and share how and why Pythonistas can get started with using GPUs to do more work faster.
I will begin with a brief background on the history of Python and parallel computing. Some people would call Python a ‘slow language.’ One of the reasons for this is that it doesn’t readily support parallelism because of the GIL. I’ll take a quick look at Python’s ‘infamous’ GIL and how and why people have and are still trying to get around it. For this, I will be referencing some of my favorite PyCon talks on the subject!
For slow, CPU-intensive tasks there are several ways to speed up your Python code. Async IO and Numba JIT, are some tools that have become quite popular for improving GIL-related performance issues. More recently, and as it relates to this talk GPUs have been introduced as another way to optimize performance in this regard.
What exactly is a GPU?
Next, I’ll discuss what a GPU is and how it’s being used in the world today. Historically GPUs have been used primarily in gaming, but more and more people are using them for general-purpose computing. I’ll discuss the differences between CPUs and GPUs and share some examples of various ways Pythonistas are using GPUs to speed up their workflows. I’m currently interning with the RAPIDS team at Nvidia, so I’ll talk a little bit about the work I’m doing there. RAPIDS is an open-source library that accelerates data science using GPUs. I’ll demonstrate the differences in speed of computation with a GPU and without one.
How can I get started?
-Finally, I will end my talk by giving some advice about how Pythonistas can start using GPUs either in their work or as a hobby in their spare time. Even if you don’t personally own a GPU there are several free and affordable resources one can access online. I’ll share some of these resources with the audience.
Marlene is a Zimbabwean software engineer, explorer, and speaker based in the city of Harare. She is an advocate for using science and technology for social good and increasing diversity in these fields. She is a director and the vice-chair for the Python Software Foundation and is currently working as a software engineer with the RAPIDS team at NVIDIA. In 2017, she co-founded ZimboPy, a non-profit organization that gives Zimbabwean young women access to resources in the field of technology. She is also an avid reader and is currently pursuing a computer science degree, with a concentration in Machine Learning and AI at the University of London.