Get in Touch

Course Outline

GPU Computing Infrastructure and CUDA Framework

  • Comparative analysis of Central Processing Unit (CPU) and Graphics Processing Unit (GPU) architectures
  • NVIDIA streaming multiprocessor architecture specifications
  • Overview of the CUDA programming framework
  • Heterogeneous computing models and host-device execution paradigms

Configuration of the CUDA Development Environment for government

  • Installation procedures for the CUDA Toolkit 13.x release
  • The NVCC compiler configuration and build process management
  • System validation through device query utilities
  • Integration with Integrated Development Environments (IDEs) and auxiliary development tools

Development and Execution of CUDA Kernels

  • Syntax standards and qualifier requirements for kernel functions
  • Launch configuration parameters and execution protocols
  • Implementation of vector addition and fundamental data-parallel patterns
  • Application of CUDA error-checking macros for operational stability

CUDA Thread Hierarchy and Execution Logic

  • Organizational structure of grids, blocks, and threads
  • Thread indexing mechanisms and global identifier calculation
  • Warp execution dynamics and the Single Instruction, Multiple Threads (SIMT) model
  • Occupancy metrics and resource utilization optimization

GPU Memory Architecture and Allocation Strategies for government operations

  • Memory hierarchy classifications: global, shared, constant, and register memory
  • Procedures for allocating and releasing device memory resources
  • Data transfer protocols between host and device memory spaces
  • Utilization of shared memory for intra-block data collaboration

Unified Memory Framework and Data Migration

  • Unified memory architecture and managed allocation capabilities
  • Mechanisms for page migration and on-demand paging services
  • Asynchronous memory prefetching via the cudaMemPrefetchAsync API
  • Application of memory advice hints to optimize access patterns

System-Wide Performance Profiling with Nsight Systems

  • Timeline analysis within the Nsight Systems framework
  • Identification of synchronization points between CPU and GPU processes
  • Visualization techniques for kernel execution sequences and data transfers
  • Interpretation of system-level performance telemetry

Kernel Optimization via Nsight Compute Analysis

  • Interactive kernel profiling within the Nsight Compute environment
  • Analysis of memory throughput and bandwidth efficiency
  • Evaluation of compute utilization and warp state statistics
  • Application of guided analysis methodologies and optimization guidelines

Concurrent Streams and Asynchronous Operation Management

  • CUDA stream management and the default stream behavior
  • Techniques for overlapping kernel execution with data transfer operations
  • Stream synchronization protocols and the use of CUDA events
  • Design patterns for multi-stream pipeline architectures

Error Handling and Debugging Protocols

  • Interpretation of CUDA API error codes and associated recovery strategies
  • Utilization of compute-sanitizer for memory access violation detection
  • Kerel debugging procedures using cuda-gdb
  • Implementation of assertions and mechanisms for synchronous error detection

Profile-Driven Optimization Methodology

  • Iterative profiling processes for continuous improvement
  • Identification and prioritization of performance bottlenecks
  • Conducting performance regression testing to ensure stability
  • Documentation standards for optimization decisions and outcomes

Implementation of End-to-End Accelerated Applications for government use

  • Design principles for comprehensive GPU-accelerated solutions
  • Incorporation of profiling activities throughout the development lifecycle
  • Execution of performance benchmarking and reporting standards
  • Considerations for secure deployment in production environments

Requirements

  • Demonstrated proficiency in foundational C/C++ programming, encompassing variable declaration, control structures, function definitions, and array handling.
  • Practical knowledge of executing compilation and runtime processes via the command-line interface.
  • This curriculum is designed to be accessible to individuals without prior exposure to GPU architecture or CUDA programming frameworks.

Target Audience

  • Software engineers and developers aiming to optimize C/C++ application performance through GPU acceleration.
  • Scientific researchers and High-Performance Computing (HPC) professionals transitioning from traditional CPU-based environments to heterogeneous computing systems.
  • Technical leadership personnel assessing the feasibility of implementing GPU acceleration for mission-critical production workflows.
 8 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories