# Your GPU Neighbor Can Hear Your Model

Branislav Brzak · AI Engineer NYC 2026 · October 13

[Watch recording](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14494s)

[04:01:34](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14494s) Hello everyone, this talk is about the danger of your LLMZ formation leaking through shared

[04:01:39](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14499s) GPU hardware.

[04:01:40](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14500s) If you're running a model in the cloud on a GPU you share with other tenants, someone

[04:01:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14504s) next to you can learn things about it.

[04:01:46](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14506s) They can tell what model you're running, how fast it's responding, and even what kind

[04:01:50](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14510s) work is doing right now, all without touching your data, just by watching timing. That's what

[04:01:55](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14515s) this talk covers, what I quote tenets on the same hardware can learn about your LLM from timing alone

[04:02:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14520s) and what you can do about it. To start, I'm Branislav Brzak, a cyber security researcher employed

[04:02:07](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14527s) at Stealthium. At Stealthium we specialize in securing and providing observability into the environments

[04:02:13](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14533s) AI systems run on. My area of focus is low-level GPU-related security research. That's something

[04:02:19](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14539s) these stock covers. When you share a GPU between tenants, you would expect full isolation, but

[04:02:26](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14546s) the isolation provided may not prove to be sufficient. In the case of this attack, the

[04:02:30](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14550s) attacker doesn't even need any special permissions like root access. It doesn't need any traditional

[04:02:35](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14555s) exploit either. The only thing it does is time the parts of the hardware that are still shared among

[04:02:40](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14560s) tenants. This is a demonstration video of what the victims and the attackers dashboards look like.

[04:02:47](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14567s) On the left, we have Qwen3 model doing inference.

[04:02:50](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14570s) On the right, the attacker uses a side channel that Qwen3 leaks into as it's running.

[04:02:56](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14576s) From that, it determines exactly what model it is and what kind of text it's producing right now.

[04:03:03](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14583s) These are just the headline claims, but not the whole story.

[04:03:06](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14586s) We can tell which model it is, architecture and depth, with the 97% accuracy.

[04:03:11](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14591s) We can tell how fast is the coding, with the 99.3% accuracy.

[04:03:15](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14595s) We can tell when and how much, the busy periods, token counts, and the answer length.

[04:03:20](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14600s) What we can tell what kind of work it's doing, code, pros, JSON, or retrieval.

[04:03:27](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14607s) What we cannot tell though are the actual prompt, answers, or contents, just timing.

[04:03:33](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14613s) And all of this on real H100s serving real LLMs.

[04:03:38](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14618s) If you're using NVIDIA hardware, GPU isolation is achieved using multi-instance GPU or MIG

[04:03:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14624s) for short.

[04:03:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14624s) Each isolated MIG slice has its own physical compute units and dedicated VRAM that provides

[04:03:51](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14631s) hardware isolation on those parts.

[04:03:54](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14634s) In our example, the LLM we are serving runs on a slice with 3 compute units and 40 GB

[04:03:59](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14639s) of VRAM.

[04:04:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14640s) The attack runs on just one compute unit and 10 GB of VRAM.

[04:04:06](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14646s) What's isolated are compute units, memory capacity, bandwidth quotas, and faults and errors.

[04:04:11](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14651s) The L2 cache is partitioned per instance too.

[04:04:14](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14654s) There is no cross-instance eviction.

[04:04:16](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14656s) So it's not shared in that sense.

[04:04:18](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14658s) The actual leaks are memory barriers or members, which are GPU-wide.

[04:04:23](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14663s) One instance's barrier still touches every L2 partition on the card.

[04:04:28](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14668s) Timing is the one thing that isn't isolated.

[04:04:31](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14671s) So when one tenant is busy, the other tenant's own reads get slightly slower.

[04:04:36](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14676s) The key point is that a GPU-wide memory barrier takes effect in every L2 partition on the card.

[04:04:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14684s) The next slide builds the whole attack on that one fact.

[04:04:49](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14689s) The vector is that the attacker only ever reads its own memory.

[04:04:54](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14694s) It only times its own reads, it never touches the victim's memory.

[04:04:57](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14697s) There are three steps. Load from its own small buffer, time the load, and repeat every 5 microseconds.

[04:05:03](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14703s) This primitive and the MIG member leak itself isn't our discovery.

[04:05:08](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14708s) That goes to the researchers behind behind bars at using security.

[04:05:13](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14713s) A big thanks for their work.

[04:05:17](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14717s) Now try looking at the timing differences.

[04:05:20](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14720s) With the naked eye comparing your tenant idle versus serving an LLM, you wouldn't even be able to discern them.

[04:05:26](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14726s) The median latency is only 3 microseconds higher.

[04:05:29](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14729s) To the attacker though, those 3 microseconds are all it needs.

[04:05:34](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14734s) enough to gather all the information we already talked about.

[04:05:39](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14739s) Qwen3 with 8 billion parameters is running on the victim's slides throughout this one.

[04:05:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14744s) All captured data was taken from a live model.

[04:05:47](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14747s) At the top is GPU activity over time, 1 burst per token.

[04:05:51](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14751s) Below is the frequency spectrum of the attacker's own latency trace.

[04:05:54](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14754s) There is a fundamental 881Hz which is just tokens per second plus harmonics, since each

[04:06:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14760s) token is a mix of distinct frequencies, not one clean one.

[04:06:07](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14767s) This is a real trace, one token in the time domain.

[04:06:10](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14770s) The token shows a total of 39 bumps.

[04:06:14](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14774s) bumps with green peaks are the layer invocations, while orange ones are additional between layer

[04:06:20](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14780s) processing.

[04:06:20](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14780s) In a later slide we will demonstrate how we determine the actual layer counts even though

[04:06:26](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14786s) those extra bumps are present.

[04:06:29](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14789s) we look at the decode speed itself.

[04:06:31](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14791s) Just by timing we found the token rate completely bind.

[04:06:35](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14795s) So speed alone is something an attacker can recover accurately.

[04:06:39](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14799s) But speed by itself isn't a clean fingerprint.

[04:06:42](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14802s) Qwen3 8 billion and Llama 3 8 billion decode only 1.6% apart in their token rate.

[04:06:48](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14808s) So from speed alone you'd think they're the same model.

[04:06:52](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14812s) It narrows things down but it doesn't nail it.

[04:06:54](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14814s) We need something sharper, layer counts.

[04:06:57](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14817s) That's what the next few slides get into.

[04:07:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14820s) We use the same fold and average tick from before.

[04:07:04](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14824s) This time we run it once per model instead of once per token.

[04:07:08](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14828s) What comes out is a bit count that lands almost exactly on a whole number.

[04:07:12](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14832s) The mean distance from an integer across 22 traces is just 0.028.

[04:07:19](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14839s) That's the tell.

[04:07:20](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14840s) If this were just a fixed hardware artifact divided by different token rates, it'd expect

[04:07:26](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14846s) fractions, not whole numbers.

[04:07:27](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14847s) Each count works out to the model's layer count plus 1 to 3 additional peaks.

[04:07:36](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14856s) model keeps its own signal fingerprint.

[04:07:39](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14859s) A mix of tempo and harmonic structure.

[04:07:41](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14861s) To be clear, this is not a trained machine learning classifier.

[04:07:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14864s) There's no training set, no labels, no configuration.

[04:07:47](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14867s) It's under 30 lines of code.

[04:07:49](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14869s) The method checks each candidate's depth from 16 to 48.

[04:07:53](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14873s) It measures how strongly that depth's expected signature shows up in the real trace.

[04:07:59](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14879s) Then it picks which are of its best.

[04:08:01](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14881s) For Qwen3, 8 billion 36 layers wins Cleary by 4.0 times over the next candidate.

[04:08:07](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14887s) Because this is a best fit test, not a lookup table,

[04:08:10](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14890s) it also works on models it never seen before.

[04:08:13](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14893s) That includes proprietary on unreleased ones,

[04:08:16](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14896s) since there's nothing it needs to have seen in the first place.

[04:08:25](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14905s) And this works surprisingly well.

[04:08:27](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14907s) The layer fit classifier also outputs the confidence level.

[04:08:31](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14911s) Across R testing, only two least confident answers

[04:08:35](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14915s) ended up being wrong ones.

[04:08:39](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14919s) This same method also picks up fine tunes and distillations that share the same base

[04:08:44](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14924s) model.

[04:08:45](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14925s) That's because the architecture and layer count carry over unchanged.

[04:08:50](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14930s) Take three related models as an example.

[04:08:53](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14933s) Llama 3 8 billion from meta has 32 layers.

[04:08:56](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14936s) Llama 3.1 8 billion also from meta uses that same 32 layer backbone with minor upgrades.

[04:09:02](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14942s) A R1 distilled Llama 8 billion from DeepSeek is an improvement on top of that.

[04:09:08](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14948s) The per-layer timing comes out to only 1.6 nanosecond median latency shifts of each other.

[04:09:16](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14956s) The rest of the signal looks the same.

[04:09:19](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14959s) Regardless of this, our classifier is still able to discern between them.

[04:09:24](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14964s) Now we ask a deeper question on the same channel.

[04:09:26](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14966s) Not which model, but what is doing right now.

[04:09:29](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14969s) We look at four workflow types.

[04:09:31](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14971s) Prose, code, JSON, and retrieval.

[04:09:34](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14974s) We give a workload on every half second based on the last five seconds of timing.

[04:09:39](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14979s) Out of 40 half-second workloads 31 were right.

[04:09:42](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14982s) And four full responses were correctly identified by majority votes.

[04:09:48](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14988s) This is the same classifier from the video earlier misses included.

[04:09:53](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14993s) One condition is worth stating.

[04:09:55](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14995s) This was measured with speculative decoding turn-on.

[04:09:58](https://www.youtube.com/watch?v=akEqiXFo3GM&t=14998s) That's an opt-in in vLLM,

[04:10:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15000s) not the default. Here's the mechanism. How predictable the text is changes how many drafted tokens get accepted at each step. That changes step time and that's the signal we're picking up. We tested 11 configurations, dense and mixture of experts, BF16 and FP8. The same figure page showed up every time, just at very different strengths.

[04:10:22](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15022s) 17.2% spread on GPT OSS 20 billion vs 0.9% on GLM-4-9B.

[04:10:30](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15030s) 10 out of 11 round pros fastest when the chance alone would only give you 1 in 4.

[04:10:34](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15034s) So say the attacker already knows the model from the earlier slides and specular the recording

[04:10:40](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15040s) happens to be on.

[04:10:42](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15042s) It can also tell what kind of text is coming out.

[04:10:45](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15045s) Now we take the Shadeship out of the picture entirely.

[04:10:49](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15049s) MIG needs the attacker on the same physical die.

[04:10:52](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15052s) This attack doesn't. The setup here is an 8x H100 server connected over an NVSwitch fabric.

[04:11:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15060s) The victim runs tensor parallel across GPU 0 and 1. The attacker just needs any other GPU in that

[04:11:07](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15067s) same server, GPU 2 in this case. Peer access over NVSwitch is a real intended feature. It's

[04:11:14](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15074s) how multi-GPU jobs normally work, not a bug being abused. MIG tensor parallelism also can't coexist

[04:11:21](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15081s) on the same device. So this is really a different population of deployments, not just the same

[04:11:28](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15088s) attack repeated. The probe runs on GPU 2. It pointer traces memory that actually is on GPU 0

[04:11:36](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15096s) over NVLink, timing every hop along the way. An idle hop takes about 890 nanoseconds. Once the

[04:11:45](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15105s) victim starts working that climbs up to 300 microseconds.

[04:11:50](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15110s) These are three half-second captures and you can actually count the tokens by eye.

[04:11:58](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15118s) What we lose compared to MIG is the layer bit is below the noise at this

[04:12:03](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15123s) distance. So over-enviling the fingerprints we

[04:12:07](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15127s) were left with is mostly tempo, not layer count.

[04:12:12](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15132s) Here we test the five models on identical serving setup. Only the model itself gives away which one it is.

[04:12:19](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15139s) This method gives 79.2% accuracy. Now it fails exactly where you'd expect the tempo to fail.

[04:12:27](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15147s) LAMA 3.58 billion and R1D Steel are both 8 billion models that they code 3Hz apart.

[04:12:34](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15154s) So they blur together, where MIG's layer counts would have separated them easily.

[04:12:38](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15158s) The takeaway is that the NVLink signal-to-noise ratio is worse than MIGs, since it loses the

[04:12:46](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15166s) layer bit. But worse signal-to-noise ratio isn't the same as safety. 79% against the 20% baseline

[04:12:53](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15173s) is still a real fingerprint, not noise. First, some good news. Our own product at work

[04:13:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15180s) caught the attack straight out of the box. Stealthium monitors every single kernel launch

[04:13:05](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15185s) across every GPU, analyzes suspicious workloads and runs them through a full alert pipeline,

[04:13:10](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15190s) which is something not every vendor can do. Here is what made this one stand out. A single

[04:13:16](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15196s) kernel relaunched about 3000 times, hitting the exact same 40 kilobytes of memory over and over

[04:13:23](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15203s) instead of moving to new data. Only one kilowatt of data was sent back to the CPU the entire time

[04:13:30](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15210s) because the timing itself was the payload, not the output.

[04:13:34](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15214s) In real terms, that is under 600 milliseconds start to finish with fewer than 50 tokens over reply.

[04:13:40](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15220s) We caught it before the response was ever half typed.

[04:13:47](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15227s) So, three takeaways.

[04:13:49](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15229s) First, placement is something operators actually control.

[04:13:52](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15232s) So do not put an untrusted tenant's MIG slice right next to sensitive model.

[04:13:58](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15238s) Second, know the trade-off.

[04:14:00](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15240s) MIG rules out peer-to-peer communication, meaning there is no tensor parallelism on

[04:14:05](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15245s) MIG.

[04:14:06](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15246s) Sharding over NVLink instead limits what leaks to timing alone rather than the layer accounts.

[04:14:13](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15253s) Third, watch the GPU itself.

[04:14:15](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15255s) Make sure the host infrastructure is actively verifying that no malicious workloads are running

[04:14:21](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15261s) on the hardware.

[04:14:22](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15262s) That's exactly what Stealthium does by catching these probes straight from the Chrome behavior.

[04:14:30](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15270s) Sharing a GPU means timing alone can give away the model, the speed, and the workload.

[04:14:35](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15275s) That's true even across NVLink, without needing any export at all.

[04:14:40](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15280s) Stealthium sees this happen in real time. Most organizations still don't have that kind of visibility.

[04:14:46](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15286s) Thanks again to the researchers of Behind Bars, this whole talk builds upon their work.

[04:14:52](https://www.youtube.com/watch?v=akEqiXFo3GM&t=15292s) Thank you all for watching.
