Parallel Programming with GPGPU and CUDA

Learn Scientific Programming, Scientific Programming School

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.

13

Students

--

Projects

0

Reviews (0)

Learn Scientific Programming

Scientific Programming School

Learn Scientific Programming is an innovative E-Learning school that aims to demonstrate the use of scientific programming languages, e.g., Julia, OpenMP, MPI, C++, Matlab, Octave, Bash, Python Sed and AWK including RegEx in processing scientific and real-world data. 

We help you to solve large-scale science biological, engineering, and humanities problems, gain adequate understanding through the analysis of mathematical models imp...

See full profile