Skip to content

Commit bc300d1

Browse files
AaronStGeorgeclaude
andcommitted
Split iree-libs into iree-compiler + fusilli-libs stages for multi-arch CI
The iree-compiler stage (~3hr LLVM build) runs parallel to math-libs, then fusilli-libs runs after both complete. This avoids blocking the IREE compiler build on math-libs while still satisfying fusilliprovider's hipdnn dependency. Changes: - BUILD_TOPOLOGY.toml: Split iree-libs stage/group into iree-compiler and fusilli-libs, with feature_group="IREE_LIBS" to preserve single toggle - multi_arch_build_portable_linux.yml: Add iree-compiler and fusilli-libs jobs - CMakeLists.txt: Remove resolved TODO, fix quoting, enable by default Resolves: #3451 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 0de4d6b commit bc300d1

3 files changed

Lines changed: 57 additions & 10 deletions

File tree

.github/workflows/multi_arch_build_portable_linux.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
# 5. debug-tools (generic) - amd-dbgapi, rocr-debug-agent, rocgdb (parallel to math-libs)
99
# 6. dctools-core (generic) - RDC (parallel to math-libs)
1010
# 7. profiler-apps (generic) - rocprofiler-systems (parallel to math-libs)
11-
# 8. media-libs (generic) - sysdeps-amd-mesa, rocdecode, rocjpeg
11+
# 8. iree-compiler (generic) - IREE compiler (parallel to math-libs)
12+
# 9. fusilli-libs (generic) - Fusilli hipdnn provider (after math-libs + iree-compiler)
13+
# 10. media-libs (generic) - sysdeps-amd-mesa, rocdecode, rocjpeg
1214

1315
name: Multi-Arch Build (Linux)
1416

@@ -175,6 +177,40 @@ jobs:
175177
contents: read
176178
id-token: write
177179

180+
# ==========================================================================
181+
# STAGE: iree-compiler (generic, parallel to math-libs)
182+
# ==========================================================================
183+
iree-compiler:
184+
needs: compiler-runtime
185+
uses: ./.github/workflows/multi_arch_build_portable_linux_artifacts.yml
186+
secrets: inherit
187+
with:
188+
stage_name: iree-compiler
189+
stage_display_name: "Stage - IREE Compiler"
190+
timeout_minutes: 180 # 3 hours - includes captive LLVM build
191+
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
192+
rocm_package_version: ${{ inputs.rocm_package_version }}
193+
permissions:
194+
contents: read
195+
id-token: write
196+
197+
# ==========================================================================
198+
# STAGE: fusilli-libs (generic, after math-libs + iree-compiler)
199+
# ==========================================================================
200+
fusilli-libs:
201+
needs: [compiler-runtime, math-libs, iree-compiler]
202+
uses: ./.github/workflows/multi_arch_build_portable_linux_artifacts.yml
203+
secrets: inherit
204+
with:
205+
stage_name: fusilli-libs
206+
stage_display_name: "Stage - Fusilli Libs"
207+
timeout_minutes: 60 # 1 hour
208+
dist_amdgpu_families: ${{ inputs.dist_amdgpu_families }}
209+
rocm_package_version: ${{ inputs.rocm_package_version }}
210+
permissions:
211+
contents: read
212+
id-token: write
213+
178214
# ==========================================================================
179215
# STAGE: media-libs (generic)
180216
# ==========================================================================

BUILD_TOPOLOGY.toml

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,13 @@ artifact_groups = ["dctools-core"]
175175
# artifact_groups = ["dctools-rocm"]
176176
# depends_on = ["math-libs"] # Will need math/ML libraries
177177

178-
[build_stages.iree-libs]
179-
description = "IREE and Fusilli integration"
180-
artifact_groups = ["iree-libs"]
178+
[build_stages.iree-compiler]
179+
description = "IREE compiler (parallel to math-libs)"
180+
artifact_groups = ["iree-compiler"]
181+
182+
[build_stages.fusilli-libs]
183+
description = "Fusilli hipdnn provider (needs math-libs + iree-compiler)"
184+
artifact_groups = ["fusilli-libs"]
181185

182186
[build_stages.profiler-apps]
183187
description = "Profiler applications (depends on profiler-core)"
@@ -298,12 +302,18 @@ type = "generic"
298302
artifact_group_deps = ["profiler-core", "compiler", "core-amdsmi"]
299303
source_sets = ["rocm-systems", "profiler-extras"] # rocprofiler-systems + trace decoder
300304

301-
[artifact_groups.iree-libs]
302-
description = "IREE and Fusilli integration"
305+
[artifact_groups.iree-compiler]
306+
description = "IREE compiler"
303307
type = "generic"
304308
artifact_group_deps = ["hip-runtime"]
305309
source_sets = ["iree-libs"]
306310

311+
[artifact_groups.fusilli-libs]
312+
description = "Fusilli hipdnn provider"
313+
type = "generic"
314+
artifact_group_deps = ["hip-runtime", "ml-libs", "iree-compiler"]
315+
source_sets = ["iree-libs"]
316+
307317
[artifact_groups.media-libs]
308318
description = "Media Libraries"
309319
type = "generic"
@@ -580,16 +590,18 @@ artifact_deps = ["core-runtime", "core-hip", "miopen", "hipdnn", "miopenprovider
580590
# --- IREE Integration ---
581591

582592
[artifacts.iree-compiler]
583-
artifact_group = "iree-libs"
593+
artifact_group = "iree-compiler"
584594
type = "target-neutral"
585595
artifact_deps = ["core-hip"]
586596
disable_platforms = ["windows"]
597+
feature_group = "IREE_LIBS"
587598

588599
[artifacts.fusilliprovider]
589-
artifact_group = "iree-libs"
600+
artifact_group = "fusilli-libs"
590601
type = "target-neutral"
591602
artifact_deps = ["core-runtime", "core-hip", "hipdnn", "spdlog", "iree-compiler"]
592603
disable_platforms = ["windows"]
604+
feature_group = "IREE_LIBS"
593605

594606
# --- Media Integration ---
595607

CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,7 @@ option(THEROCK_ENABLE_DC_TOOLS "Enable building of data center tools" "${THEROCK
241241
option(THEROCK_ENABLE_MEDIA_LIBS "Enable building of Media libraries" "${THEROCK_ENABLE_ALL}")
242242
option(THEROCK_ENABLE_HOST_MATH "Build all bundled host math libraries by default" OFF)
243243
option(THEROCK_RESET_FEATURES "One-shot flag which forces all feature flags to their default state for this configuration run" OFF)
244-
# TODO(iree-org/fusilli/issues/57): Enable fusilli build once multi-arch support lands.
245-
option(THEROCK_ENABLE_IREE_LIBS "Enable building of IREE libraries" OFF)
244+
option(THEROCK_ENABLE_IREE_LIBS "Enable building of IREE libraries" "${THEROCK_ENABLE_ALL}")
246245

247246
################################################################################
248247
# Artifact-based features are auto-generated from BUILD_TOPOLOGY.toml

0 commit comments

Comments
 (0)