Twenty-one days. CUDA C++ is the spine; Python rides beside it the whole way. Every speed claim is measured, not just described.
A CUDA kernel that launches with no error is not one that ran correctly: CUDA errors are asynchronous and silent unless checked by hand. The bottleneck is rarely the arithmetic -- it is the PCIe link.
Day 1 sets a NumPy loop beside a CuPy call, no kernel written yet, to show what a GPU buys and what the transfer costs. By Day 9 memory access is coalesced across a 32-thread warp instead of fought line by line. By Day 15 a naive reduction becomes a three-stage tiled one, benchmarked against numpy.sum. Day 21 closes with a performance checklist and a project brief of your own.
234 figures across 21 chapters, each a real measurement or hardware schematic. 187 listings in CUDA C++, CuPy or Numba, and every printed output captured from a real run on an RTX 4070. Every idea appears in more than one language, so a reader stuck in one can read the other.
YOUR 21-DAY PATH
Day 1 - Why a Different Kind of Chip? Parallel Thinking From the Ground Up: throughput versus latency, and a first measured speedup.
Day 2 - Setting Up, Toolkit, Driver, and Your First Run: nvidia-smi, nvcc, and a device query.
Day 3 - Your First Kernel: __global__, the launch syntax, and SAXPY in CUDA C++, Numba and CuPy.
Day 4 - Threads, Blocks, and Grids: threadIdx, blockDim, the global-index formula, the grid-stride loop.
Day 5 - Vector Addition, End to End: the five steps of every CUDA program, cudaMalloc to a checked result.
Day 6 - Moving Data Between Host and Device: pinned memory, measured bandwidth, unified memory.
Day 7 - When Kernels Go Wrong, Error Checking and Debugging: cudaGetLastError, compute-sanitizer, a bug hunt.
Day 8 - The Memory Hierarchy: global, shared and constant memory, and a measured latency ladder.
Day 9 - Coalesced Memory Access: the 32-thread warp, strided versus contiguous access, array-of-structs.
Day 10 - Shared Memory and Tiling: shared memory as scratchpad, bank conflicts, a tiled matrix transpose.
Day 11 - Synchronization and Race Conditions: __syncthreads, a raced reduction, and why blocks cannot sync.
Day 12 - Warps and Divergence: lockstep execution, branch divergence, and a warp-shuffle reduction.
Day 13 - Occupancy and Launch Configuration: registers, shared memory, and the block-size sweet spot.
Day 14 - Measuring, Timing, Events, and a First Roofline: CUDA events, Nsight, the roofline model.
Day 15 - Reduction, the First Hard Kernel: tree reduction in shared memory, and a three-stage speedup ladder.
Day 16 - Atomics and a Histogram: atomicAdd, contention, and a privatized histogram.
Day 17 - Scan, Prefix Sum: inclusive and exclusive scan, and the Blelloch up-sweep, down-sweep.
Day 18 - Streams and Overlap: cudaMemcpyAsync, pinned memory, and a double-buffered pipeline.
Day 19 - Standing on Libraries, Thrust, cuBLAS, cuFFT, and CuPy: why a library beats a hand-rolled kernel.
Day 20 - A Real Application, Image Convolution on the GPU: a tiled kernel, verified against SciPy.
Day 21 - Wrapping Up and Where to Go Next: a performance checklist, the measure-first mindset, a project brief.
WHO IT IS FOR. A programmer who knows a little C or C++ and a little Python, and wants to write, debug and profile a GPU kernel rather than just call one. You need a C/C++ compiler and Python with NumPy; a local GPU helps but is not required, since CuPy and Numba carry the ideas on a cloud notebook. No prior parallel programming, and no framework beyond the CUDA Toolkit.
Download book source code from: {GitHub}/{mohammadnsaqib}
436 pages, black and white.
Die Inhaltsangabe kann sich auf eine andere Ausgabe dieses Titels beziehen.
Anbieter: AHA-BUCH GmbH, Einbeck, Deutschland
Taschenbuch. Zustand: Neu. Neuware - CUDA Programming in 21 DaysA Hands-On Course in C++ and Python>================================================================Go from 'what even is a GPU ' to writing, debugging, and tuningyour own CUDA kernels - in three focused weeks.>Most GPU books are either a wall of reference material or a thinlayer of copy-paste recipes. This one is a course. Each day is asingle sitting that builds on the last, teaches one ideaproperly, and ends with a workshop so the knowledge lands in your>You write REAL CUDA C++ that compiles with nvcc, and you see thePython equivalent (CuPy and Numba) alongside every step, so youcan run and experiment even before your C++ is fluent. Every>WHAT YOU GET- 21 chapters (3 weeks x 7 days), 1.2 million words of careful, worked teaching - no filler.- 229 figures, diagrams, and plots, every one generated from areal computation or a clean schematic.- Hundreds of runnable listings in CUDA C++, CuPy, and Numba.>THE THREE WEEKSWeek 1 - Get onto the GPU: why GPUs win, the toolkit, yourfirst kernel, thread indexing, moving data, and debugging.Week 2 - Make it fast: the memory hierarchy, coalescing, shared memory and tiling, synchronization, warps anddivergence, occupancy, and honest profiling with a roofline.Week 3 - Patterns, libraries, and a real project: reduction, atomics, scan, streams and overlap, Thrust/cuBLAS/cuFFT/CuPy, >WHO IT'S FORYou know a little C or C++ and a little Python. You do NOT needany GPU experience. You do not even need an expensive GPU - anyrecent NVIDIA card works, and Day 2 shows you how to run every>BY DAY 21 YOU CAN- decide whether a problem suits a GPU, and why;- write, launch, and debug your own kernels;- lay out memory and choose a launch configuration for speed;- use reductions, scans, atomics, and streams with confidence;- reach for the right library - and verify its result;>The GPU stops being a black box. Go build something that neededall those threads. Artikel-Nr. 9798183777802
Anzahl: 2 verfügbar