Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
82ecc64
Split LLVM bootstrap and layer Fortran runtimes
stellaraccident May 2, 2026
17821ea
Layer OpenMP through HIP toolchain
stellaraccident May 2, 2026
4e655e5
Collapse foundation and split runtime tests
stellaraccident May 2, 2026
429da3c
Revert local debugging hack
stellaraccident May 2, 2026
97527a9
Fix Fortran stage deps for CI
stellaraccident May 2, 2026
e79129b
Fix split OpenMP and runtime test deps
stellaraccident May 2, 2026
3a6109d
Fix staged flang artifacts and rocBLAS samples
stellaraccident May 2, 2026
1083b3e
Include RAND Fortran wrapper sources
stellaraccident May 2, 2026
a3bcdc3
Address Fortran review cleanup
stellaraccident May 2, 2026
f22f38e
Fix split compiler artifact test installs
stellaraccident May 2, 2026
3f50908
Pre-commit
stellaraccident May 2, 2026
e72232b
Roll back rocprofiler-systems toolchain hacks
stellaraccident May 2, 2026
b87baf8
Disable rocprofiler-systems Fortran examples
stellaraccident May 2, 2026
19e39a1
Disable rocprofiler-systems offload target example
stellaraccident May 2, 2026
229a849
Include split LLVM artifacts in Python packages
stellaraccident May 3, 2026
3e7965a
Package base LLVM in native LLVM packages
stellaraccident May 3, 2026
c1cf61b
Fix split LLVM wheel and hipSOLVER Fortran packaging
stellaraccident May 3, 2026
35ec7b2
Point Python amdflang launcher at flang
stellaraccident May 3, 2026
ba87f01
Fix native package lookup for base LLVM
stellaraccident May 3, 2026
e64f82c
Constrain rocprofiler OpenMP target tests
stellaraccident May 3, 2026
a1da20f
Fix Windows hipBLAS test exit status
stellaraccident May 4, 2026
95d4907
Fallback libhipcxx test arch detection
stellaraccident May 4, 2026
0bbb7a3
Honor empty package index URL
stellaraccident May 4, 2026
c83335c
Pre-commit
stellaraccident May 4, 2026
7a97eda
Fix kpack test pairing and sdist installs
stellaraccident May 4, 2026
23b97ff
Fix Windows hipBLAS success exit
stellaraccident May 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions .github/workflows/multi_arch_build_portable_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
# Multi-Arch Build - Sharded Pipeline for Linux
#
# This workflow builds TheRock in stages:
# 1. foundation (generic) - sysdeps, base
# 2. compiler-runtime (generic) - compiler, runtimes, profiler-core
# 1. compiler-runtime (generic) - sysdeps, base, compiler, runtimes, profiler-core
# 2. runtime-tests (generic) - hip-tests, rocrtst (parallel to math-libs)
# 3. math-libs (per-arch) - BLAS, FFT, etc.
# 4. comm-libs (per-arch) - RCCL, rocshmem (parallel to math-libs)
# 5. debug-tools (generic) - amd-dbgapi, rocr-debug-agent, rocgdb (parallel to math-libs)
Expand Down Expand Up @@ -65,16 +65,16 @@ permissions:

jobs:
# ==========================================================================
# STAGE: foundation (generic)
# STAGE: compiler-runtime (generic)
# ==========================================================================
foundation:
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'foundation') }}
compiler-runtime:
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'compiler-runtime') }}
uses: ./.github/workflows/multi_arch_build_portable_linux_artifacts.yml
secrets: inherit
with:
stage_name: foundation
stage_display_name: "Stage - Foundation"
timeout_minutes: 180 # 3 hours
stage_name: compiler-runtime
stage_display_name: "Stage - Compiler Runtime"
timeout_minutes: 480 # 8 hours (compiler is big)
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
rocm_package_version: ${{ inputs.rocm_package_version }}
build_variant_cmake_preset: ${{ inputs.build_variant_cmake_preset }}
Expand All @@ -87,17 +87,17 @@ jobs:
id-token: write

# ==========================================================================
# STAGE: compiler-runtime (generic)
# STAGE: runtime-tests (generic, parallel to math-libs)
# ==========================================================================
compiler-runtime:
needs: foundation
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'compiler-runtime') }}
runtime-tests:
needs: compiler-runtime
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'runtime-tests') }}
uses: ./.github/workflows/multi_arch_build_portable_linux_artifacts.yml
secrets: inherit
with:
stage_name: compiler-runtime
stage_display_name: "Stage - Compiler Runtime"
timeout_minutes: 480 # 8 hours (compiler is big)
stage_name: runtime-tests
stage_display_name: "Stage - Runtime Tests"
timeout_minutes: 120 # 2 hours
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
rocm_package_version: ${{ inputs.rocm_package_version }}
build_variant_cmake_preset: ${{ inputs.build_variant_cmake_preset }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Reusable Workflow: Build Stage Artifacts
#
# This workflow builds TheRock stage artifacts for all stages.
# Handles both generic stages (foundation, compiler-runtime, etc.) and
# Handles both generic stages (compiler-runtime, profiler-apps, etc.) and
# per-arch stages (math-libs, comm-libs) using conditional logic.
#
# Artifacts flow between stages via S3 using the artifact_manager.py tool.
Expand All @@ -22,7 +22,7 @@ on:
stage_name:
type: string
required: true
description: "Stage name (e.g., foundation, math-libs, compiler-runtime)"
description: "Stage name (e.g., compiler-runtime, math-libs)"
stage_display_name:
type: string
required: true
Expand Down
30 changes: 15 additions & 15 deletions .github/workflows/multi_arch_build_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
# Multi-Arch Build - Sharded Pipeline for Windows
#
# This workflow builds TheRock in stages:
# 1. foundation (generic) - sysdeps, base
# 2. compiler-runtime (generic) - compiler, runtimes
# 1. compiler-runtime (generic) - sysdeps, base, compiler, runtimes
# 2. runtime-tests (generic) - hip-tests (parallel to math-libs)
# 3. math-libs (per-arch) - BLAS, FFT, etc.
#
# Stages disabled on Windows: comm-libs, dctools-core, profiler-apps, media
Expand Down Expand Up @@ -62,16 +62,16 @@ permissions:

jobs:
# ==========================================================================
# STAGE: foundation (generic)
# STAGE: compiler-runtime (generic)
# ==========================================================================
foundation:
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'foundation') }}
compiler-runtime:
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'compiler-runtime') }}
uses: ./.github/workflows/multi_arch_build_windows_artifacts.yml
secrets: inherit
with:
stage_name: foundation
stage_display_name: "Stage - Foundation"
timeout_minutes: 180 # 3 hours
stage_name: compiler-runtime
stage_display_name: "Stage - Compiler Runtime"
timeout_minutes: 480 # 8 hours (compiler is big)
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
build_variant_cmake_preset: ${{ inputs.build_variant_cmake_preset }}
rocm_package_version: ${{ inputs.rocm_package_version }}
Expand All @@ -83,17 +83,17 @@ jobs:
id-token: write

# ==========================================================================
# STAGE: compiler-runtime (generic)
# STAGE: runtime-tests (generic, parallel to math-libs)
# ==========================================================================
compiler-runtime:
needs: foundation
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'compiler-runtime') }}
runtime-tests:
needs: compiler-runtime
if: ${{ !cancelled() && !failure() && !contains(inputs.prebuilt_stages, 'runtime-tests') }}
uses: ./.github/workflows/multi_arch_build_windows_artifacts.yml
secrets: inherit
with:
stage_name: compiler-runtime
stage_display_name: "Stage - Compiler Runtime"
timeout_minutes: 480 # 8 hours (compiler is big)
stage_name: runtime-tests
stage_display_name: "Stage - Runtime Tests"
timeout_minutes: 120 # 2 hours
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
build_variant_cmake_preset: ${{ inputs.build_variant_cmake_preset }}
rocm_package_version: ${{ inputs.rocm_package_version }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/multi_arch_build_windows_artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Reusable Workflow: Build Stage Artifacts
#
# This workflow builds TheRock stage artifacts for all stages.
# Handles both generic stages (foundation, compiler-runtime, etc.) and
# Handles both generic stages (compiler-runtime, etc.) and
# per-arch stages (math-libs) using conditional logic.
#
# Artifacts flow between stages via S3 using the artifact_manager.py tool.
Expand All @@ -22,7 +22,7 @@ on:
stage_name:
type: string
required: true
description: "Stage name (e.g., foundation, math-libs, compiler-runtime)"
description: "Stage name (e.g., compiler-runtime, math-libs)"
stage_display_name:
type: string
required: true
Expand Down
58 changes: 39 additions & 19 deletions BUILD_TOPOLOGY.toml
Original file line number Diff line number Diff line change
Expand Up @@ -130,23 +130,24 @@ disable_platforms = ["windows"]
# 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.foundation]
description = "Foundation - critical path dependencies"
artifact_groups = ["third-party-sysdeps", "base"]

[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",
"rocrtst"
]

[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"]
Expand Down Expand Up @@ -218,7 +219,7 @@ source_sets = ["rocm-systems"]
[artifact_groups.core-amdsmi]
description = "AMD SMI tool (amdsmi)"
type = "generic"
artifact_group_deps = ["base", "third-party-sysdeps", "compiler"]
artifact_group_deps = ["base", "third-party-sysdeps"]
source_sets = ["rocm-systems"]

[artifact_groups.compiler]
Expand Down Expand Up @@ -247,10 +248,10 @@ type = "generic"
artifact_group_deps = ["core-runtime", "compiler"]
source_sets = ["rocm-systems"] # clr is in rocm-systems

[artifact_groups.rocrtst]
description = "Core runtime tests (ROCR-Runtime, rocminfo)"
[artifact_groups.runtime-tests]
description = "Runtime tests (hip-tests, rocrtst)"
type = "generic"
artifact_group_deps = ["opencl-runtime", "core-runtime"]
artifact_group_deps = ["hip-runtime", "opencl-runtime", "core-runtime"]
source_sets = ["rocm-systems"]

[artifact_groups.math-libs]
Expand Down Expand Up @@ -468,13 +469,27 @@ feature_group = "CORE" # Part of core, enabled by default

# --- Compiler Artifacts ---

[artifacts.amd-llvm]
[artifacts.amd-llvm-base]
artifact_group = "compiler"
type = "target-neutral"
artifact_deps = ["sysdeps"]
feature_group = "ALL"

[artifacts.amd-llvm]
artifact_group = "compiler"
type = "target-neutral"
artifact_deps = ["amd-llvm-base"]
feature_name = "COMPILER"
feature_group = "ALL"

[artifacts.amd-llvm-flang]
artifact_group = "compiler"
type = "target-neutral"
artifact_deps = ["amd-llvm"]
feature_name = "FLANG"
feature_group = "ALL"
disable_platforms = ["windows"]

[artifacts.hipify]
artifact_group = "compiler"
type = "target-neutral"
Expand All @@ -486,15 +501,22 @@ feature_group = "ALL"
[artifacts.core-runtime]
artifact_group = "core-runtime"
type = "target-neutral"
artifact_deps = ["base", "sysdeps", "amd-llvm"]
artifact_deps = ["base", "sysdeps", "amd-llvm-base"]
feature_name = "CORE_RUNTIME"
feature_group = "CORE"
disable_platforms = ["windows"]

[artifacts.amd-llvm-offload]
artifact_group = "core-runtime"
type = "target-neutral"
artifact_deps = ["amd-llvm", "amd-llvm-flang", "core-runtime"]
feature_group = "ALL"
disable_platforms = ["windows"]

[artifacts.core-amdsmi]
artifact_group = "core-amdsmi"
type = "target-neutral"
artifact_deps = ["base", "sysdeps", "sysdeps-libnl", "sysdeps-libmnl", "amd-llvm"]
artifact_deps = ["base", "sysdeps", "sysdeps-libnl", "sysdeps-libmnl"]
feature_name = "CORE_AMDSMI"
feature_group = "CORE"
disable_platforms = ["windows"]
Expand Down Expand Up @@ -529,9 +551,9 @@ feature_name = "OCL_RUNTIME"
feature_group = "CORE" # Part of core, enabled by default

[artifacts.rocrtst]
artifact_group = "rocrtst"
artifact_group = "runtime-tests"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-ocl", "sysdeps-hwloc"]
artifact_deps = ["core-runtime", "core-ocl", "core-amdsmi", "sysdeps-hwloc"]
feature_name = "CORE_RUNTIME_TESTS"
feature_group = "CORE"
disable_platforms = ["windows"]
Expand All @@ -543,10 +565,8 @@ platform = "windows"
artifact_deps = ["core-hip"]
feature_group = "CORE" # Part of core, enabled by default

# --- hip-tests ---

[artifacts.core-hiptests]
artifact_group = "hip-runtime"
artifact_group = "runtime-tests"
type = "target-neutral"
artifact_deps = ["core-hip"]
feature_group = "CORE" # Part of core, enabled by default
Expand All @@ -556,7 +576,7 @@ feature_group = "CORE" # Part of core, enabled by default
[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"]
artifact_deps = ["core-runtime", "core-hip", "core-amdsmi", "amd-llvm-offload", "host-blas", "host-suite-sparse", "rocprofiler-sdk", "spdlog"]
split_databases = ["rocblas", "hipblaslt"]

[artifacts.rand]
Expand Down Expand Up @@ -719,7 +739,7 @@ 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"]
artifact_deps = ["amd-llvm", "amd-llvm-offload", "core-hip", "rocprofiler-sdk", "core-amdsmi", "spdlog", "openmpi"]
feature_name = "ROCPROFSYS"
feature_group = "PROFILER"
disable_platforms = ["windows"]
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ endif()
################################################################################

add_custom_target(therock-priority-build ALL)
if(THEROCK_ENABLE_COMPILER)
if(THEROCK_ENABLE_AMD_LLVM_BASE)
add_dependencies(therock-priority-build amd-llvm)
endif()

Expand Down
16 changes: 16 additions & 0 deletions FLAGS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@ therock_declare_flag(
hipkernelprovider
)

if(WIN32)
set(_fortran_default OFF)
else()
set(_fortran_default ON)
endif()
therock_declare_flag(
NAME BUILD_FORTRAN_LIBS
DEFAULT_VALUE ${_fortran_default}
DESCRIPTION "Build Fortran components in sub-projects (wrappers, tests, hipfort)"
)

###############################################################################
# Branch-specific flag overrides.
# BRANCH_FLAGS.cmake is .gitignored on main but can be committed on
Expand All @@ -43,4 +54,9 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/BRANCH_FLAGS.cmake" OPTIONAL)
# Finalize all flags and report.
###############################################################################
therock_finalize_flags()

# Always propagate the Fortran build policy to sub-projects, even when disabled.
set(ROCM_BUILD_FORTRAN_LIBS "${THEROCK_FLAG_BUILD_FORTRAN_LIBS}")
set_property(GLOBAL APPEND PROPERTY THEROCK_DEFAULT_CMAKE_VARS ROCM_BUILD_FORTRAN_LIBS)

therock_report_flags()
Loading