Vincent Zhong

I make large models run well on real GPUs.

I study computer engineering at the University of Waterloo. Most of my work is in SGLang, on the kernels, schedulers, and caches that decide how fast a model runs once it is served.

This summer I was a GPU inference intern at Liquid AI in San Francisco, where I brought Liquid's new hybrid models up in SGLang, vLLM, and llama.cpp and made them fast to serve. I also built a custom production stack for serving an LFM at low latency for a semantic-ID use case, from the kernels and the C++ engine up to the serving layer (a writeup is coming soon), and chased down performance and correctness problems across the stack, on NVIDIA and AMD GPUs alike. Before that I worked on search at Shopify.

I like problems where you have to understand the model and the hardware at the same time: low-precision numerics, speculative decoding, and the overhead that hides between kernels. I measure before I believe, and I write up the experiments that failed along with the ones that worked.

Red golden retriever puppy resting with plush toys

Work experience

Liquid AI

May–Aug 2026

ML Engineer Intern, GPU Inference

Brought Liquid's new hybrid models up in SGLang, vLLM, and llama.cpp, then made them fast to serve. Built a custom low-latency production stack for a semantic-ID use case, from kernels to serving.

SGLang

2025–present

Open-source Contributor

New model support and serving speed: speculative decoding, fused kernels, prefix caching for hybrid models, and the correctness bugs found on the way.

Shopify

Sep–Dec 2025

ML Engineer Intern, Search

Used LLMs to correct typos and rewrite queries for Shop.app search. The best version raised search relevance by 2% in A/B tests.

Projects

AxionML

Quantized checkpoints of Qwen3.5, Gemma 4, and Kimi K2.5 that load straight into SGLang. They have been downloaded more than two million times.

GEMM³

An NVFP4 matrix multiply for the B300, written in CuTe DSL. At 9.23 PFLOP/s it beat the seven other implementations I benchmarked, cuBLASLt, cuDNN, and CUTLASS among them.

causal-conv1d-cute

The short causal convolution inside hybrid models, rewritten in CuTe DSL and tuned shape by shape for the B300. It installs with pip and plugs into SGLang.

vLLM × SGLang benchmarks

369 runs of vLLM and SGLang on the same GPUs and workloads, and writeups of the 20 bugs that turned up along the way.

Paper Graph

A reading map of 2,154 paper summaries, arranged by date, by topic, and by which paper builds on which.

magic-trace silently dropped GPU kernels that overlap through PDL, so traces showed less work than the GPU did. This Perfetto build keeps them. Perfetto fixed the same bug upstream in v57.

GDN-3 ablations

Does diagonal preconditioning improve the memory update in Gated DeltaNet-2? Five variants, paired runs, from 200M to 1.3B parameters. It doesn't.

Interactive diagrams of how data moves through a model, for when reading the modeling code is too slow.

cs336-a1-sol

How low can a language model trained on OpenWebText in 45 minutes on one GPU go? Stanford CS336's leaderboard task, measured on a B200: 2.957 validation loss, against 3.035 for the best entry. It uses outside kernels the rules forbid, so it measures the ceiling rather than competing.

decontaminate

Python bindings for AI2's Rust tool that checks whether a benchmark leaked into a model's training data.

In progress

Not finished, not published yet.

MoE gate kernel

DeepGEMM's fused router GEMM and top-k, rewritten in CuTe DSL. On DeepSeek-V4 shapes it beats every other kernel at small and medium token counts, and still loses at large ones.

MegaMoE tuning

Tuning FlashInfer's MegaMoE kernel at DeepSeek-V4-Pro shapes with IKET, an experimental profiler that records events from inside the kernel. It is within a few percent of DeepGEMM, and the rest of the gap is now mapped.

Kept KV in async RL

In asynchronous RL, new weights can arrive in the middle of a rollout. What does it cost to keep the old KV cache instead of recomputing it? Measured bit-exactly on Qwen3.5-9B over about 24M tokens.

Vera Rubin kernel corpus

The public source code for NVIDIA's next GPU architecture, SM107, collected and compared against Blackwell to find what changes for people who write kernels.