Get in Touch

Course Outline

Introduction

  • Definition and scope of ROCm
  • Overview of the HIP programming model
  • Comparative analysis: ROCm versus CUDA and OpenCL
  • Architectural features and capabilities of ROCm and HIP
  • Operational differences: ROCm on Windows compared to ROCm on Linux

Installation

  • Procedure for installing ROCm on the Windows operating system
  • Verification of installation integrity and assessment of device compatibility
  • Protocols for updating or removing ROCm from Windows environments
  • Resolution of frequent installation anomalies

Getting Started

  • Initiating a new ROCm project utilizing Visual Studio Code on Windows
  • Examination of project directory structure and constituent files
  • Compilation and execution of the application
  • Generation of output logs using printf and fprintf functions

ROCm API

  • Integration of the ROCm API within host-side applications
  • Interrogation of device specifications and computational capabilities
  • Allocation and release of device memory resources
  • Transfer of data between host and device memory spaces
  • Kernel dispatch and thread synchronization procedures
  • Implementation of error handling and exception management

HIP Language

  • Application of the HIP language within device-side code
  • Development of kernels for GPU execution and data manipulation
  • Utilization of data types, qualifiers, operators, and expressions
  • Employment of built-in functions, variables, and library resources

ROCm and HIP Memory Model

  • Management of distinct memory spaces, including global, shared, constant, and local
  • Utilization of memory objects such as pointers, arrays, textures, and surfaces
  • Configuration of memory access modes, including read-only, write-only, and read-write
  • Application of the memory consistency model and synchronization protocols

ROCm and HIP Execution Model

  • Application of execution structures, including threads, blocks, and grids
  • Use of thread indexing functions, such as hipThreadIdx_x, hipBlockIdx_x, and hipBlockDim_x
  • Implementation of block-level functions, such as __syncthreads and __threadfence_block
  • Utilization of grid-level functions, such as hipGridDim_x, hipGridSync, and cooperative groups

Debugging

  • Diagnostic procedures for ROCm and HIP applications on Windows
  • Utilization of the Visual Studio Code debugger for variable inspection, breakpoint management, and call stack analysis
  • Application of the ROCm Debugger for diagnostic analysis on AMD devices
  • Utilization of the ROCm Profiler for performance analysis on AMD devices

Optimization

  • Performance enhancement strategies for ROCm and HIP applications on Windows
  • Application of memory coalescing techniques to maximize throughput
  • Implementation of caching and prefetching strategies to mitigate latency
  • Optimization of memory access patterns and bandwidth utilization via shared and local memory
  • Application of profiling tools to measure execution efficiency and resource consumption

Summary and Next Steps

Requirements

  • Proficiency in C/C++ programming and foundational parallel programming concepts
  • Familiarity with computer architecture and memory hierarchy structures
  • Competence with command-line utilities and code editors
  • Knowledge of the Windows operating system and PowerShell

Target Audience

  • Developers seeking to master the installation and utilization of ROCm on Windows for programming AMD GPUs and exploiting parallelism
  • Developers aiming to write high-performance, scalable code compatible with various AMD devices
  • Programmers interested in exploring low-level GPU programming aspects and optimizing code performance
 21 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories