Hotspot Delta and TIM Pump-Out: Reading the Thermal Interface from Two Sensors

|By Assurd Engineering Lab|The Playbook

A GPU reports more than one die temperature. The core temperature is a spatial average over several on-die sensors; the hotspot is the reading of the single hottest sensor. Most readers watch the first. This post is about the difference between the two, the hotspot delta, and why an Assurd certificate treats it as the primary telemetry signal for the health of the thermal interface material (TIM) between the die and the cooler.

Every definition below is the one the Kairoscope backend computes from the uploaded HWiNFO log (SOP-GPU-001 v1.1, Steps 3.2 and 3.3). The technician does not type it in.

Two sensors, one die

Heat leaves the die through the TIM into the cooler's base. Picture the die as a set of small regions jj, each dissipating power PjP_j and connected to the cooler base, at temperature TbT_b, through a local thermal resistance RjR_j (die, TIM and base in series). To first order each region sits at

Tj≈Tb+Pj Rj.T_j \approx T_b + P_j\,R_j .

The core sensor reports something close to an average of the TjT_j; the hotspot sensor reports their maximum. Their difference therefore depends on how unevenly the product PjRjP_j R_j is spread across the die. Two things make it uneven:

  1. Power density. Shader arrays, caches and I/O do not dissipate equally. That part of the spread is architectural: it differs between GPU designs and it is present on a brand-new card.
  2. TIM coverage. Where the interface is thin, even and fully wetted, RjR_j is low and nearly uniform. Where the interface has thinned out or left a void, RjR_j rises locally, and the region above it runs hotter.

Note what TbT_b does in this model: it adds to every region equally, so it cancels in a difference. A hotter room, a dustier heatsink or a slower fan raise the core and the hotspot together. The delta isolates the part of the thermal path that sits between the die and the cooler, which is the part a TIM failure changes.

TIM pump-out

A GPU under a gaming load does not run at one temperature. It heats up and cools down with every session, and the die, its package substrate and the cooler base expand and contract by different amounts as it does. The repeated relative motion and flexing squeeze a paste-type TIM outward, a little per cycle, from between the surfaces. This is pump-out.

It does not happen evenly. The middle of the die usually runs hottest and moves most, and the paste there has the furthest to travel to reach an edge, so the interface tends to thin from the middle first. In the model above, that raises RjR_j precisely where PjP_j is highest. The hotspot climbs. The core average climbs much less, because most of the sensors it averages still sit over intact interface.

That is why a card with a pumped-out TIM can show a perfectly ordinary core temperature. A core reading alone rewards the failure mode it should detect; the delta exposes it.

Hotspot delta

The hotspot delta at one sample is

ΔThs(t)=Thotspot(t)−Tcore(t).\Delta T_{hs}(t) = T_{\text{hotspot}}(t) - T_{\text{core}}(t) .

The certificate reports its steady-state value: the arithmetic mean of that difference over every sample that carries both readings in the inclusive window from 1500 s to 1800 s after the detected load start,

ΔThs,ss=1M∑i∈W(Thotspot,i−Tcore,i),W={ i:1500≤ti≤1800 s, both present },M=∣W∣.\begin{gathered} \Delta T_{hs,ss} = \frac{1}{M}\sum_{i \in W} \bigl(T_{\text{hotspot},i} - T_{\text{core},i}\bigr), \\ W = \{\, i : 1500 \le t_i \le 1800\ \text{s},\ \text{both present} \,\}, \\ M = |W| . \end{gathered}

Four details of this definition matter:

  • Load-relative time. t=0t = 0 is the detected load start, not the start of the log, so the 120 s idle pre-conditioning is never part of the window. How load start is detected, and why the window sits at the end of a 30-minute trace, is the subject of Thermal Time Constant and the 1800 s Trace.
  • Paired samples only. Each term is a difference taken at one instant. A sample with only one of the two readings is left out entirely, never paired with a reading from another second.
  • 1 s samples. HWiNFO logs every 1000 ms and the parser resamples the log to 1 s bins, so a complete window holds M=301M = 301 samples.
  • One decimal place. The stored value is rounded to 0.1 °C, and that stored value is the one the verdict and grade rules compare.

The window is the final five minutes of load, when the trace is as close to thermal equilibrium as it gets. A delta taken during warm-up mixes the interface with the transient of a heatsink that is still heating, and that transient differs from cooler to cooler.

Verdicts and grades

The delta sets the thermal verdict bands and gates the grade:

ΔThs,ss\Delta T_{hs,ss}Thermal verdict bandGrade effect
below 12 °CPASS_EXCELLENTPLATINUM-eligible
12 to below 18 °CPASS_ACCEPTABLEGOLD-eligible; wear noted
18 to 30 °CPASS_TIM_DEGRADEDcapped at BRONZE; mandatory disclosure
above 30 °Cno pass bandFAIL
  • PLATINUM requires a hotspot delta below 12 °C, and GOLD below 18 °C, alongside every other condition in SOP Step 5.2.
  • A delta from 18 °C to 30 °C is a disclosure requirement, not a quarantine: the card is certifiable at BRONZE only, the certificate states the TIM finding prominently and recommends a TIM replacement, and the technician must classify the flag as resolved-with-disclosure before the certificate can be issued.
  • Above 30 °C no pass band applies, and the Rules Engine grades the card FAIL.

The bands compare the stored, rounded value. A window mean of 17.96 °C is stored as 18.0 °C and falls in the degraded band; that is the documented rule, not an edge case to argue.

Core temperature is judged separately. A card that sustains more than 83 °C with the driver's THERMAL_LIMIT active is FAIL_THERMAL_THROTTLING, whatever its delta. And a card that hits its thermal limit rather than its power limit in an 18–26 °C lab has a cooling pathology worth investigating even when its reported temperatures look moderate.

Worked example

A trace runs its full 1800 s of load. During the steady-state window the hotspot sensor drops out for 21 seconds: those 21 samples carry a core reading but no hotspot reading. The other 280 samples carry both, with these differences:

SamplesThotspot−TcoreT_{\text{hotspot}} - T_{\text{core}}
16018.0 °C
12019.0 °C
21hotspot absent
301window total

The 21 incomplete samples are excluded, so M=280M = 280:

ΔThs,ss=160⋅18.0+120⋅19.0280=5160280=18.43,\begin{aligned} \Delta T_{hs,ss} &= \frac{160 \cdot 18.0 + 120 \cdot 19.0}{280} \\ &= \frac{5160}{280} = 18.43 , \end{aligned}

stored as 18.4 °C: PASS_TIM_DEGRADED, capped at BRONZE, disclosed.

Now the tempting mistake. Treat the missing readings as a delta of 0 and divide by all 301 samples:

5160301=17.14 → 17.1 ∘C.\frac{5160}{301} = 17.14 \ \to\ 17.1\ ^\circ\text{C}.

That number is in the acceptable band and GOLD-eligible. A sensor dropout, which says nothing at all about the TIM, would have hidden a degraded interface and turned a BRONZE cap into a GOLD-eligible card. This is why absent readings stay absent.

Test vector

160 samples at 18.0 °C and 120 at 19.0 °C, with 21 hotspot dropouts: the steady-state delta is 5160 / 280 = 18.4 °C (TIM degraded). Zero-filling the dropouts would give 5160 / 301 = 17.1 °C, which is wrong.

Absent data stays absent

The steady-state delta is only defined when the window exists and holds data:

  • A trace with less than 1800 s of load has no steady-state window. The delta is null, and the short trace is a blocking validation: the technician re-runs it. It cannot be overridden.
  • If the window holds no sample with both a hotspot and a core reading, the delta is null and the parser raises NO_HOTSPOT_CORE_SAMPLES_IN_1500_1800S.

A null delta is never replaced by an estimate, never defaulted to 0, and never interpolated from neighbouring samples.

What the delta cannot tell you

The hotspot delta is a strong signal, and still only a signal.

  • Architecture sets the baseline. Part of every delta is the die's own power-density spread. Two healthy cards of different designs can sit several degrees apart. That is why a delta is ranked against its own cohort (same SKU first) and a percentile is shown only when that cohort holds at least n=30n = 30 cards.
  • It does not locate the fault. A high delta says the die-to-cooler path is uneven. Pump-out is the usual cause, but uneven mounting pressure or a cooler that does not sit flat produce the same signature. The certificate reports the measurement; it does not open the card.
  • It is not a die map. One hotspot sensor reports one maximum. It says how hot the hottest region is, not where it is or how large.

The Step 3.6 thermal image complements the telemetry: a radiometric capture of the board from the backplate side, taken inside the steady-state window, with spot readings behind the die, the VRM and the memory. It is disclosure evidence. It never changes the thermal verdict, which comes from the logged delta.

Calibration status

Every threshold in this post is an engineering prior pending fleet calibration (n ≈ 300): the 12, 18 and 30 °C bands, the 83 °C core limit, the 1500–1800 s window and the 1800 s trace length. They follow from the physics above, not from a fitted population, and we do not describe them as empirical or statistically validated. Once the fleet holds roughly 300 certified cards, the bands will be reviewed against the observed distributions, and any change will be versioned in the SOP.

The definition itself, a mean of paired differences over a fixed load-relative window with absent readings excluded, is not a prior. It is arithmetic, and it will not change with calibration.

See it on a certificate

The sample certificate shows the hotspot delta as it appears on an Assurd certificate, with its verdict and its place in the grade reasoning. Its numbers are illustrative: they come from synthetic logs run through the production parser, not from a measured card.

Notation

SymbolMeaningUnit
ttTime since detected load starts
TcoreT_{\text{core}}Core temperature, spatial average of on-die sensors°C
ThotspotT_{\text{hotspot}}Hotspot temperature, single hottest on-die sensor°C
ΔThs(t)\Delta T_{hs}(t)Thotspot(t)−Tcore(t)T_{\text{hotspot}}(t) - T_{\text{core}}(t)°C
WW, MMWindow samples with both readings, and their count—
ΔThs,ss\Delta T_{hs,ss}Mean of ΔThs\Delta T_{hs} over WW, stored to 0.1 °C°C
PjP_j, RjR_j, TbT_bLocal power, local thermal resistance, cooler base temperatureW, K/W, °C