pytorch - ✅(Solved) Fix [build env combo] elainewy [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
pytorch/pytorch#178345Fetched 2026-04-08 01:26:04
View on GitHub
Comments
0
Participants
1
Timeline
54
Reactions
0
Author
Participants
Timeline (top)
subscribed ×38mentioned ×7labeled ×4unsubscribed ×2

Fix Action

Fix / Workaround

fielddistinct values
OSlinux, macos, win
archx86_64, aarch64, arm64, riscv64, s390x
acceleratorcuda12.8, cuda13.0, rocm, xpu, —
compilergcc11, gcc14, clang15, clang18, vs2022, —
python3, 3.10, 3.12, 3.13, 3.14, 3.14t, —
variancesasan, bazel-test, binary-manywheel, build, client, cpu, cudnn9, cutlass-backend, debug, dist, distributed, distributed-b200, executorch, full-debug-build-only, gfx942, halide, libtorch, mi300, mi355, mobile-lightweight-dispatch-build, n, n-1, nightly, no-ops, onnx, pallas, pallas-tpu, slow-gradcheck, sm75, sm80, sm86, sm90, sm100, symm, triton-cpu
build-environmentOSarchacceleratorcompilerpythonvariances
libtorch-linux-jammy-cuda12.8-py3.10-gcc11linuxx86_64cuda12.8gcc113.10libtorch
linux-jammy-aarch64-py3.10linuxaarch643.10
linux-jammy-cuda12.8-cudnn9-py3-gcc11linuxx86_64cuda12.8gcc113cudnn9
linux-jammy-cuda12.8-cudnn9-py3.10-clang15linuxx86_64cuda12.8clang153.10cudnn9
linux-jammy-cuda12.8-py3-gcc11linuxx86_64cuda12.8gcc113
linux-jammy-cuda12.8-py3.10-gcc11linuxx86_64cuda12.8gcc113.10
linux-jammy-cuda12.8-py3.10-gcc11-bazel-testlinuxx86_64cuda12.8gcc113.10bazel-test
linux-jammy-cuda12.8-py3.10-gcc11-distributed-b200linuxx86_64cuda12.8gcc113.10distributed-b200
linux-jammy-cuda12.8-py3.10-gcc11-sm100linuxx86_64cuda12.8gcc113.10sm100
linux-jammy-cuda12.8-py3.10-gcc11-sm100-symmlinuxx86_64cuda12.8gcc113.10sm100, symm
linux-jammy-cuda12.8-py3.10-gcc11-sm80linuxx86_64cuda12.8gcc113.10sm80
linux-jammy-cuda12.8-py3.10-gcc11-sm86linuxx86_64cuda12.8gcc113.10sm86
linux-jammy-cuda12.8-py3.10-gcc11-sm90linuxx86_64cuda12.8gcc113.10sm90
linux-jammy-cuda12.8-py3.10-gcc11-sm90-cutlass-backendlinuxx86_64cuda12.8gcc113.10sm90, cutlass-backend
linux-jammy-cuda12.8-py3.10-gcc11-sm90-distlinuxx86_64cuda12.8gcc113.10sm90, dist
linux-jammy-cuda12.8-py3.10-gcc11-sm90-symmlinuxx86_64cuda12.8gcc113.10sm90, symm
linux-jammy-cuda12.8-py3.12-gcc11linuxx86_64cuda12.8gcc113.12
linux-jammy-cuda13.0-py3-gcc11-slow-gradchecklinuxx86_64cuda13.0gcc113slow-gradcheck
linux-jammy-cuda13.0-py3.10-gcc11linuxx86_64cuda13.0gcc113.10
linux-jammy-cuda13.0-py3.10-gcc11-debuglinuxx86_64cuda13.0gcc113.10debug
linux-jammy-cuda13.0-py3.10-gcc11-no-opslinuxx86_64cuda13.0gcc113.10no-ops
linux-jammy-cuda13.0-py3.10-gcc11-sm100linuxx86_64cuda13.0gcc113.10sm100
linux-jammy-cuda13.0-py3.10-gcc11-sm75linuxx86_64cuda13.0gcc113.10sm75
linux-jammy-cuda13.0-py3.10-gcc11-sm80linuxx86_64cuda13.0gcc113.10sm80
linux-jammy-cuda13.0-py3.10-gcc11-sm86linuxx86_64cuda13.0gcc113.10sm86
linux-jammy-cuda13.0-py3.10-gcc11-sm90linuxx86_64cuda13.0gcc113.10sm90
linux-jammy-cuda13.0-py3.12-gcc11linuxx86_64cuda13.0gcc113.12
linux-jammy-cuda13.0-py3.12-gcc11-sm80linuxx86_64cuda13.0gcc113.12sm80
linux-jammy-py3-clang15-executorchlinuxx86_64clang153executorch
linux-jammy-py3.10-clang15linuxx86_64clang153.10
linux-jammy-py3.10-clang15-onnxlinuxx86_64clang153.10onnx
linux-jammy-py3.10-clang18-asanlinuxx86_64clang183.10asan
linux-jammy-py3.10-gcc11linuxx86_64gcc113.10
linux-jammy-py3.10-gcc11-buildlinuxx86_64gcc113.10build
linux-jammy-py3.10-gcc11-full-debug-build-onlylinuxx86_64gcc113.10full-debug-build-only
linux-jammy-py3.10-gcc11-mobile-lightweight-dispatch-buildlinuxx86_64gcc113.10mobile-lightweight-dispatch-build
linux-jammy-py3.10-gcc11-no-opslinuxx86_64gcc113.10no-ops
linux-jammy-py3.12-gcc11-halidelinuxx86_64gcc113.12halide
linux-jammy-py3.12-gcc11-pallaslinuxx86_64gcc113.12pallas
linux-jammy-py3.12-gcc11-pallas-tpulinuxx86_64gcc113.12pallas-tpu
linux-jammy-py3.12-gcc11-triton-cpulinuxx86_64gcc113.12triton-cpu
linux-jammy-py3.13-clang15linuxx86_64clang153.13
linux-jammy-py3.14-clang15linuxx86_64clang153.14
linux-jammy-py3.14t-clang15linuxx86_64clang153.14t
linux-jammy-rocm-py3_10linuxx86_64rocm3.10
linux-jammy-rocm-py3.10linuxx86_64rocm3.10
linux-jammy-xpu-n-1-py3.10linuxx86_64xpu3.10n-1
linux-noble-riscv64-py3.12-gcc14linuxriscv64gcc143.12
linux-noble-rocm-nightly-py3.12-gfx942linuxx86_64rocm3.12nightly, gfx942
linux-noble-rocm-py3.12-mi300linuxx86_64rocm3.12mi300
linux-noble-rocm-py3.12-mi355linuxx86_64rocm3.12mi355
linux-noble-xpu-n-py3.10linuxx86_64xpu3.10n
linux-noble-xpu-n-py3.10-clientlinuxx86_64xpu3.10n, client
linux-s390x-binary-manywheellinuxs390xbinary-manywheel
macos-py3-arm64macosarm643
macos-py3-arm64-distributedmacosarm643distributed
win-vs2022-cpu-py3winx86_64vs20223cpu
win-vs2022-cuda12.8-py3winx86_64cuda12.8vs20223
win-vs2022-xpu-n-1-py3winx86_64xpuvs20223n-1
win-vs2022-xpu-n-py3winx86_64xpuvs20223n

PR fix notes

PR #178356: convert build_env variables into config matrix in pull.yaml

Description (problem / solution / changelog)

we plan to stop use the magic build_env, since it's not clear. instead, we split it into compiler, os, accelerator, python and variances.

see current total combo of build_env: https://github.com/pytorch/pytorch/issues/178345

as time goes, we can improve how we generate those, but for now we want to polish it in a straightforward way

Changed files

  • .github/workflows/_linux-test.yml (modified, +6/-0)
  • .github/workflows/pull.yml (modified, +74/-74)
RAW_BUFFERClick to expand / collapse

Build Environments variable we have in workflows

Distinct field values

fielddistinct values
OSlinux, macos, win
archx86_64, aarch64, arm64, riscv64, s390x
acceleratorcuda12.8, cuda13.0, rocm, xpu, —
compilergcc11, gcc14, clang15, clang18, vs2022, —
python3, 3.10, 3.12, 3.13, 3.14, 3.14t, —
variancesasan, bazel-test, binary-manywheel, build, client, cpu, cudnn9, cutlass-backend, debug, dist, distributed, distributed-b200, executorch, full-debug-build-only, gfx942, halide, libtorch, mi300, mi355, mobile-lightweight-dispatch-build, n, n-1, nightly, no-ops, onnx, pallas, pallas-tpu, slow-gradcheck, sm75, sm80, sm86, sm90, sm100, symm, triton-cpu

All distinct build-environment values across .github/workflows/.

build-environmentOSarchacceleratorcompilerpythonvariances
libtorch-linux-jammy-cuda12.8-py3.10-gcc11linuxx86_64cuda12.8gcc113.10libtorch
linux-jammy-aarch64-py3.10linuxaarch643.10
linux-jammy-cuda12.8-cudnn9-py3-gcc11linuxx86_64cuda12.8gcc113cudnn9
linux-jammy-cuda12.8-cudnn9-py3.10-clang15linuxx86_64cuda12.8clang153.10cudnn9
linux-jammy-cuda12.8-py3-gcc11linuxx86_64cuda12.8gcc113
linux-jammy-cuda12.8-py3.10-gcc11linuxx86_64cuda12.8gcc113.10
linux-jammy-cuda12.8-py3.10-gcc11-bazel-testlinuxx86_64cuda12.8gcc113.10bazel-test
linux-jammy-cuda12.8-py3.10-gcc11-distributed-b200linuxx86_64cuda12.8gcc113.10distributed-b200
linux-jammy-cuda12.8-py3.10-gcc11-sm100linuxx86_64cuda12.8gcc113.10sm100
linux-jammy-cuda12.8-py3.10-gcc11-sm100-symmlinuxx86_64cuda12.8gcc113.10sm100, symm
linux-jammy-cuda12.8-py3.10-gcc11-sm80linuxx86_64cuda12.8gcc113.10sm80
linux-jammy-cuda12.8-py3.10-gcc11-sm86linuxx86_64cuda12.8gcc113.10sm86
linux-jammy-cuda12.8-py3.10-gcc11-sm90linuxx86_64cuda12.8gcc113.10sm90
linux-jammy-cuda12.8-py3.10-gcc11-sm90-cutlass-backendlinuxx86_64cuda12.8gcc113.10sm90, cutlass-backend
linux-jammy-cuda12.8-py3.10-gcc11-sm90-distlinuxx86_64cuda12.8gcc113.10sm90, dist
linux-jammy-cuda12.8-py3.10-gcc11-sm90-symmlinuxx86_64cuda12.8gcc113.10sm90, symm
linux-jammy-cuda12.8-py3.12-gcc11linuxx86_64cuda12.8gcc113.12
linux-jammy-cuda13.0-py3-gcc11-slow-gradchecklinuxx86_64cuda13.0gcc113slow-gradcheck
linux-jammy-cuda13.0-py3.10-gcc11linuxx86_64cuda13.0gcc113.10
linux-jammy-cuda13.0-py3.10-gcc11-debuglinuxx86_64cuda13.0gcc113.10debug
linux-jammy-cuda13.0-py3.10-gcc11-no-opslinuxx86_64cuda13.0gcc113.10no-ops
linux-jammy-cuda13.0-py3.10-gcc11-sm100linuxx86_64cuda13.0gcc113.10sm100
linux-jammy-cuda13.0-py3.10-gcc11-sm75linuxx86_64cuda13.0gcc113.10sm75
linux-jammy-cuda13.0-py3.10-gcc11-sm80linuxx86_64cuda13.0gcc113.10sm80
linux-jammy-cuda13.0-py3.10-gcc11-sm86linuxx86_64cuda13.0gcc113.10sm86
linux-jammy-cuda13.0-py3.10-gcc11-sm90linuxx86_64cuda13.0gcc113.10sm90
linux-jammy-cuda13.0-py3.12-gcc11linuxx86_64cuda13.0gcc113.12
linux-jammy-cuda13.0-py3.12-gcc11-sm80linuxx86_64cuda13.0gcc113.12sm80
linux-jammy-py3-clang15-executorchlinuxx86_64clang153executorch
linux-jammy-py3.10-clang15linuxx86_64clang153.10
linux-jammy-py3.10-clang15-onnxlinuxx86_64clang153.10onnx
linux-jammy-py3.10-clang18-asanlinuxx86_64clang183.10asan
linux-jammy-py3.10-gcc11linuxx86_64gcc113.10
linux-jammy-py3.10-gcc11-buildlinuxx86_64gcc113.10build
linux-jammy-py3.10-gcc11-full-debug-build-onlylinuxx86_64gcc113.10full-debug-build-only
linux-jammy-py3.10-gcc11-mobile-lightweight-dispatch-buildlinuxx86_64gcc113.10mobile-lightweight-dispatch-build
linux-jammy-py3.10-gcc11-no-opslinuxx86_64gcc113.10no-ops
linux-jammy-py3.12-gcc11-halidelinuxx86_64gcc113.12halide
linux-jammy-py3.12-gcc11-pallaslinuxx86_64gcc113.12pallas
linux-jammy-py3.12-gcc11-pallas-tpulinuxx86_64gcc113.12pallas-tpu
linux-jammy-py3.12-gcc11-triton-cpulinuxx86_64gcc113.12triton-cpu
linux-jammy-py3.13-clang15linuxx86_64clang153.13
linux-jammy-py3.14-clang15linuxx86_64clang153.14
linux-jammy-py3.14t-clang15linuxx86_64clang153.14t
linux-jammy-rocm-py3_10linuxx86_64rocm3.10
linux-jammy-rocm-py3.10linuxx86_64rocm3.10
linux-jammy-xpu-n-1-py3.10linuxx86_64xpu3.10n-1
linux-noble-riscv64-py3.12-gcc14linuxriscv64gcc143.12
linux-noble-rocm-nightly-py3.12-gfx942linuxx86_64rocm3.12nightly, gfx942
linux-noble-rocm-py3.12-mi300linuxx86_64rocm3.12mi300
linux-noble-rocm-py3.12-mi355linuxx86_64rocm3.12mi355
linux-noble-xpu-n-py3.10linuxx86_64xpu3.10n
linux-noble-xpu-n-py3.10-clientlinuxx86_64xpu3.10n, client
linux-s390x-binary-manywheellinuxs390xbinary-manywheel
macos-py3-arm64macosarm643
macos-py3-arm64-distributedmacosarm643distributed
win-vs2022-cpu-py3winx86_64vs20223cpu
win-vs2022-cuda12.8-py3winx86_64cuda12.8vs20223
win-vs2022-xpu-n-1-py3winx86_64xpuvs20223n-1
win-vs2022-xpu-n-py3winx86_64xpuvs20223n

cc @huydhn

extent analysis

Fix Plan

To address the issue of managing multiple build environments, we can create a Python script to generate the necessary build environment configurations.

Step 1: Define the Distinct Field Values

Define the distinct field values in a Python dictionary:

distinct_values = {
    'OS': ['linux', 'macos', 'win'],
    'arch': ['x86_64', 'aarch64', 'arm64', 'riscv64', 's390x'],
    'accelerator': ['cuda12.8', 'cuda13.0', 'rocm', 'xpu'],
    'compiler': ['gcc11', 'gcc14', 'clang15', 'clang18', 'vs2022'],
    'python': ['3', '3.10', '3.12', '3.13', '3.14', '3.14t'],
    'variances': ['asan', 'bazel-test', 'binary-manywheel', 'build', 'client', 'cpu', 'cudnn9', 'cutlass-backend', 'debug', 'dist', 'distributed', 'distributed-b200', 'executorch', 'full-debug-build-only', 'gfx942', 'halide', 'libtorch', 'mi300', 'mi355', 'mobile-lightweight-dispatch-build', 'n', 'n-1', 'nightly', 'no-ops', 'onnx', 'pallas', 'pallas-tpu', 'slow-gradcheck', 'sm75', 'sm80', 'sm86', 'sm90', 'sm100', 'symm', 'triton-cpu']
}

Step 2: Generate Build Environment Configurations

Create a function to generate the build environment configurations:

import itertools

def generate_build_environments(distinct_values):
    build_environments = []
    for os in distinct_values['OS']:
        for arch in distinct_values['arch']:
            for accelerator in distinct_values['accelerator'] + ['']:
                for compiler in distinct_values['compiler']:
                    for python in distinct_values['python']:
                        for variance in distinct_values['variances'] + ['']:
                            build_environment = f"{os}-{arch}-{accelerator}-{compiler}-{python}-{variance}"
                            build_environment = build_environment.replace('--', '-').replace('--', '-').rstrip('-')
                            build_environments.append(build_environment)
    return build_environments

build_environments = generate_build_environments(distinct_values)

Step 3: Filter and Refine the Build Environment Configurations

Refine the generated build environment configurations to match the required format:

refined_build_environments = []
for build_environment in build_environments:
    parts = build_environment.split('-')
    os = parts[0]
    arch = parts[1]
    accelerator = '' if len(parts) < 3 or parts[2]

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING