Files
TheRock/BUILD_TOPOLOGY.toml
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

845 lines
28 KiB
TOML

# ==============================================================================
# BUILD_TOPOLOGY.toml - Build Topology Metadata for TheRock
# ==============================================================================
#
# This file is the single source of truth for TheRock's build artifact structure.
# It serves three primary purposes:
#
# 1. CMake Feature Generation: At configure time, topology_to_cmake.py reads
# this file and generates therock_add_feature() calls for each artifact,
# creating the THEROCK_ENABLE_* cache variables that control the build.
#
# 2. CI/CD Pipeline Sharding: The build_topology.py module parses this file
# to compute artifact dependencies for sharded builds, determining which
# artifacts need to be fetched from artifact storage before each stage.
#
# 3. Partial Source Checkouts: Source sets define which git submodules are
# needed for each artifact group, enabling CI jobs to clone only the
# submodules required for their build stage (via fetch_sources.py --stage).
#
# HIERARCHY:
# - Source Sets - Groupings of git submodules for partial checkouts
# - Build Stages - CI/CD pipeline jobs that build sets of artifact groups
# - Artifact Groups - Logical groupings of related artifacts with shared deps
# - Artifacts - Individual build outputs (the fundamental packaging unit)
#
# NAMING CONVENTIONS:
# - Entity names (stages, groups, artifacts): lowercase with hyphens (e.g., "core-runtime")
# - feature_name: UPPERCASE with underscores (e.g., "CORE_RUNTIME") - maps to THEROCK_ENABLE_*
# - feature_group: UPPERCASE with underscores (e.g., "CORE") - maps to group options
# - type values: lowercase (e.g., "generic", "per-arch", "target-neutral", "target-specific")
# - platform values: lowercase (e.g., "windows", "linux")
#
# SCHEMA REFERENCE:
#
# [source_sets.<name>]
# description = "Human-readable description"
# submodules = ["submodule1", "submodule2"] # Git submodule directory names
# external_git_sources = [
# { name = "name", origin = "https://...", commit = "hash", path = "optional-sources/name" },
# ] # Optional, externally fetched git repos
# disable_platforms = ["windows"] # Optional: platforms where disabled
#
# [build_stages.<name>]
# description = "Human-readable description"
# artifact_groups = ["group1", "group2"] # Groups built in this stage
# type = "generic" | "per-arch" # Optional, default "generic"
#
# [artifact_groups.<name>]
# description = "Human-readable description"
# type = "generic" | "per-arch" # "per-arch" = built per GPU architecture
# artifact_group_deps = ["dep1", "dep2"] # Optional, other groups this depends on
# source_sets = ["set1", "set2"] # Optional, source sets needed for this group
#
# [artifacts.<name>]
# artifact_group = "group-name" # Required: which group this belongs to
# type = "target-neutral" | "target-specific"
# target-neutral: Built once with all architecture targets. Use for host-only
# code, headers, or runtime libraries where a single multi-arch build
# is preferred.
# target-specific: Built separately per architecture family and kept separate
# for distribution. Use for kernel libraries where sharded builds
# improve CI parallelism and enable per-arch downloads.
# artifact_deps = ["dep1", "dep2"] # Optional: other artifacts this depends on
# feature_name = "FEATURE_NAME" # Optional: override auto-generated name
# feature_group = "GROUP_NAME" # Optional: override auto-generated group
# platform = "windows" # Optional: platform-specific artifact
# disable_platforms = ["windows"] # Optional: platforms where disabled
# disable_platforms_if_flags_not_set = { windows = "FOO" } # Optional: conditional platform disables
# python_requires = ["-r path/to/req.txt", "pkg"] # Optional: pip install args
# split_databases = ["rocblas", "hipblaslt"] # Optional: database handlers for kpack split
#
# ==============================================================================
[metadata]
version = "2.0"
description = "TheRock artifact-based build topology"
# ==============================================================================
# SOURCE SETS - Submodule groupings for partial checkouts
# ==============================================================================
# Each source_set defines submodules needed for a category of builds.
# Currently just lists submodules; can be extended later with sparse_checkout specs.
# Names are chosen to align with fetch_sources.py flags where possible.
[source_sets.base]
description = "Base infrastructure submodules"
submodules = ["half", "rocm-cmake"]
[source_sets.compilers]
description = "Compiler toolchain submodules"
submodules = ["llvm-project", "HIPIFY", "spirv-llvm-translator"]
[source_sets.debug-tools]
description = "ROCm debug tools submodules"
submodules = ["rocgdb"]
[source_sets.rocm-systems]
description = "ROCm systems monorepo (runtime, profiler, etc.)"
submodules = ["rocm-systems"]
[source_sets.optional-hrx]
description = "Optional HRX source checkout"
external_git_sources = [
{ name = "hrx", origin = "https://github.com/ROCm/hrx.git", commit = "56e60cfdc8df89edd43f5ae507cd3fd7f5aafd03", path = "optional-sources/hrx" },
]
[source_sets.rocm-libraries]
description = "ROCm libraries monorepo (math libs)"
submodules = ["rocm-libraries"]
[source_sets.math-libs]
description = "Additional math library submodules"
submodules = ["libhipcxx"]
disable_platforms = ["linux", "windows"]
[source_sets.ml-frameworks]
description = "ML framework submodules"
submodules = []
[source_sets.comm-libs]
description = "Communication library submodules"
submodules = []
[source_sets.storage-libs]
description = "Storage library submodules"
submodules = []
[source_sets.amd-mesa]
description = "ROCm media submodules (Mesa for VA-API)"
submodules = ["amd-mesa"]
disable_platforms = ["windows"]
[source_sets.media-libs]
description = "ROCm media libraries submodules"
submodules = []
disable_platforms = ["windows"]
# ==============================================================================
# BUILD STAGES - Pipeline jobs that build sets of artifact groups
# ==============================================================================
# These represent actual CI/CD pipeline jobs optimized for parallel execution
# Note: Stage names are identifiers, not sequence indicators - many can run in parallel
[build_stages.compiler-runtime]
description = "Compiler, runtimes, and core profiling"
artifact_groups = [
"third-party-sysdeps",
"base",
"compiler",
"core-amdsmi",
"core-runtime",
"third-party-libs",
"hip-runtime",
"opencl-runtime",
"profiler-core",
"rocjitsu"
]
[build_stages.wsl-rocdxg]
description = "WSL-only ROCDXG bridge library"
artifact_groups = ["wsl-rocdxg"]
[build_stages.runtime-tests]
description = "Runtime tests (parallel to math-libs, not on critical path)"
artifact_groups = ["runtime-tests"]
[build_stages.math-libs]
description = "Math and ML libraries per architecture"
artifact_groups = ["math-libs", "ml-libs"]
type = "per-arch"
[build_stages.comm-libs]
description = "Communication libraries (generic, single job parallel to math-libs)"
artifact_groups = ["comm-libs"]
type = "generic"
[build_stages.storage-libs]
description = "Storage libraries (generic, single job parallel to math-libs)"
artifact_groups = ["storage-libs"]
type = "generic"
[build_stages.debug-tools]
description = "ROCm debug tools"
artifact_groups = ["debug-tools"]
[build_stages.dctools-core]
description = "Data center tools with minimal dependencies"
artifact_groups = ["dctools-core"]
# Future stages
# [build_stages.dctools-rocm]
# description = "Data center tools that depend on ROCm libraries"
# artifact_groups = ["dctools-rocm"]
# depends_on = ["math-libs"] # Will need math/ML libraries
[build_stages.profiler-apps]
description = "Profiler applications (depends on profiler-core)"
artifact_groups = ["profiler-apps"]
[build_stages.media-libs]
description = "Media Libraries"
artifact_groups = ["media-libs"]
# ==============================================================================
# ARTIFACT GROUPS - Logical groupings of related artifacts
# ==============================================================================
# These define build dependencies and source requirements
[artifact_groups.third-party-sysdeps]
description = "Third-party system libraries bundled for portable distribution"
type = "generic"
[artifact_groups.third-party-libs]
description = "Third-party libraries (typically internal dependencies, not distributed as sysdeps are)"
type = "generic"
artifact_group_deps = ["compiler"]
source_sets = [] # No submodules - uses vendored/in-tree deps
[artifact_groups.base]
description = "Base ROCm infrastructure and CMake tools"
type = "generic"
artifact_group_deps = []
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["base", "rocm-systems"]
[artifact_groups.core-runtime]
description = "Core runtime (ROCR-Runtime, rocminfo)"
type = "generic"
artifact_group_deps = ["base", "third-party-sysdeps"]
source_sets = ["rocm-systems"]
[artifact_groups.wsl-rocdxg]
description = "WSL-only ROCDXG bridge library"
type = "generic"
artifact_group_deps = ["base"]
source_sets = ["rocm-systems"]
[artifact_groups.core-amdsmi]
description = "AMD SMI tool (amdsmi)"
type = "generic"
artifact_group_deps = ["base", "third-party-sysdeps", "compiler"]
source_sets = ["rocm-systems"]
[artifact_groups.compiler]
description = "AMD LLVM toolchain and compiler infrastructure"
type = "generic"
artifact_group_deps = ["third-party-sysdeps"]
source_sets = ["compilers"]
[artifact_groups.debug-tools]
description = "ROCm debug tools"
type = "generic"
artifact_group_deps = ["compiler", "third-party-sysdeps"]
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["debug-tools", "rocm-systems"]
[artifact_groups.hip-runtime]
description = "HIP runtime"
type = "generic"
artifact_group_deps = ["core-runtime", "compiler"]
source_sets = ["rocm-systems"] # clr is in rocm-systems
[artifact_groups.opencl-runtime]
description = "OpenCL runtime"
type = "generic"
artifact_group_deps = ["core-runtime", "compiler"]
source_sets = ["rocm-systems"] # clr is in rocm-systems
[artifact_groups.runtime-tests]
description = "Runtime tests (hip-tests, rocrtst)"
type = "generic"
artifact_group_deps = ["hip-runtime", "opencl-runtime", "core-runtime"]
source_sets = ["rocm-systems"]
[artifact_groups.math-libs]
description = "Math libraries (BLAS, FFT, RAND, etc.)"
type = "per-arch" # Built per GPU architecture
artifact_group_deps = ["hip-runtime", "profiler-core"]
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["rocm-libraries", "rocm-systems", "math-libs"]
[artifact_groups.ml-libs]
description = "Machine learning libraries"
type = "per-arch"
artifact_group_deps = ["math-libs", "profiler-core"]
source_sets = ["rocm-libraries", "ml-frameworks"]
[artifact_groups.comm-libs]
description = "Communication libraries"
type = "generic"
artifact_group_deps = ["hip-runtime"]
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["comm-libs", "rocm-systems"]
[artifact_groups.storage-libs]
description = "Storage libraries"
type = "generic"
artifact_group_deps = ["hip-runtime"]
source_sets = ["storage-libs", "rocm-systems"]
[artifact_groups.profiler-core]
description = "Core profiling libraries and annotation support"
type = "generic"
artifact_group_deps = ["core-runtime"]
source_sets = ["rocm-systems"] # rocprofiler-sdk is in rocm-systems
[artifact_groups.dctools-core]
description = "Data center management tools with minimal dependencies"
type = "generic"
artifact_group_deps = ["core-runtime", "core-amdsmi", "profiler-core"]
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["base", "rocm-systems"] # RDC uses amdsmi from core-amdsmi
# Future artifact groups
# [artifact_groups.dctools-rocm]
# description = "Data center tools that depend on ROCm libraries"
# type = "generic"
# artifact_group_deps = ["math-libs", "ml-libs", "profiler-core"]
[artifact_groups.profiler-apps]
description = "Profiler applications and analysis tools"
type = "generic"
artifact_group_deps = ["profiler-core", "compiler", "core-amdsmi"]
source_sets = ["rocm-systems"]
[artifact_groups.media-libs]
description = "Media Libraries"
type = "generic"
artifact_group_deps = ["third-party-sysdeps", "base", "core-runtime", "hip-runtime"]
source_sets = ["amd-mesa", "rocm-systems"]
[artifact_groups.rocjitsu]
description = "ROCm emulation, virtualization, and instrumentation tools"
type = "generic"
artifact_group_deps = ["third-party-sysdeps"]
source_sets = ["rocm-systems"]
disable_platforms = ["windows"]
# ==============================================================================
# ARTIFACTS - The actual build outputs that can be transmitted between stages
# ==============================================================================
# Artifacts are the fundamental packaging units
# Each artifact produces components: dbg, dev, doc, lib, run, test
# --- Sysdeps: Bundled system libraries ---
# Libraries built from source with SONAME rewriting and symbol versioning
# for portable distribution. Installed into lib/rocm_sysdeps/.
# See docs/development/dependencies.md.
[artifacts.sysdeps]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = [] # No dependencies on other artifacts
feature_group = "CORE" # Part of core, enabled by default
[artifacts.sysdeps-amd-mesa]
artifact_group = "media-libs"
type = "target-neutral"
artifact_deps = ["sysdeps"]
feature_group = "MEDIA_LIBS" # Controlled by THEROCK_ENABLE_MEDIA_LIBS
disable_platforms = ["windows"]
[artifacts.sysdeps-expat]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-gmp]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-mpfr]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = ["sysdeps-gmp"] # mpfr depends on gmp
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-ncurses]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-libmnl]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-util-linux]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-libnl]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-libpciaccess]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.sysdeps-hwloc]
artifact_group = "third-party-sysdeps"
type = "target-neutral"
artifact_deps = ["sysdeps", "sysdeps-libpciaccess"] # hwloc depends on numactl (in core sysdeps) and libpciaccess
feature_group = "CORE"
disable_platforms = ["windows"]
# --- Third-party libraries ---
# Unlike third-party-sysdeps, these libraries are not given special treatment for portable distribution.
[artifacts.host-blas]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "HOST_MATH" # Controlled by THEROCK_ENABLE_HOST_MATH (OFF by default)
[artifacts.host-suite-sparse]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = ["host-blas"] # SuiteSparse depends on BLAS
feature_name = "HOST_SUITE_SPARSE"
feature_group = "HOST_MATH" # Controlled by THEROCK_ENABLE_HOST_MATH (OFF by default)
disable_platforms = ["windows"]
[artifacts.elfio]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.fftw3]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "HOST_MATH" # Controlled by THEROCK_ENABLE_HOST_MATH (OFF by default)
[artifacts.flatbuffers]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
[artifacts.fmt]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
[artifacts.nlohmann-json]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
[artifacts.spdlog]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = ["amd-llvm"]
feature_group = "CORE"
[artifacts.openmpi]
artifact_group = "third-party-libs"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE"
# --- Base Infrastructure ---
[artifacts.base]
artifact_group = "base"
type = "target-neutral"
artifact_deps = []
feature_group = "CORE" # Part of core, enabled by default
# --- Compiler Artifacts ---
[artifacts.amd-llvm]
artifact_group = "compiler"
type = "target-neutral"
artifact_deps = ["sysdeps"]
feature_name = "COMPILER"
feature_group = "ALL"
[artifacts.hipify]
artifact_group = "compiler"
type = "target-neutral"
artifact_deps = ["amd-llvm"] # Built on top of amd-llvm
feature_group = "ALL"
# --- Runtime Artifacts ---
[artifacts.core-runtime]
artifact_group = "core-runtime"
type = "target-neutral"
artifact_deps = ["base", "sysdeps", "amd-llvm"]
feature_name = "CORE_RUNTIME"
feature_group = "CORE"
disable_platforms_if_flags_not_set = { windows = "HSA_WINDOWS_SHARED_RUNTIME" }
test_artifacts = ["core-hiptests", "rocrtst"] # When building ROCR, also build hip-tests and rocrtst
[artifacts.wsl-rocdxg]
artifact_group = "wsl-rocdxg"
type = "target-neutral"
artifact_deps = ["core-hip"]
feature_name = "WSL_ROCDXG"
feature_group = "WSL"
[artifacts.core-amdsmi]
artifact_group = "core-amdsmi"
type = "target-neutral"
artifact_deps = ["base", "sysdeps", "sysdeps-libnl", "sysdeps-libmnl", "amd-llvm"]
feature_name = "CORE_AMDSMI"
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.core-kpack]
artifact_group = "hip-runtime"
type = "target-neutral"
artifact_deps = ["sysdeps"]
feature_name = "KPACK"
feature_group = "CORE"
[artifacts.core-hip]
artifact_group = "hip-runtime"
type = "target-neutral"
artifact_deps = ["core-runtime", "amd-llvm", "core-kpack"]
feature_name = "HIP_RUNTIME"
feature_group = "CORE" # Part of core, enabled by default
test_artifacts = ["core-hiptests"] # When building HIP, also build hip-tests
[artifacts.core-ocl-icd]
artifact_group = "opencl-runtime"
type = "target-neutral"
artifact_deps = ["core-runtime", "amd-llvm"]
feature_name = "OCL_ICD"
feature_group = "CORE" # Part of core, enabled by default
[artifacts.core-ocl]
artifact_group = "opencl-runtime"
type = "target-neutral"
artifact_deps = ["core-runtime", "amd-llvm", "core-ocl-icd"]
feature_name = "OCL_RUNTIME"
feature_group = "CORE" # Part of core, enabled by default
[artifacts.rocrtst]
artifact_group = "runtime-tests"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-ocl", "core-amdsmi", "sysdeps-hwloc"]
feature_name = "CORE_RUNTIME_TESTS"
feature_group = "CORE"
disable_platforms = ["windows"]
[artifacts.core-hipinfo]
artifact_group = "hip-runtime"
type = "target-neutral"
platform = "windows"
artifact_deps = ["core-hip"]
feature_group = "CORE" # Part of core, enabled by default
[artifacts.core-hiptests]
artifact_group = "runtime-tests"
type = "target-neutral"
artifact_deps = ["core-hip"]
feature_group = "CORE" # Part of core, enabled by default
# --- Math Libraries (per-arch) ---
[artifacts.blas]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "core-amdsmi", "host-blas", "host-suite-sparse", "rocprofiler-sdk", "spdlog"]
split_databases = ["rocblas", "hipblaslt", "hipsparselt"]
[artifacts.rand]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip"]
[artifacts.fft]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "fftw3", "rand", "rocprofiler-sdk"]
[artifacts.prim]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "rand"]
[artifacts.sparse]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["blas", "prim"]
[artifacts.solver]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["blas", "prim", "sparse", "host-suite-sparse"]
[artifacts.rocalution]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "blas", "prim", "rand", "sparse"]
[artifacts.rocwmma]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "blas"]
[artifacts.composable-kernel]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip"]
[artifacts.hiptensor]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "composable-kernel"]
[artifacts.libhipcxx]
artifact_group = "math-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "amd-llvm"]
disable_platforms = ["linux", "windows"]
[artifacts.hipthreads]
# target-neutral: libhipthreads.a is a static archive of device bitcode that is
# identical across per-arch shards. Built for all targets once.
artifact_group = "math-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "amd-llvm", "libhipcxx"]
disable_platforms = ["linux", "windows"]
[artifacts.support]
artifact_group = "math-libs"
type = "target-neutral"
artifact_deps = []
# --- ML Libraries (per-arch) ---
[artifacts.miopen]
artifact_group = "ml-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "blas", "composable-kernel", "rand", "rocprofiler-sdk"]
split_databases = ["miopen"]
[artifacts.hipdnn]
artifact_group = "ml-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "spdlog"]
[artifacts.hipdnn-integration-tests]
artifact_group = "ml-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "hipdnn"]
[artifacts.miopenprovider]
artifact_group = "ml-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "miopen", "hipdnn", "hipdnn-integration-tests"]
[artifacts.hipblasltprovider]
artifact_group = "ml-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "blas", "hipdnn", "hipdnn-integration-tests"]
[artifacts.hipdnn-samples]
artifact_group = "ml-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "miopen", "hipdnn", "miopenprovider"]
[artifacts.hipkernelprovider]
artifact_group = "ml-libs"
# hip-kernel-provider is a device lib: the rocKE engine ships per-arch AOT content
# (kpack + manifest) under engines/arch_content/rocke/<arch>/, so split it per-arch.
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "hipdnn", "hipdnn-integration-tests"]
split_databases = ["hipkernelprovider"]
# --- Media Integration ---
[artifacts.rocdecode]
artifact_group = "media-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "base", "sysdeps", "sysdeps-amd-mesa"]
feature_group = "MEDIA_LIBS" # Controlled by THEROCK_ENABLE_MEDIA_LIBS
disable_platforms = ["windows"]
[artifacts.rocjpeg]
artifact_group = "media-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "base", "sysdeps", "sysdeps-amd-mesa"]
feature_group = "MEDIA_LIBS" # Controlled by THEROCK_ENABLE_MEDIA_LIBS
disable_platforms = ["windows"]
# --- Communication Libraries (per-arch) ---
[artifacts.rccl]
artifact_group = "comm-libs"
type = "target-specific"
artifact_deps = ["core-runtime", "core-hip", "hipify", "rocprofiler-sdk", "core-amdsmi", "openmpi"]
disable_platforms = ["windows"]
[artifacts.rocshmem]
# target-neutral: rocshmem embeds device code via .hip_fatbin ELF sections
# rather than the __CudaFatBinaryWrapper format (.hipFatBinSegment), so kpack
# injection is not supported. Built for all targets to make upload races harmless.
artifact_group = "comm-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "sysdeps"]
disable_platforms = ["windows"]
# --- Storage Libraries ---
[artifacts.hipfile]
artifact_group = "storage-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "sysdeps", "sysdeps-util-linux"]
disable_platforms = ["windows"]
# --- Profiler Tools ---
[artifacts.aqlprofile]
artifact_group = "profiler-core"
type = "target-neutral"
artifact_deps = ["core-runtime"]
feature_group = "PROFILER"
disable_platforms = ["windows"]
[artifacts.rocprofiler-sdk]
artifact_group = "profiler-core"
type = "target-neutral"
artifact_deps = ["core-runtime", "base", "aqlprofile", "elfio"] # rocprofiler-register is in base
feature_name = "ROCPROFV3"
feature_group = "PROFILER"
disable_platforms = ["windows"]
[artifacts.rocprofiler-compute]
artifact_group = "profiler-core"
type = "target-neutral"
artifact_deps = ["rocprofiler-sdk", "openmpi"]
feature_group = "PROFILER"
disable_platforms = ["windows"]
[artifacts.rocprofiler-systems]
artifact_group = "profiler-apps"
type = "target-neutral"
artifact_deps = ["amd-llvm", "core-hip", "rocprofiler-sdk", "core-amdsmi", "spdlog", "openmpi"]
feature_name = "ROCPROFSYS"
feature_group = "PROFILER"
disable_platforms = ["windows"]
[artifacts.rocprofiler-systems-examples]
artifact_group = "profiler-apps"
type = "target-neutral"
artifact_deps = ["rocprofiler-systems"]
feature_group = "PROFILER"
disable_platforms = ["windows"]
# --- Data Center Tools ---
[artifacts.rdc]
artifact_group = "dctools-core"
type = "target-neutral"
artifact_deps = ["core-hip", "rocprofiler-sdk", "sysdeps", "core-amdsmi"]
feature_group = "DC_TOOLS" # Part of DC tools, enabled by default via THEROCK_ENABLE_ALL
disable_platforms = ["windows"]
# Future dctools-rocm artifacts will go here
# [artifacts.some-future-tool]
# artifact_group = "dctools-rocm"
# type = "target-neutral"
# artifact_deps = ["blas", "miopen", "rocprofiler-sdk"]
# --- ROCm Debug Tools ---
[artifacts.amd-dbgapi]
artifact_group = "debug-tools"
type = "target-neutral"
artifact_deps = ["amd-llvm", "sysdeps"]
feature_group = "DEBUG_TOOLS" # Part of DEBUG_TOOLS, enabled by default via THEROCK_ENABLE_ALL
[artifacts.rocr-debug-agent]
artifact_group = "debug-tools"
type = "target-neutral"
artifact_deps = ["amd-llvm", "core-runtime", "amd-dbgapi", "sysdeps"]
feature_group = "DEBUG_TOOLS" # Part of DEBUG_TOOLS, enabled by default via THEROCK_ENABLE_ALL
disable_platforms = ["windows"]
[artifacts.rocr-debug-agent-tests]
artifact_group = "debug-tools"
type = "target-neutral"
artifact_deps = ["rocr-debug-agent", "core-hip"]
feature_group = "DEBUG_TOOLS" # Part of DEBUG_TOOLS, enabled by default via THEROCK_ENABLE_ALL
disable_platforms = ["windows"]
[artifacts.rocgdb]
artifact_group = "debug-tools"
type = "target-neutral"
artifact_deps = ["amd-llvm", "amd-dbgapi", "sysdeps-gmp", "sysdeps-mpfr", "sysdeps-expat", "sysdeps-ncurses"]
feature_group = "DEBUG_TOOLS" # Part of DEBUG_TOOLS, enabled by default via THEROCK_ENABLE_ALL
disable_platforms = ["windows"]
# --- ROCm Emulation Tools ---
[artifacts.rocjitsu]
artifact_group = "rocjitsu"
type = "target-neutral"
artifact_deps = []
feature_group = "EMULATION"
disable_platforms = ["windows"]
[artifacts.rocjitsu-hotswap]
artifact_group = "rocjitsu"
type = "target-neutral"
artifact_deps = ["rocjitsu"]
feature_group = "EMULATION"
disable_platforms = ["windows"]
[artifacts.mirage]
artifact_group = "rocjitsu"
type = "target-neutral"
artifact_deps = []
feature_group = "EMULATION"
disable_platforms = ["windows"]