awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
PacktPublishing avatar

PacktPublishing/Learn-CUDA-Programming

0
View on GitHub↗
1,258 stars·259 forks·Cuda·MIT·4 views

Learn CUDA Programming

This project serves as a comprehensive educational resource for learning parallel programming and high-performance computing using graphics processing units. It provides technical guidance on the fundamental paradigms required to offload computationally intensive tasks from a host system to specialized hardware accelerators.

The materials cover the core methodologies for managing data-parallel operations, including the orchestration of memory between host and device spaces and the organization of threads into structured grids and blocks. It details the execution models necessary to distribute workloads across multiple processing cores, enabling developers to scale data-heavy applications effectively.

Beyond basic implementation, the resource includes diagnostic practices for analyzing execution metrics and identifying performance bottlenecks. It offers strategies for optimizing kernel execution and debugging logical errors within concurrent codebases to ensure maximum throughput and efficiency in accelerated computing environments.

Features

  • High-Performance and Parallel Computing - Develops and executes data-parallel operations on graphics hardware to distribute processing tasks across multiple cores.
  • CUDA Programming Tutorials - Provides a comprehensive guide for developing high-performance parallel applications using graphics processing units.
  • GPU Kernel Offloading - Compiles and launches specialized functions from a host CPU to a GPU device for execution.
  • Explicit Memory Allocators - Manages the allocation and transfer of data between host and device memory spaces for efficient resource usage.
  • SIMT Execution Models - Executes identical instructions across multiple threads simultaneously to process large data arrays in parallel.
  • Memory Hierarchy Data Movements - Manages explicit data movement between host and device memory to optimize bandwidth and latency.
  • GPU-Accelerated Computation - Offloads computationally intensive tasks to graphics hardware to achieve faster execution speeds for complex calculations.
  • Performance Optimization Patterns - Provides comprehensive strategies for analyzing execution metrics, identifying bottlenecks, and optimizing kernel performance in parallel computing environments.
  • Scratchpad Memories - Provides a user-managed, low-latency cache within each multiprocessor to facilitate high-speed data exchange between threads.
  • Parallel Execution Debugging - Identifies logical errors and performance issues in concurrent code by inspecting execution flow and memory state.
  • GPU Acceleration Libraries - Offloads computationally intensive operations from the main processor to specialized hardware to achieve faster execution speeds.
  • GPU Scaling - Distributes large-scale parallel tasks across multiple hardware accelerators to increase total processing capacity.
  • Asynchronous Stream Processing Frameworks - Overlaps data transfers and kernel execution using non-blocking queues to maximize hardware utilization.
  • GPU Parallelism Strategies - Offers educational materials focused on managing device memory and optimizing kernel execution for accelerated hardware.
  • Thread Block Hierarchies - Organizes parallel threads into structured grids and blocks to map computational tasks efficiently onto physical hardware.
  • High-Performance Computing - Serves as a technical reference for scaling data-heavy workloads across multiple processing cores to maximize throughput.
  • Accelerator Scaling - Distributes large-scale parallel tasks across multiple hardware accelerators to increase total processing capacity and reduce completion times.
  • Parallel Task Execution - Enables data-parallel operations on graphics hardware to accelerate computationally intensive workloads by distributing tasks across multiple cores.
  • System Performance Optimization - Analyzes execution metrics and identifies bottlenecks in concurrent code to maximize throughput and efficiency.
  • GPU Kernel Profilers - Analyzes execution metrics and identifies bottlenecks in accelerated code to improve application efficiency and throughput.

Star history

Star history chart for packtpublishing/learn-cuda-programmingStar history chart for packtpublishing/learn-cuda-programming

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Curated searches featuring Learn CUDA Programming

Hand-picked collections where Learn CUDA Programming appears.
  • Concurrency and Parallel Programming Resources

Open-source alternatives to Learn CUDA Programming

Similar open-source projects, ranked by how many features they share with Learn CUDA Programming.
  • nvidia/cuda-samplesNVIDIA avatar

    NVIDIA/cuda-samples

    9,319View on GitHub↗

    This repository is a collection of reference implementations and programming examples for the CUDA Toolkit. It serves as a GPGPU implementation guide and a parallel computing reference, providing code for using graphics hardware to perform general-purpose calculations and high-performance parallel processing. The project provides specific samples for GPU kernel development and resource management. These include demonstrations of multi-GPU communication, peer-to-peer memory access, and system hardware inspection to coordinate distributed GPU resources. The codebase covers a wide range of capa

    C++cudacuda-driver-apicuda-kernels
    View on GitHub↗9,319
  • juliagpu/cuda.jlJuliaGPU avatar

    JuliaGPU/CUDA.jl

    1,409View on GitHub↗

    CUDA.jl provides a programming interface for executing custom kernels and performing parallel array computing directly on NVIDIA graphics hardware using the Julia language. It serves as a framework for compiling and scheduling user-defined functions across multiple processing cores, enabling high-performance data processing and task synchronization. The library distinguishes itself through a custom compiler backend that translates high-level language functions into hardware-specific machine code. It manages complex hardware interactions through asynchronous stream scheduling, unified memory m

    Juliacudagpuhacktoberfest
    View on GitHub↗1,409
  • infrasys-ai/aisystemInfrasys-AI avatar

    Infrasys-AI/AISystem

    17,017View on GitHub↗

    AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo

    Jupyter Notebookaiaiinfraaisys
    View on GitHub↗17,017
  • srush/gpu-puzzlessrush avatar

    srush/GPU-Puzzles

    12,242View on GitHub↗

    GPU-Puzzles is an interactive learning environment and tutorial designed for mastering CUDA GPU kernel development. It serves as an educational tool and lab where users solve coding puzzles to understand how to map high-level logic to low-level GPU hardware instructions. The platform focuses on teaching parallel computing concepts and GPU architecture. Users practice developing parallel algorithms and managing GPU memory through a series of hands-on challenges. The environment utilizes a bridge between Python and CUDA to execute kernels and provide real-time feedback by validating outputs ag

    Jupyter Notebookcudamachine-learningpuzzles
    View on GitHub↗12,242
See all 30 alternatives to Learn CUDA Programming→

Frequently asked questions

What does packtpublishing/learn-cuda-programming do?

This project serves as a comprehensive educational resource for learning parallel programming and high-performance computing using graphics processing units. It provides technical guidance on the fundamental paradigms required to offload computationally intensive tasks from a host system to specialized hardware accelerators.

What are the main features of packtpublishing/learn-cuda-programming?

The main features of packtpublishing/learn-cuda-programming are: High-Performance and Parallel Computing, CUDA Programming Tutorials, GPU Kernel Offloading, Explicit Memory Allocators, SIMT Execution Models, Memory Hierarchy Data Movements, GPU-Accelerated Computation, Performance Optimization Patterns.

What are some open-source alternatives to packtpublishing/learn-cuda-programming?

Open-source alternatives to packtpublishing/learn-cuda-programming include: nvidia/cuda-samples — This repository is a collection of reference implementations and programming examples for the CUDA Toolkit. It serves… juliagpu/cuda.jl — CUDA.jl provides a programming interface for executing custom kernels and performing parallel array computing directly… infrasys-ai/aisystem — AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip… srush/gpu-puzzles — GPU-Puzzles is an interactive learning environment and tutorial designed for mastering CUDA GPU kernel development. It… tensorflow/rust — This project provides Rust bindings for the TensorFlow C API, serving as a tensor computation interface and machine… xtensor-stack/xtensor — xtensor is a C++ multidimensional array library for numerical computing that provides N-dimensional containers with an…