Big Data Analytics: Parallel Computing & Graphical Processing Units (GPUs)
Big Data Analytics: Parallel Computing & Graphical Processing Units (GPUs)
$47.12
AUD
Big Data Analytics: Parallel Computing & Graphical Processing Units (GPUs)
Course Overview This study material focuses on the role of Graphical Processing Units (GPUs) in Parallel Computing for big data analytics. It explores the architectural differences between GPUs and CPUs, provides a foundational understanding of GPU programming, and demonstrates practical examples for optimizing parallel computations.
Key Topics Covered:
GPUs vs CPUs:
Massively Parallel Computation: Understand why GPUs are better suited for tasks that require parallel processing on a large scale.
Flynn’s Taxonomy of Computer Architectures: Learn about different computing architectures, including Single Instruction, Multiple Data (SIMD), and Multiple Instruction, Multiple Data (MIMD), and how they relate to GPU design.
Streaming Multiprocessors (SMs): Dive into the architecture of NVIDIA GPUs, specifically their Streaming Multiprocessors (SMs), which enable high-performance parallel processing.
NVIDIA GPU Generations: Explore the evolution of NVIDIA GPU generations, focusing on key advancements in SM architecture and peak performance metrics.
Basics of GPU Programming:
GPU Programming Abstraction: Introduction to GPU programming concepts, including how the GPU handles massive parallelism compared to traditional CPU programming.
CPU/GPU Cooperation: Learn how CPUs and GPUs collaborate to perform efficient computations in a hybrid computing environment.
Kernel Calls: Understand the concept of kernel functions, which are executed by multiple threads in parallel on the GPU.
Example: Adding Two Vectors: Practical demonstration of adding two vectors using GPU programming.
Compiling CUDA Code: Step-by-step guide on compiling CUDA code, the programming framework for NVIDIA GPUs.
Handling Blocksize Mismatches: Learn how to handle situations where the overall computation range is not a perfect multiple of the block size in parallel computing tasks.
Color to Grayscale Conversion:
Unmanaged GPU Memory: Explore the concept of unmanaged GPU memory and how it can be utilized for large-scale parallel computations.
Example: Color to Grayscale Conversion: Practical example showing how to convert color images to grayscale using GPU parallel processing.
Block Hardware Limitations: Learn about the hardware limitations of GPU blocks and how to optimize block usage in parallel computations.
Optimizing GPU Blocks: Best practices for making the most of GPU blocks in parallel tasks.
Matrix Multiplication:
Matrix Multiplication on CPU:
Direct Method: Understand the straightforward, but less efficient, matrix multiplication on the CPU.
Tiled Matrix Multiplication on CPU: Explore the optimization of matrix multiplication using tiling on the CPU.
Matrix Multiplication on GPU:
Example: Matrix Multiplication (GPU, Tiled): Optimize matrix multiplication on the GPU using the tiled approach for increased performance.
Block Shared Memory:
Block Shared Memory in GPUs: Learn how to efficiently use block shared memory to optimize matrix multiplication and other parallel tasks.
Example: Matrix Multiplication (GPU, Tiled, v0): Detailed example of matrix multiplication using shared memory for optimized parallel execution on GPUs.
Why Choose This Material?
Gain an in-depth understanding of GPU architecture and parallel computing with CUDA for big data analytics.
Practical examples and coding tutorials to help you master GPU programming for tasks like vector addition, image processing, and matrix multiplication.
Ideal for students and professionals looking to leverage GPU performance in big data and high-performance computing (HPC) environments.