Observed in #1969, run 35740440549: cpp/src/mip_heuristics/diversity/population.cu alone took 1h52m47s to compile (14:53:28→16:46:15 UTC) once its sccache key was invalidated by an unrelated header-only change in cpu_routing_problem.hpp. The rest of the 474-target build finished in minutes; this one file was the critical path for the whole job.
Compiled for 7 architectures in one nvcc invocation: sm_75, 80, 86, 90a, 100f, 120a, 120, with --expt-extended-lambda --expt-relaxed-constexpr -O3 -lineinfo.
Worth investigating:
- Is this file unusually template-heavy for what it does?
- Could it be split into smaller translation units to compile in parallel instead of one monolithic unit?
- Does it need all 7 archs, or could some be dropped/deferred?
A single unrelated header touch shouldn't be able to add ~2h to CI turnaround via one file.
🤖 Generated with Claude Code
Observed in #1969, run 35740440549:
cpp/src/mip_heuristics/diversity/population.cualone took 1h52m47s to compile (14:53:28→16:46:15 UTC) once its sccache key was invalidated by an unrelated header-only change incpu_routing_problem.hpp. The rest of the 474-target build finished in minutes; this one file was the critical path for the whole job.Compiled for 7 architectures in one nvcc invocation:
sm_75, 80, 86, 90a, 100f, 120a, 120, with--expt-extended-lambda --expt-relaxed-constexpr -O3 -lineinfo.Worth investigating:
A single unrelated header touch shouldn't be able to add ~2h to CI turnaround via one file.
🤖 Generated with Claude Code