Files
TheRock/rocm-systems/projects/rocprofiler-compute/docs/conf.py
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

215 lines
9.4 KiB
Python

# Copyright (c) Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
import re
import yaml
with open("../VERSION", encoding="utf-8") as f:
match = re.search(r"([0-9.]+)[^0-9.]+", f.read())
if not match:
raise ValueError("VERSION not found!")
version_number = match[1]
# project info
project = "ROCm Compute Profiler"
author = "Advanced Micro Devices, Inc."
copyright = "Copyright (c) 2025 Advanced Micro Devices, Inc. All rights reserved."
version = version_number
release = version_number
extensions = [
"rocm_docs",
"sphinx.ext.extlinks",
"sphinxcontrib.datatemplates",
"sphinx_jinja",
]
html_theme = "rocm_docs_theme"
html_theme_options = {"flavor": "rocm"}
html_title = f"{project} {version_number} documentation"
exclude_patterns = ["archive", "*/includes"]
html_static_path = ["sphinx/static/css"]
html_css_files = ["o_custom.css"]
# Load per-arch CDNA metrics YAMLs
arch_metrics = {}
for arch in ["gfx908", "gfx90a", "gfx942", "gfx950"]:
with open(f"data/metrics/{arch}_metrics.yaml") as f:
arch_metrics[arch] = yaml.safe_load(f)
# CDNA section name mapping: jinja context id -> YAML section name
cdna_section_map = {
"wavefront-launch-stats": "Wavefront launch stats",
"wavefront-runtime-stats": "Wavefront runtime stats",
"instruction-mix": "Overall instruction mix",
"valu-arith-instruction-mix": "VALU arithmetic instruction mix",
"matrix-instruction-mix": "Matrix instruction mix",
"compute-speed-of-light": "Compute Speed-of-Light",
"pipeline-stats": "Pipeline statistics",
"arithmetic-operations": "Arithmetic operations",
"lds-sol": "LDS Speed-of-Light",
"lds-stats": "LDS Statistics",
"vl1d-sol": "vL1D Speed-of-Light",
"ta-busy-stall": "Busy / stall metrics",
"ta-instruction-counts": "Instruction counts",
"ta-spill-stack": "Spill / stack metrics",
"desc-utcl1": "L1 Unified Translation Cache (UTCL1)",
"vl1d-cache-stall-metrics": "vL1D cache stall metrics",
"vl1d-cache-access-metrics": "vL1D cache access metrics",
"desc-td": "Vector L1 data-return path or Texture Data (TD)",
"l2-sol": "L2 Speed-of-Light",
"l2-cache-accesses": "L2 cache accesses",
"l2-fabric-metrics": "L2-Fabric interface metrics",
"l2-detailed-metrics": "L2 - Fabric interface detailed metrics",
"l2-fabric-stalls": "L2 - Fabric Interface stalls",
"desc-sl1d-sol": "Scalar L1D Speed-of-Light",
"desc-sl1d-stats": "Scalar L1D cache accesses",
"desc-sl1d-l2-interface": "Scalar L1D Cache - L2 Interface",
"desc-l1i-sol": "L1I Speed-of-Light",
"desc-l1i-stats": "L1I cache accesses",
"desc-l1i-l2-interface": "L1I <-> L2 interface",
"spi-util": "Workgroup manager utilizations",
"spi-resc-util": "Workgroup Manager - Resource Allocation",
"cpf-metrics": "Command processor fetcher (CPF)",
"cpc-metrics": "Command processor packet processor (CPC)",
"sys-sol": "System Speed-of-Light",
}
# Generate per-arch CDNA jinja contexts
jinja_contexts = {}
for context_name, section_name in cdna_section_map.items():
for arch in ["gfx908", "gfx90a", "gfx942", "gfx950"]:
if section_name in arch_metrics[arch]:
jinja_contexts[f"{context_name}-{arch}"] = {
"data": arch_metrics[arch][section_name],
}
# Load gfx115x (RDNA 3.5) metrics YAML
with open("data/metrics/gfx115x_metrics.yaml") as f:
gfx115x_metrics = yaml.safe_load(f)
# RDNA gfx115x section mapping: jinja context id -> YAML section name
rdna_gfx115x_section_map = {
"sys-sol-gfx115x": "System Speed-of-Light",
"rdna115x-roofline-performance-rates-gfx115x": "Roofline Performance Rates",
"rdna115x-roofline-plot-points-gfx115x": "Roofline Plot Points",
"rdna115x-wgp-utilization-gfx115x": "WGP Utilization",
"rdna115x-wavefront-launch-stats-gfx115x": "Wavefront Launch Stats",
"rdna115x-wave-dispatch-gfx115x": "Wave Dispatch",
"rdna115x-wave-life-gfx115x": "Wave Life",
"rdna115x-wave-instruction-mix-gfx115x": "Wave Instruction Mix",
"rdna115x-vmem-instruction-mix-gfx115x": "VMEM Instruction Mix",
"rdna115x-lds-instruction-mix-gfx115x": "LDS Instruction Mix",
"rdna115x-wait-state-analysis-gfx115x": "Wait State Analysis",
"rdna115x-wgp-instruction-cache-gfx115x": "WGP Instruction Cache",
"rdna115x-wgp-scalar-data-cache-gfx115x": "WGP Scalar Data Cache",
"rdna115x-gpu-utilization-gfx115x": "GPU Utilization",
"rdna115x-shader-engine-utilization-gfx115x": "Shader Engine Utilization",
"rdna115x-spi-utilization-gfx115x": "SPI Utilization",
"rdna115x-wave-dispatch-statistics-gfx115x": "Wave Dispatch Statistics",
"rdna115x-cpc-utilization-gfx115x": "CPC Utilization",
"rdna115x-cpc-interface-utilization-gfx115x": "CPC Interface Utilization",
"rdna115x-mec-stall-cycles-gfx115x": "MEC Stall Cycles",
"rdna115x-cpc-memory-requests-gfx115x": "CPC Memory Requests",
"rdna115x-mec-instruction-cache-gfx115x": "MEC Instruction Cache",
"rdna115x-gl0-utilization-gfx115x": "GL0 Utilization",
"rdna115x-gl0-request-statistics-gfx115x": "GL0 Request Statistics",
"rdna115x-gl0-cache-performance-gfx115x": "GL0 Cache Performance",
"rdna115x-gl0-gl1-interface-gfx115x": "GL0-GL1 Interface",
"rdna115x-gl0-stalls-gfx115x": "GL0 Stalls",
"rdna115x-gl1-cache-utilization-gfx115x": "GL1 Cache Utilization",
"rdna115x-gl1-cache-request-statistics-gfx115x": "GL1 Cache Request Statistics",
"rdna115x-gl1-cache-performance-gfx115x": "GL1 Cache Performance",
"rdna115x-gl1-cache-stalls-gfx115x": "GL1 Cache Stalls",
"rdna115x-gl1-gl2-interface-gfx115x": "GL1-GL2 Interface",
"rdna115x-gl2-cache-performance-gfx115x": "GL2 Cache Performance",
"rdna115x-gl2-cache-request-statistics-gfx115x": "GL2 Cache Request Statistics",
"rdna115x-gl2-cache-bandwidth-gfx115x": "GL2 Cache Bandwidth",
"rdna115x-dram-read-interface-gfx115x": "DRAM Read Interface",
"rdna115x-dram-write-interface-gfx115x": "DRAM Write Interface",
"rdna115x-system-arbiter-sarb-gfx115x": "System Arbiter (SARB)",
"rdna115x-return-interface-gfx115x": "Return Interface",
"rdna115x-memory-chart-instruction-cache-gfx115x": (
"Memory chart - Instruction Cache"
),
"rdna115x-memory-chart-scalar-data-cache-gfx115x": (
"Memory chart - Scalar Data Cache"
),
"rdna115x-memory-chart-tcp-cache-gfx115x": ("Memory chart - TCP Cache"),
"rdna115x-memory-chart-lds-local-data-share-gfx115x": (
"Memory chart - LDS (Local Data Share)"
),
"rdna115x-memory-chart-tcp-gl1-interface-gfx115x": (
"Memory chart - TCP-GL1 Interface"
),
"rdna115x-memory-chart-gl1-cache-gfx115x": ("Memory chart - GL1 Cache"),
"rdna115x-memory-chart-gl1-gl2-interface-gfx115x": (
"Memory chart - GL1-GL2 Interface"
),
"rdna115x-memory-chart-gl2-cache-gfx115x": ("Memory chart - GL2 Cache"),
"rdna115x-memory-chart-gcea-to-system-memory-gfx115x": (
"Memory chart - GCEA to System Memory"
),
}
# Generate gfx115x jinja contexts
for context_name, section_name in rdna_gfx115x_section_map.items():
jinja_contexts[context_name] = {
"data": gfx115x_metrics.get(section_name, {}),
}
external_toc_path = "./sphinx/_toc.yml"
external_projects_current_project = "rocprofiler-compute"
# frequently used external resources
extlinks = {
"dev-sample": (
"https://github.com/ROCm/rocm-systems/tree/develop/projects/rocprofiler-compute/sample/%s",
"%s",
),
"prod-page": (
"https://www.amd.com/en/products/accelerators/instinct/%s.html",
"%s",
),
"llvm-docs": ("https://llvm.org/docs/AMDGPUUsage.html#%s", "%s"),
"amd-lab-note": ("https://gpuopen.com/learn/amd-lab-notes/%s", "%s"),
"cdna2-white-paper": (
"https://www.amd.com/system/files/documents/amd-cdna2-white-paper.pdf#page=%s",
"CDNA2 white paper (page %s)",
),
"gcn-crash-course": (
"https://www.slideshare.net/DevCentralAMD/gs4106-the-amd-gcn-architecture-a-crash-course-by-layla-mah#%s",
"The AMD GCN Architecture - A Crash Course (slide %s)",
),
"hip-training-pdf": (
"https://www.olcf.ornl.gov/wp-content/uploads/2019/09/AMD_GPU_HIP_training_20190906.pdf#page=%s",
"Introduction to AMD GPU Programming with HIP (slide %s)",
),
"mantor-gcn-pdf": (
"https://old.hotchips.org/wp-content/uploads/hc_archives/hc24/HC24-3-ManyCore/HC24.28.315-AMD.GCN.mantor_v1.pdf#page=%s",
"AMD Radeon HD7970 with GCN Architecture (slide %s)",
),
"mantor-vega10-pdf": (
"https://old.hotchips.org/wp-content/uploads/hc_archives/hc29/HC29.21-Monday-Pub/HC29.21.10-GPU-Gaming-Pub/HC29.21.120-Radeon-Vega10-Mantor-AMD-f1.pdf#page=%s",
"AMD Radeon Next Generation GPU Architecture - Vega10 (slide %s)",
),
"mi200-isa-pdf": (
"https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf#page=%s",
"AMD Instinct MI200 ISA Reference Guide (page %s)",
),
"hsa-runtime-pdf": (
"http://hsafoundation.com/wp-content/uploads/2021/02/HSA-Runtime-1.2.pdf#page=%s",
"HSA Runtime Programmer's Reference Manual (page %s)",
),
}
# Uncomment if facing rate limit exceed issue with local build
external_projects_remote_repository = ""