A question with no single right answer A production model is too slow. The standing meeting fills with diagnoses. The ML team says the platform team should provision better hardware. The platform team says the ML team’s model is inefficient. Procurement says the hardware specs are what was approved. The infrastructure team says the application’s batching is wrong. Each diagnosis is partly correct and entirely incomplete, and the meeting ends with the assignment “investigate further” — assigned, in practice, to no team in particular. The pattern recurs because AI performance is a property of the AI Executor, and the executor spans organizational boundaries that no single team owns. Asking whose problem the slowness is — as if it must belong to one team — is the wrong shape of question. The right shape is: which team owns each layer of the executor, which layers are contributing to the slowdown, and how do those teams collaborate without throwing the diagnosis over the wall. In our experience with cross-team performance triage, the loop breaks not when one team is finally assigned blame, but when the teams agree on a shared measurement they all trust. Until then, every meeting reconstructs the same disagreement. Why is AI performance attribution structurally hard? The AI Executor that produces the workload’s actual performance has multiple layers, each owned by a different team in most organizations: Executor layer Typical team owner Application code, model architecture ML / research Model serving framework ML platform / MLOps Inference runtime, kernel libraries ML platform / engineering Framework version, dependency versions Platform / SRE OS, driver, system libraries Infrastructure / SRE Accelerator hardware Infrastructure / hardware engineering Procurement of the hardware Procurement / finance Cooling, power, data-center infrastructure Facilities Workload demand, SLO definition Product / business A performance issue can originate in any of these layers, and an issue in one layer routinely manifests as a symptom in another. A model whose architecture loads memory inefficiently (ML layer) shows up as low GPU utilization (platform symptom). A driver version that interacts poorly with a framework’s vendored CUDA or cuDNN build (infrastructure layer) shows up as a throughput regression after a rebuild (platform symptom). A cooling under-provision (facilities layer) shows up as throttled clocks during peak hours (infrastructure symptom). The team that sees the symptom is usually not the team that owns the cause. The structural consequence is that single-team attribution is unreliable as an observed pattern across engagements. A diagnosis that ends “it’s the hardware team’s problem” or “it’s the model’s fault” is asserting attribution that the diagnostic process didn’t actually establish. The conversation has produced a verdict without producing evidence. Why hardware upgrades rarely fix software-bound systems A common procurement response to AI performance complaints is to buy more or better hardware. The pattern has a defensible rationale — more capacity for unmistakably overloaded systems — and a frequent failure mode: buying capacity for a system that isn’t capacity-limited. A workload bottlenecked by data movement, batching policy, kernel-launch overhead, or precision configuration does not improve when the accelerator is upgraded. The bottleneck moves with the workload, not with the silicon. A faster GPU running the same inefficient batching pipeline produces roughly the same throughput, with new hardware sitting underutilized for the same reason the previous hardware was. The procurement spend produces no measurable performance improvement — which, from an ROI standpoint, is a worse outcome than the absence of spend. The diagnostic that distinguishes a hardware-bound from a software-bound performance issue is the kind of work benchmark methodology is for: measure the workload at the production saturation point, characterize where time is spent (PyTorch profiler, NVIDIA Nsight, kernel-level traces from TensorRT or Triton Inference Server), identify the dominant bottleneck, and only then make the hardware-versus-software remediation decision. A procurement decision that skips this step is buying an option whose value is contingent on assumptions the diagnostic has not tested. A quick diagnostic checklist before approving the hardware spend Before approving the upgrade, the procurement-engineering interface should be able to answer all five: What is the measured throughput of the workload at the production saturation point on the current hardware? Where in the executor is time being spent — compute, memory bandwidth, host-device transfer, kernel launch, or framework overhead? If the bottleneck is software-shaped (batching, precision, kernel selection, framework version), what is the expected gain from the proposed hardware swap relative to the gain from fixing the software bottleneck? On a representative test instance of the proposed hardware, does the same workload actually achieve higher saturation throughput, or does it sit at the same utilization ceiling? Who runs the re-measurement after the swap, and against what baseline? If three or more of these are unanswered, the hardware decision is being made without a diagnostic. Performance engineering as a discipline, not a role The pattern that escapes the cross-team blame loop is to treat performance engineering as a discipline that no single team owns exclusively but in which all relevant teams participate. The discipline has three components: Measurement. Instrumented benchmarks of the production workload on the production AI Executor, run on a schedule, with results any team can interrogate. The measurement is the shared substrate; without it, the diagnostic conversation has no common reference. Attribution. A method for decomposing observed performance into contributions from each executor layer — profiling tools, framework-level breakdowns, kernel-level traces, GPU-utilization timeseries correlated with request traces. The attribution makes “who owns the bottleneck” answerable rather than rhetorical. Cross-stack iteration. A loop in which the team owning the identified bottleneck makes a change, the change is re-measured, and the result is reflected back into the shared measurement. This is the iteration discipline that produces accumulated improvement, as distinct from one-off heroics that don’t compound. The discipline is cross-team because the executor is cross-team. It is sustained because the workload mix and software stack continually shift — a model retrain, a framework upgrade, a driver bump, a traffic-pattern change can each reset the bottleneck. The benchmark methodology is the contract that lets the discipline operate without re-litigating the measurement basis every time. Benchmarks as the cross-team measurement contract When teams agree on what the benchmark measures, how it is run, and what the results mean, the benchmark becomes a cross-team contract. Performance discussions then proceed against shared evidence rather than competing intuitions. A throughput regression after a driver upgrade is no longer a contested narrative — it’s a measurement that re-runs and reproduces, which the teams can investigate jointly because they trust the shared instrument. The contract has to be neutral with respect to which team’s work it favors. A benchmark the platform team owns and the ML team distrusts cannot be the cross-team contract, because the ML team will — correctly — suspect that the methodology embeds platform-favorable assumptions. The methodology must be agreed in advance, applied uniformly, and re-runnable by anyone with executor access. That disclosure-and-reproducibility property is what distinguishes a benchmark methodology from a benchmark score: a score is the output of one run, a methodology is the contract that any team can re-execute. This is the operational expression of cross-boundary ownership: performance is owned across the boundary, and the cross-boundary ownership only functions with shared measurement infrastructure none of the teams can dispute on principle. What signals the problem belongs to the whole stack? A handful of recurring signals indicate the slowness is a stack property rather than a single-team property. Each, on its own, can be misread as belonging to one layer; together, they are diagnostic of cross-layer entanglement. Symptoms appear after a change in a layer different from where the symptom shows up (driver bump → ML latency spike). GPU utilization is consistently moderate but throughput is below expectation — a classic software-bound signature even with new hardware. Each team’s local instrumentation shows their layer “fine,” yet end-to-end latency or throughput violates the SLO. Hardware swaps yield smaller-than-expected improvements, or none. The same workload behaves differently across nominally identical instances, suggesting NUMA, PCIe topology, or NVLink configuration variance. When two or more of these co-occur, the problem is stack-shaped, and any single-team remediation will only move the bottleneck rather than resolve it. ## The framing that helps AI performance failures cross organizational boundaries because the AI Executor crosses them. Single-team attribution is structurally unreliable. Hardware upgrades do not fix software-bound systems. Performance engineering is a cross-team discipline whose operation depends on shared, neutral, reproducible measurement — which is the role a benchmark methodology occupies when it is treated as a contract rather than as a score. LynxBench AI is designed as the cross-team measurement contract: the AI Executor is fully specified, the methodology is reproducible, and any team can re-run the same measurement on the same configuration to verify or contest a result. That is the property that lets the cross-team performance-engineering discipline operate against shared evidence instead of competing narratives. Which layer of the hardware-software stack — kernel, runtime, scheduler, application — does the latency you are debugging actually sit on, and can another team reproduce that finding against the same AI Executor specification?