Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
38 changes: 37 additions & 1 deletion .github/workflows/multi_arch_build_portable_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
# 5. debug-tools (generic) - amd-dbgapi, rocr-debug-agent, rocgdb (parallel to math-libs)
# 6. dctools-core (generic) - RDC (parallel to math-libs)
# 7. profiler-apps (generic) - rocprofiler-systems (parallel to math-libs)
# 8. media-libs (generic) - sysdeps-amd-mesa, rocdecode, rocjpeg
# 8. iree-compiler (generic) - IREE compiler (parallel to math-libs)
# 9. fusilli-libs (generic) - Fusilli hipdnn provider (after math-libs + iree-compiler)
Comment thread
sjain-stanford marked this conversation as resolved.
# 10. media-libs (generic) - sysdeps-amd-mesa, rocdecode, rocjpeg

name: Multi-Arch Build (Linux)

Expand Down Expand Up @@ -175,6 +177,40 @@ jobs:
contents: read
id-token: write

# ==========================================================================
# STAGE: iree-compiler (generic, parallel to math-libs)
# ==========================================================================
iree-compiler:
needs: compiler-runtime
uses: ./.github/workflows/multi_arch_build_portable_linux_artifacts.yml
secrets: inherit
with:
stage_name: iree-compiler
stage_display_name: "Stage - IREE Compiler"
timeout_minutes: 90 # 1.5 hours - iree is not _yet_ building with a common llvm, it includes its own.
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
rocm_package_version: ${{ inputs.rocm_package_version }}
permissions:
contents: read
id-token: write

# ==========================================================================
# STAGE: fusilli-libs (generic, after math-libs + iree-compiler)
# ==========================================================================
fusilli-libs:
needs: [compiler-runtime, math-libs, iree-compiler]
Comment thread
marbre marked this conversation as resolved.
uses: ./.github/workflows/multi_arch_build_portable_linux_artifacts.yml
secrets: inherit
with:
stage_name: fusilli-libs
stage_display_name: "Stage - Fusilli Libs"
timeout_minutes: 60 # 1 hour
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
rocm_package_version: ${{ inputs.rocm_package_version }}
permissions:
contents: read
id-token: write
Comment thread
AaronStGeorge marked this conversation as resolved.

# ==========================================================================
# STAGE: media-libs (generic)
# ==========================================================================
Expand Down
30 changes: 22 additions & 8 deletions BUILD_TOPOLOGY.toml
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,13 @@ artifact_groups = ["dctools-core"]
# artifact_groups = ["dctools-rocm"]
# depends_on = ["math-libs"] # Will need math/ML libraries

[build_stages.iree-libs]
description = "IREE and Fusilli integration"
artifact_groups = ["iree-libs"]
[build_stages.iree-compiler]
description = "IREE compiler (parallel to math-libs)"
artifact_groups = ["iree-compiler"]

[build_stages.fusilli-libs]
description = "Fusilli hipdnn provider (needs math-libs + iree-compiler)"
artifact_groups = ["fusilli-libs"]

[build_stages.profiler-apps]
description = "Profiler applications (depends on profiler-core)"
Expand Down Expand Up @@ -298,11 +302,19 @@ type = "generic"
artifact_group_deps = ["profiler-core", "compiler", "core-amdsmi"]
source_sets = ["rocm-systems", "profiler-extras"] # rocprofiler-systems + trace decoder

[artifact_groups.iree-libs]
description = "IREE and Fusilli integration"
[artifact_groups.iree-compiler]
description = "IREE compiler"
type = "generic"
artifact_group_deps = ["hip-runtime"]
source_sets = ["iree-libs"]
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["iree-libs", "rocm-systems"]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does IREE compiler really need projects/hip/VERSION? Furthermore, with the renaming iree-libs now only is a source set. Is there a better name for this?

Copy link
Copy Markdown
Contributor Author

@AaronStGeorge AaronStGeorge Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't, this is a workaround for a pre-existing issue. Currently, without "rocm-systems" configure crashes during an unconditional read of projects/hip/VERSION in TheRock 's main CMakeLists.txt (before we would even get to IREE):

TheRock/CMakeLists.txt

Lines 179 to 182 in c6bc478

set(VERSION_PATH "${THEROCK_ROCM_SYSTEMS_SOURCE_DIR}/projects/hip/VERSION")
if(NOT EXISTS "${VERSION_PATH}")
message(FATAL_ERROR "Could not find HIP VERSION file: ${VERSION_PATH}")
endif()

The same pattern is included in every other base artifact group at the moment:

TheRock/BUILD_TOPOLOGY.toml

Lines 260 to 261 in c6bc478

# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["rocm-libraries", "rocm-systems", "math-libs"]

TheRock/BUILD_TOPOLOGY.toml

Lines 273 to 274 in c6bc478

# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["comm-libs", "rocm-systems"]

TheRock/BUILD_TOPOLOGY.toml

Lines 286 to 287 in c6bc478

# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["base", "rocm-systems"] # RDC uses amdsmi from core-amdsmi

It seems to me that the underlying issue + all the other stages should definitely be fixed, but it's out of scope for this PR.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh... missed that.


[artifact_groups.fusilli-libs]
description = "Fusilli hipdnn provider"
type = "generic"
artifact_group_deps = ["hip-runtime", "iree-compiler"]
# TODO: rocm-systems included for projects/hip/VERSION (see CMakeLists.txt)
source_sets = ["iree-libs", "rocm-systems"]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, does this really need rocm-systems?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same


[artifact_groups.media-libs]
description = "Media Libraries"
Expand Down Expand Up @@ -586,16 +598,18 @@ artifact_deps = ["core-runtime", "core-hip", "miopen", "hipdnn", "miopenprovider
# --- IREE Integration ---

[artifacts.iree-compiler]
artifact_group = "iree-libs"
artifact_group = "iree-compiler"
type = "target-neutral"
artifact_deps = ["core-hip"]
disable_platforms = ["windows"]
feature_group = "IREE_LIBS"

[artifacts.fusilliprovider]
artifact_group = "iree-libs"
artifact_group = "fusilli-libs"
type = "target-neutral"
artifact_deps = ["core-runtime", "core-hip", "hipdnn", "spdlog", "iree-compiler"]
disable_platforms = ["windows"]
feature_group = "IREE_LIBS"

# --- Media Integration ---

Expand Down
6 changes: 6 additions & 0 deletions iree-libs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
##############################################################################
if(THEROCK_ENABLE_IREE_COMPILER)
therock_cmake_subproject_declare(iree-compiler
# IREE compiler has general support for many GPUs/backends and doesn't
# compile device code. The build infrastructure requires generic stages to
# pass through DIST_AMDGPU_TARGETS even if the list isn't used by the
# underlying project.
USE_DIST_AMDGPU_TARGETS
NO_MERGE_COMPILE_COMMANDS
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/iree-compiler"
EXTERNAL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/iree"
Comment thread
AaronStGeorge marked this conversation as resolved.
Expand Down Expand Up @@ -111,6 +116,7 @@ if(THEROCK_ENABLE_FUSILLIPROVIDER)
therock_cmake_subproject_activate(fusilliprovider)

therock_provide_artifact(fusilliprovider
TARGET_NEUTRAL
DESCRIPTOR artifact-fusilliprovider.toml
COMPONENTS
dbg
Expand Down
2 changes: 1 addition & 1 deletion iree-libs/fusilli
Submodule fusilli updated 161 files
2 changes: 1 addition & 1 deletion iree-libs/iree
Submodule iree updated 1191 files
Loading