Sorry, your browser is not supported
To have the best experience using Skillshare, we recommend that you use one of these supported browsers.

Parallel Programming with GPGPU and CUDA

Ahmed Arefin, PhD, Computation Scientist

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
18 Videos (1h 21m)
    • Introduction

      2:09
    • CUDA Programming

      4:22
    • CUDA device, thread, blocks and grids

      3:57
    • CUDA grid organisation and memory hierarchy

      4:07
    • Install CUDA toolkit and run CUDA codes (Windows)

      1:48
    • GPGPU Schema

      2:38
    • GPU Software Stack

      4:30
    • CUDA Hello world!

      4:43
    • CUDA Kernel

      3:28
    • CUDA variable addition

      8:11
    • CUDA vector addtion (using N blocks)

      6:41
    • CUDA vector addition (using N threads)

      3:47
    • CUDA variable addtion (variable blocks and threads)]

      6:41
    • CUDA vector addition demonstration

      3:54
    • Matrix Multiplication (Revisited)

      3:59
    • Matrix Multiplication (CPU code vs. GPU code)

      4:30
    • CUDA Matrix Multiplication

      8:15
    • Execute the CUDA code (Matrix Multiplication)

      3:15

About This Class

This course is intends to explain the basics of CUDA using C/C++ programming language, which you can use your stepping stone to machine learning, deep learning and big data careers.

CUDA is a parallel computing platform and application programming interface (API) model created by Nvidia. When it was first introduced, the name was an acronym for Compute Unified Device Architecture, but now it's only called CUDA. CUDA has several advantages over traditional general-purpose computation on GPUs (GPGPU) using graphics APIs: Scattered reads, Unified virtual memory (CUDA 4.0 and above), Unified memory (CUDA 6.0 and above), Shared memory, faster downloads and readbacks to and from the GPU, full support for integer and bitwise operations, including integer texture lookups.

The CUDA platform is designed to work with programming languages such as C, C++, and Fortran. It has wrappers for many other languages including Python, Java and so on. This accessibility makes it easier for specialists in parallel programming to use GPU resources, in contrast to prior APIs like Direct3D and OpenGL, which required advanced skills in graphics programming. 

Also, CUDA supports programming frameworks such as OpenACC and OpenCL. CUDA is a freeware, works on Windows, Linux and Mac OSX.

1

Student

--

Projects

0

Reviews (0)

Ahmed Arefin, PhD

Computation Scientist

Ahmed Arefin, PhD is an enthusiastic computer programmer with more than a decade of well-rounded computational experience. He likes to code, but loves to write, research and teach. He founded the Learn Scientific Programming initiative to teach advanced programming topics in kindergarten-silly approaches.

Following a PhD and Postdoc research in the area of data-parallelism he's moved forward to become a Scientific Computing professional, keeping his research interests on, in the area o...

See full profile