ROCm Systems

repository·develop·Indexed 19 days ago

https://github.com/rocm/rocm-systems

A super-repo consolidating ROCm systems projects to streamline development, CI, and integration, with a focus on PyTorch build requirements. It includes mirage (v0.1.0), a UX for rocjitsu that manages emulation processes, workloads, profiles, and sessions via a CLI and a React-based dashboard. It also features HotSwap, a load-time ISA rewriter that allows workloads compiled for one AMD GPU architecture to run on different physical hardware by rewriting device code during loading.

Tokens
1M
Snippets
2.4K
Records
4K
Agent score
66%

What's inside rocm-systems

  1. Overview of ROCm Compute Profiler

    develop
    The ROCm Compute Profiler is a project providing profiling capabilities for ROCm compute workloads. The primary entry point for the tool is the rocprof-compute executable, which manages the execution flow for various profiling modes. Specific utilities and logic for different execution modes are organized into subdirectories within the project structure.
  2. Overview of the External Correlation ID Request Sample

    develop
    This sample demonstrates how to use the ROCprofiler SDK to request and manage external correlation IDs for kernel dispatches and asynchronous memory operations. It shows how to map kernel IDs to names via code object callback tracing and ensures that correlation IDs are correctly passed back to the profiling tool via buffer callbacks and retired when appropriate.
  3. Overview of Mirage Dashboard capabilities

    develop

    The Mirage Dashboard serves as the visual control plane for mirage. It is designed to provide a desktop-class experience for managing emulator profiles, sessions, and executions.

    Key capabilities include:

    • System Monitoring: View daemon health, storage paths, and installed emulator backends.
    • Profile Management: Browse, create, duplicate, and edit emulator profiles.
    • Session Management: Launch sessions from profiles and monitor their lifecycle (e.g., pendingstartingready).
    • Live Execution: Attach to sessions via WebSockets to run shell commands and view streamed output in an xterm.js terminal.
    • Keyboard Navigation: Use shortcuts like g o (Overview), g p (Profiles), and g s (Sessions) for rapid navigation.
  4. Overview of perfxpert Architecture

    develop

    perfxpert is a multi-agent system designed for GPU performance analysis on AMD ROCm. It utilizes a hierarchical agent structure to classify bottlenecks, gather metrics, and provide recommendations. The system is accessible through four primary entry points which all share the same underlying session/runtime layer in perfxpert.agents.runtime:

    1. Batch CLI: perfxpert analyze for automated analysis.
    2. Interactive Launcher: perfxpert-code for interactive sessions.
    3. MCP Server: perfxpert-mcp (Model Context Protocol) for stdio-based tool access.
    4. Python API: perfxpert.api.* for in-process programmatic usage.
  5. Overview of rocJPEG hardware acceleration

    develop

    rocJPEG provides a hardware-accelerated API for decoding compressed JPEG streams using the media engines (VCNs) found in AMD GPUs.

    Key benefits include:

    • Hardware-based decoding: Uses dedicated JPEG engines within the VCN to reduce CPU load and power consumption compared to software decoders.
    • Zero-copy workflows: Decoded YUV images remain in video memory. This allows for direct post-processing (scaling, color space conversion, augmentation) using ROCm HIP without the overhead of transferring data across the PCIe bus.
    • Parallel decoding: The API supports creating multiple decoder instances corresponding to the available VCNs/JPEG engines on a device, enabling seamless parallel decoding of JPEG stream batches.
  6. What is ROCm Compute Profiler?

    develop

    ROCm Compute Profiler is a kernel-level profiling tool designed for machine learning and high-performance computing (HPC) workloads. It is specifically optimized for AMD Instinct™ GPUs, primarily targeting the MI300, MI200, and MI100 series. It is built upon the ROCprofiler-SDK to monitor hardware performance counters.

    Key Capabilities:

    • Hardware Monitoring: Uses ROCprofiler-SDK to acquire raw performance counters.
    • Data Collection: Acquires counters via application replay and stores them in a comma-separated-values (CSV) format.
    • Performance Analysis: Provides system Speed-of-Light (SOL) and hardware block-level SOL evaluations, memory chart analysis, and roofline analysis (note: roofline model is only available on accelerators MI200 and newer).
    • GUI Analysis: Includes an experimental standalone GUI for basic performance analysis.
  7. Overview of ROCprofiler-SDK capabilities

    develop

    ROCprofiler-SDK is a low-level performance analysis interface for profiling and tracing GPU compute applications. It provides support for:

    GPU Metrics

    • GPU hardware counters
    • Dispatch Counter Collection
    • Device Counter Collection
    • PC Sampling (Host Trap)
    • Thread trace and ROCprof trace decoder (SQTT, ATT)

    API Trace Support

    • HIP, HSA, and RCCL API tracing
    • Marker (ROCTx) tracing
    • Memory operations: copy, allocation, Page Migration Event, Scratch Memory
    • Library tracing: rocDecode, rocJPEG, and rocSHMEM

    Parallelism API Support

    • HIP, HSA, and MPI
    • Kokkos-Tools (KokkosP)
    • OpenMP-Tools (OMPT)
  8. What is rocjitsu?

    develop

    rocjitsu is an emulation toolkit designed for running AMD GPU applications on either simulated or real hardware. It provides three primary execution strategies:

    1. Simulation: Full ISA emulation on simulated GPU hardware using LD_PRELOAD interposition. This mode does not require a physical GPU or a kernel module.
    2. Dynamic Binary Translation (DBT): Enables cross-ISA translation, allowing applications compiled for one GPU architecture to run on a different one.
    3. Dynamic Binary Instrumentation (DBI): Provides runtime instrumentation of GPU kernels for the purposes of profiling, tracing, and analysis.
  9. Overview of ROCm Communication Collectives Library (RCCL)

    develop
    RCCL is a stand-alone library providing multi-GPU and multi-node collective communication primitives optimized for AMD GPUs. It leverages high-speed interconnects such as PCIe and xGMI to facilitate efficient communication between devices. The library is part of the rocm-systems repository.