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
845 lines
28 KiB
TOML
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"]
|