GPU computing with Python

Accelerate your Python code with either CUDA or OpenCL on multi-core compute devices

   Watch Promo

Why this is for you

Python is an excellent general-purpose programming language that has revolutionised data science by making data easy to handle and transform, but often at the cost of performance. Devices like GPU's have brought supercomputer-like performance to desktop computers, however access to these devices has, up to this point, been through lengthy and error-prone C code that is a big drain on your most precious commodity, time.

This course aims to help you cross a bridge between retaining the flexibility of Python and accessing the raw compute power of devices like GPU's. Learn how to accelerate computing with Python through a high-level abstraction over the CUDA and OpenCL and frameworks for GPU’s and other Multi-core devices. Using this technology I obtained a 10x increase in data throughput for a client. Speed increases like this can transform your data processing workflows without the need for significant investment into developer- intensive languages like C.

Course content

GPU computing with Python is aimed at intermediate and advanced Python developers who need to accelerate parallel algorithms. The core topics covered are as follows:

  • Understand how GPU and CPU compute devices work and what algorithms they are suited for
  • Explore fundamental HPC concepts such as how multi-dimensional arrays map to memory allocations.
  • Investigate how OpenCL and CUDA map work to manycore devices.
  • Write Python code that interacts with the compute device.
  • Learn the basics of C syntax in compute kernels and how to use pointers.
  • Develop compute kernels to process data in Numpy arrays with for a wide variety of data types.
  • Optimisation tips on how to write high performance compute kernels.

The course is taught almost purely by example, and I carefully explain each line of code. You will have numerous opportunities to apply the knowledge you learn through a number of carefully crafted exercises.

Things you need to know before enrolling

For this course I will assume that you have a reasonable grasp of Python. There is some installation required to get all the software components ready, so you need administrator access to a computer (Windows, MacOS, and Linux is fine), as well as a means to download the required software.

Outcomes

By the end of the course you will be able to write Python programs that leverage the compute power of CPU's, GPU's, and other multi-core compute devices, thus unlocking the sheer compute power that these devices provide. How much is that ability worth to you?


Your Instructor


Dr Toby Potter
Dr Toby Potter

Dr. Toby Potter is a computational physicist and proprietor of Pelagos Consulting and Education. He has a keen interest in using computers to solve problems and showing others how to do the same. Toby was formerly employed as a postdoctoral researcher in the Centre for Energy Geoscience at The University of Western Australia, and has been using Python on a daily basis since 2008. He is also a passionate science communicator, and regularly engages with industry and academia in both consulting and education roles.

LinkedIn profile: https://www.linkedin.com/in/topotter/

Publication record: https://scholar.google.com.au/citations?user=-BVUGTgAAAAJ&hl=en&oi=ao

Conference talk example: https://youtu.be/wrDbW_2HjYE

Phone number: +61 437 454 750


Frequently Asked Questions


When does the course start and finish?
This is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
With all course purchases you can download the course material and retain a copy as long as you abide by the license terms.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Do I need an NVIDIA GPU for this course?
No, the course material is mostly platform-agnostic, and can make use of any compute device (including CPU's and GPU's) that provides access to either OpenCL and/or CUDA. This means compute devices from Intel and AMD can be used as well.
What operating system do I need to have?
This course works with MacOS, Linux and Windows. As long as there is some form of OpenCL or CUDA library that can be installed on your computer then you should be able to use the course material.

Get started now!