Manpreet Singh Research
Work done at Embedded LLM Embedded LLM
COLM 2026 · Workshop on Deploying AI in Healthcare · San Francisco

Deploying Clinical Language and Vision-Language Models Where the Data Lives

An Energy‑Aware, Cross‑Vendor Protocol for On‑Premises Healthcare AI

Embedded LLM, Singapore

Accuracy gets a model published. Speed and cost get it deployed.

“Benchmark performance is a poor proxy for real-world readiness.”DAIH 2026 call for papers

So we stopped benchmarking the model and benchmarked the deployment.

Three years of inference work went to LLM serving: vLLM, SGLang, paged attention, continuous batching. Almost none of it reaches a pathology encoder, a protein or genomic model, or a bedside time-series monitor, because none of them generate tokens. They ship as research code, built to prove accuracy, and stay that way. The main lever a hospital has left is buying more hardware. The fix belongs upstream, with the lab that ships the model.

Time for one bedside risk update, end to end ICU model · PhysioNet 2012 · batch 32 · model held fixed
35×faster at the bedside, same outputs
Referenceas shipped
805 ms · one full heartbeat
Fused Tritonmedian
23 ms
50 ms bedside window
Figure 1. The old pipeline took one whole heartbeat (one R–R interval at 75 bpm ≈ 800 ms) to update. A 20 Hz early-warning system needs 50 ms. The fused pipeline takes 23 ms median, and its p99 of 44.6 ms is still inside the window. Outputs match the reference within 5 × 10−7.
35×faster at the bedside, 805 → 23 ms
½the energy per slide, 20.2 → 10.0 Wh
24 GBpeak memory fits a mid-range card
≤0.001change in AUC, 4 tasks × 5 seeds

01What the leaderboard leaves out

Accuracy is necessary, not sufficient. From paper to hospital or R&D lab, speed and cost per case decide whether a model gets used. DAIH asks whether clinical AI works, is equitable, and is safe. We turned those questions into four deployment metrics and measured them next to accuracy.

DAIH asksWe measuredResult
Is it accurate?Every leaderboard · necessary, not sufficientAccuracy / AUCunchanged, |ΔAUC| ≤ 0.001
Does it still work when it's fast?WorksFidelity-gated speedup35× bedside · 364 slides / shift
What does one case cost?EquitableEnergy per inference20.2 → 10.0 Wh / slide
Can it run where the data is?EquitableDeployment locality24 GB peak · NVIDIA or AMD
Does the evidence hold at our site?SafeCross-vendor reproducibilitynot always · see 07
Table 1. The first row is the one every leaderboard reports; the four below are ours. Deployment locality is a setting, not a score: the gain is in the code, so it holds on a rented cloud GPU or on-premises.

02Why chatbot speedups never reach these models

Chat-serving engines optimize the token-generation loop and the KV cache. These models never generate a token: a pathology encoder outputs embeddings, a binding model a score, an ICU model a risk. Their bottlenecks are domain-specific, and nothing built for chatbots touches them.

ModelThe bottleneckWhy chat tooling misses it
Pathology VLM encoderUNI, Virchow12,400 tiles per slideNo generation, no KV cache; per-tile attention and normalization
Protein LMESM-2, ProtBERT20 letters, on kernels built for 50K-token vocabulariesChat-shaped kernels waste time on trivial lookups
Genomic modelAlphaGenome, Enformer196K bases at once, batch 1Bandwidth-bound; standard attention tiles don't fit
ICU modelPhysioNet 201285% of latency is cleaning vitalsIt's preprocessing, not the model
Binding modelDualBindGPU→CPU→GPU every sampleScoring runs in NumPy on the CPU; see 07
Table 2. Where the time goes. In UNI itself, attention takes 46% of encode time, MLP and normalization 41%, patch embedding 6%.

03One file, two vendors, one gate

These models are memory-bound. Unfused, every step writes its result to GPU memory (HBM) and the next step reads it back. We fuse the slow steps into single kernels that keep intermediates in on-chip SRAM, written once in OpenAI Triton and compiled unmodified for NVIDIA and AMD, with weights and maths held fixed.

1source file, OpenAI Triton
2GPU vendors, NVIDIA and AMD
0per-vendor rewrites

The fidelity gate. A speedup is reported only if outputs match the reference: exact, or cosine ≥ 0.99999, and for pathology an AUC change of at most 0.001. Kernels that fail are excluded. Speed is never bought with silent quality loss.

Output matches reference✓ reported
Output differs✗ never reported
This belongs upstream: the lab that releases a model should ship it fast, the same way it ships it accurate. Hospitals can't write GPU kernels, and shouldn't have to. If the lab ships the fast version, every hospital gets it for free.

04A shift's worth of slides on one GPU

On the UNI pathology encoder, fusing attention, LayerNorm + Linear and patch embedding adds up to 1.33×, 1.58× and 1.64× in order of where the time is spent: 129.6 s → 79.1 s per slide. Bigger backbones gain more: ViT-S 1.42×, UNI 1.64×, Virchow 1.71×.

One GPUSlides / shiftWh / slideCost
NVIDIA H100reference22220.21.00×
NVIDIA H100ours364 (+64%)10.00.56×
AMD MI300Xreference22420.41.01×
AMD MI300Xours34810.60.58×
Table 3. UNI encoder, 8-hour shift, representative slide ≈ 12,400 tiles. Relative cost at $0.12/kWh against the H100 reference. Average board power drops from about 561 W to 455 W because there are fewer memory trips.

222 → 364 slides per shift is 1.64×: getting that with the code as shipped means buying about 64% more GPU. The optimization is worth most of an extra GPU, for every GPU you own. Same diagnosis: across CAMELYON16, TCGA-NSCLC, TCGA-CRC and TCGA-RCC, with an ABMIL head over five seeds, every AUC change is at most 0.001, and embedding cosine similarity is 0.9998.

05Inside the 50 ms bedside window

The old pipeline took one whole heartbeat. More than 85% of that delay was cleaning up irregularly sampled vital signs (over 30% missing), not running the model. We fused the whole time-aware interpolation into one kernel; its outputs match the unfused path within 5 × 10−7, so the model's predictions are unchanged.

PhysioNet 2012, batch 32ReferenceOursChange
End-to-end latency (median)805 ms23 ms35.7× lower
Tail latency (p99)> 800 ms44.6 msinside 50 ms
Interpolation step1.74–2.94 ms0.02–0.05 ms53.6–84.6×
Throughput125 samples/s10,316 samples/s82.8× higher
Energy per update, NVIDIA52.0 mJ5.6 mJ9.3× lower
Energy per update, AMD60.1 mJ7.2 mJ8.3× lower
Table 4. The ICU pipeline, model held fixed. The fused pipeline finishes faster than a single QRS complex (≈ 80–100 ms).

06Same source, six models, three GPUs

Models from Meta, DeepMind, NVIDIA and the Baker lab. All accurate. All shipped as research code. The same Triton source, with no per-vendor forks, and every result passes the fidelity gate.

ModelGPUSpeedupFidelity gate
Meta ESM-2 (8M)protein LMNVIDIA L443.1×cos > 0.99999
NVIDIA DualBindbindingAMD MI300X38.8×*exact (6 dp)
DeepMind AlphaGenomegenomic modelNVIDIA H1005.05×cos 0.99999997
NVIDIA DualBindbindingNVIDIA H1004.22×exact (6 dp)
Rostlab ProtBERTprotein LMAMD MI300X3.6×top-1 exact (12/12)
DeepMind Enformergenomic modelNVIDIA H1001.82×cos 0.99999825
Baker lab ProteinMPNNprotein designNVIDIA L41.51×exact sequence
DeepMind Enformergenomic modelAMD MI300X1.43×cos 0.99999967
Table 5. Against the reference code as shipped. Shading is log-scaled. * Inflated by a hidden CPU round-trip; see 07. ESM-2 reaches up to 74.7× on the longest sequences, with memory down 68.9%. In September 2026, Anthropic reported ~4× (≈ 1.6 to 2× with exact outputs) across 30+ open bio models, all on H100: the same thesis; we add AMD and clinical deployment metrics.

43.1× on ESM-2 is a domain mismatch: a 20-letter protein alphabet run through code built for 50K-token chat vocabularies. The honest floor is ProteinMPNN's 1.51×, whose time goes to geometric operations with no vendor-library equivalent.

07Ask what it does on the card you will actually run it on

A negative result. One model, identical source, not one line changed between vendors.

4.22×on NVIDIA H100
≠same code
9× apart
38.8×on AMD MI300X

Deployment evidence obtained at one site does not automatically transfer to another. The cause: DualBind's reference code copied results to the CPU for a NumPy score, every sample, then returned to the GPU. NVIDIA's runtime and prefetcher hid most of that cost; AMD exposed it (800 samples: 41.3 s reference vs 1.06 s fused). Corrected, the two vendors land within 1.4× of each other.

So the 38.8× is not evidence that AMD is faster: the reference code hid a cost that only one vendor exposed. A milder case shows the same thing: Enformer, same source, gets 1.82× on H100 and 1.43× on MI300X. This is one model in one implementation, and a simple GPU-resident rewrite would likely fix most of it. The claim is narrow: single-vendor testing can hide this.

Methods and limits

  1. Energy: UNI encoder on a single on-site GPU; board power sampled every 100 ms across the full encode, idle not subtracted, host CPU and cooling excluded.
  2. Baselines: speedups are against the reference PyTorch implementation, so they measure the headroom in code as shipped, which is what labs release and hospitals download.
  3. Data: public, retrospective cohorts (PhysioNet 2012 for ICU, batch 32, model held fixed). Not a clinical validation study; site validation is still needed.
  4. Kept separate: the paper also reports that swapping GRU-D for a state-space model adds +0.037 AUROC. That is a model change, not the kernel, and it is not counted here.

BibTeX

@inproceedings{singh2026deploying,
  title     = {Deploying Clinical Language and Vision-Language Models
               Where the Data Lives: An Energy-Aware, Cross-Vendor
               Protocol for On-Premises Healthcare {AI}},
  author    = {Manpreet Singh},
  booktitle = {LLM/VLM Deployment Opportunities and Risks in Healthcare},
  year      = {2026},
  url       = {https://openreview.net/forum?id=l5owp8UMxu}
}

More research

This is one piece of a broader line of work at Embedded LLM on portable, fused GPU kernels for biological and clinical foundation models, measured on both NVIDIA and AMD.

All research →

Let's stay in touch

I'm an undergraduate working on GPU kernels for scientific and clinical ML. Happy to talk about this work; questions and feedback are always welcome.