You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Build] / Docker images (also affects the prebuilt binaries — see #4105)
Describe the bug
The openroad binary shipped in the official openroad/orfs Docker images
executes an AVX-512 instruction somewhere in the CTS stage. On any CPU without
AVX-512 the flow runs normally through synthesis, floorplan, placement, and
post-placement resizing, then dies deterministically at the start of CTS:
This is not an "old hardware" problem: it reproduces on AMD EPYC 7542 (Zen 2,
2019 datacenter part) and EPYC Milan-class Kubernetes nodes. No AMD CPU before
Zen 4 (late 2022) has AVX-512, and Intel removed it from consumer parts from
Alder Lake on — so the images are unusable on a large fraction of modern
machines, failing with a message that (per #4105) gets read as user error.
Evidence that it is specifically the image build, and specifically AVX-512:
Every design fails identically at CTS in the image on non-AVX-512 hosts
(tested nangate45/gcd, nangate45/black_parrot, nangate45/mempool_group,
asap7/swerv_wrapper — tiny gcd traps ~2 s into clock_tree_synthesis).
The same image runs the same designs through CTS and detailed routing
without issue on Intel Xeon nodes that have AVX-512 (verified on 2 different
AVX-512 nodes vs 4 different non-AVX-512 nodes, both AMD and older hardware,
on the NRP Nautilus Kubernetes cluster).
A native build of the same ORFS commit (a5ff7ef7d, OpenROAD submodule 6b9d7fb806) on the same AVX-512-less EPYC 7542 host runs all of these
designs through the full flow with no issue (several hundred completed runs).
All flow stages before CTS run for hours in-image on the affected CPUs, so
the binary is not globally miscompiled — a specific code path reached first
in CTS (TritonCTS itself or a dependency kernel compiled with AVX-512,
e.g. an -march=native / build-host-autodetected object in the image build)
contains the offending instructions.
Issue #4105 reports the same signature (cts.tcl ... child killed: illegal instruction, 26Q1 prebuilt binaries) and went stale without a root cause —
this is very likely the same defect.
Expected Behavior
Official images/binaries should run on the x86-64-v3 baseline (AVX2) that the
rest of the binary already targets — either by compiling the whole image at a
portable -march, or using runtime dispatch for any AVX-512 kernels.
Environment
Images tested, both failing identically on the same host:
docker.io/openroad/orfs:latest as of 2026-07-25 (26Q3-209; its openroad
reports 26Q2-209-g0d9d73ffba) — fails at cts.tcl, 82 with the same
SIGILL, so current images are still affected.
Working hosts (same image, same commands): Intel Xeon nodes with AVX-512.
To Reproduce
On any machine whose /proc/cpuinfo has no avx512 flags (any AMD before
Zen 4, any Intel consumer CPU from 12th gen on):
docker run --rm docker.io/openroad/orfs:26Q3-54-ga5ff7ef7d bash -c \
'source ./env.sh; cd flow && make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk cts'
Fails in ~3 minutes total (~2 s into the CTS stage) with Error: cts.tcl, 83 child killed: illegal instruction. The same command on an
AVX-512 machine completes.
Subject
[Build] / Docker images (also affects the prebuilt binaries — see #4105)
Describe the bug
The
openroadbinary shipped in the officialopenroad/orfsDocker imagesexecutes an AVX-512 instruction somewhere in the CTS stage. On any CPU without
AVX-512 the flow runs normally through synthesis, floorplan, placement, and
post-placement resizing, then dies deterministically at the start of CTS:
This is not an "old hardware" problem: it reproduces on AMD EPYC 7542 (Zen 2,
2019 datacenter part) and EPYC Milan-class Kubernetes nodes. No AMD CPU before
Zen 4 (late 2022) has AVX-512, and Intel removed it from consumer parts from
Alder Lake on — so the images are unusable on a large fraction of modern
machines, failing with a message that (per #4105) gets read as user error.
Evidence that it is specifically the image build, and specifically AVX-512:
(tested nangate45/gcd, nangate45/black_parrot, nangate45/mempool_group,
asap7/swerv_wrapper — tiny gcd traps ~2 s into
clock_tree_synthesis).without issue on Intel Xeon nodes that have AVX-512 (verified on 2 different
AVX-512 nodes vs 4 different non-AVX-512 nodes, both AMD and older hardware,
on the NRP Nautilus Kubernetes cluster).
a5ff7ef7d, OpenROAD submodule6b9d7fb806) on the same AVX-512-less EPYC 7542 host runs all of thesedesigns through the full flow with no issue (several hundred completed runs).
the binary is not globally miscompiled — a specific code path reached first
in CTS (TritonCTS itself or a dependency kernel compiled with AVX-512,
e.g. an
-march=native/ build-host-autodetected object in the image build)contains the offending instructions.
Issue #4105 reports the same signature (
cts.tcl ... child killed: illegal instruction, 26Q1 prebuilt binaries) and went stale without a root cause —this is very likely the same defect.
Expected Behavior
Official images/binaries should run on the x86-64-v3 baseline (AVX2) that the
rest of the binary already targets — either by compiling the whole image at a
portable
-march, or using runtime dispatch for any AVX-512 kernels.Environment
docker.io/openroad/orfs:26Q3-54-ga5ff7ef7d(digest
sha256:a6140cf4dc568e10238356f67b9fd73b9074955eeda6f2ee126bc60f5d7fc3ac)docker.io/openroad/orfs:latestas of 2026-07-25 (26Q3-209; its openroadreports
26Q2-209-g0d9d73ffba) — fails atcts.tcl, 82with the sameSIGILL, so current images are still affected.
Milan-class and pre-AVX2 Kubernetes nodes (NRP Nautilus).
To Reproduce
On any machine whose
/proc/cpuinfohas noavx512flags (any AMD beforeZen 4, any Intel consumer CPU from 12th gen on):
docker run --rm docker.io/openroad/orfs:26Q3-54-ga5ff7ef7d bash -c \ 'source ./env.sh; cd flow && make DESIGN_CONFIG=./designs/nangate45/gcd/config.mk cts'Fails in ~3 minutes total (~2 s into the CTS stage) with
Error: cts.tcl, 83 child killed: illegal instruction. The same command on anAVX-512 machine completes.