Skip to content
Open
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
22 changes: 19 additions & 3 deletions mlir/utils/jenkins/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -1016,11 +1016,23 @@ void setHeartbeat() {
}
}

List<String> getEnabledMfmaArchitectures() {
def architectures = []
if (params.disable942 == false) architectures << 'gfx942'
if (params.disable908 == false) architectures << 'gfx908'
if (params.disable90a == false) architectures << 'gfx90a'
return architectures
}

String getLabelFromCodepath(String codepath) {
echo "codepath is ${codepath}"
String label = ''
if (codepath == "mfma") {
label = 'mlir && (gfx942 || gfx908 || gfx90a)'
def architectures = getEnabledMfmaArchitectures()
if (architectures.isEmpty()) {
error 'mfma codepath selected but all of gfx942/gfx908/gfx90a are disabled'
}
Comment thread
justinrosner marked this conversation as resolved.
label = "mlir && (${architectures.join(' || ')})"
} else if (codepath == "gfx950") {
if (params.weekly) {
label = 'mlir && linux-mi350-8'
Expand Down Expand Up @@ -1155,7 +1167,8 @@ boolean shouldRunFromCodepath(String codepath) {
return true
}
// Run mfma on private CI
if ((codepath == "mfma") && params.canXdlops) {
if ((codepath == "mfma") && params.canXdlops &&
!getEnabledMfmaArchitectures().isEmpty()) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Worth calling out a side effect of skipping the whole mfma row: preMergeCheck() (Jenkinsfile:906) and preMergeCheckPackage() (Jenkinsfile:934) are both gated on codepath == "mfma", and on private CI (canXdlops == true) there is no vanilla row to pick them up. So a run with all three MFMA archs disabled now silently loses the Jenkins-side premerge static check and the librockcompiler_deps.cmake accuracy check, with no log line saying why. Suggest either an echo here when the enabled list is empty (so the skip is visible in the build log), or moving those two checks onto a codepath-independent row so they survive an MFMA node outage.

return true
}
if (codepath == "gfx950" && params.canXdlops && params.disable950 == false) {
Expand Down Expand Up @@ -1227,7 +1240,7 @@ boolean shouldRunBuildAndTest(String codepath) {
// When a particular codepath is selected, we only test the codepath
// on private CI
if (params.codepath == codepath && params.canXdlops) {
if (params.codepath == "mfma") return true
if (params.codepath == "mfma") return !getEnabledMfmaArchitectures().isEmpty()
if (params.codepath == "vanilla") return true
if (params.codepath == "gfx950" && params.disable950 == false) return true
if (params.codepath == "gfx103x" && params.disableGfx103x == false) return true
Expand Down Expand Up @@ -2317,6 +2330,9 @@ pipeline {
// One big scripted step per matrix row
stages {
stage('Matrix row orchestration') {
when {
expression { shouldRunFromCodepath(CODEPATH) }
}
steps {
// Do not fail the build on code coverage
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
Expand Down
Loading