cd /news/ai-infrastructure/meet-mkernel-a-multi-gpu-multi-node-… · home topics ai-infrastructure article
[ARTICLE · art-17393] src=marktechpost.com pub= topic=ai-infrastructure verified=true sentiment=· neutral

Meet mKernel: A Multi-GPU, Multi-Node Fused Kernel Library for GPU-Driven Communication

Researchers from UC Berkeley's UCCL project released mKernel, a library of persistent CUDA kernels that fuse intra-node NVLink communication, inter-node RDMA, and compute into a single kernel to address GPU communication overhead. The project cites data showing communication consumes up to 43.6% of forward pass time and 47% of total execution time in Mixture-of-Experts models. mKernel replaces host-driven communication with GPU-driven networking to eliminate microsecond-scale orchestration overhead and enable finer-grained overlap between compute and communication at the tile or chunk level.

read5 min publishedMay 29, 2026

GPU communication overhead is a measurable bottleneck in production AI workloads. According to data cited by the mKernel project, communication can consume 43.6% of the forward pass and 32% of end-to-end training time. Across popular Mixture-of-Experts (MoE) models, inter-device communication can account for up to 47% of total execution time. Researchers from UC Berkeley’s UCCL project have released mKernel, a library of persistent CUDA kernels that fuse intra-node NVLink communication, inter-node RDMA, and compute into a single kernel.

The Problem: Host-Driven Communication

The standard model for multi-GPU communication is host-driven: the CPU runs the control path and calls into a library like NCCL or NVSHMEM. The library issues the collective operation — an AllReduce, an AllGather, etc. — across GPUs. Compute and communication run on separate CUDA streams and overlap at kernel boundaries.

The research team identifies two problems with this approach:

(1) CPUs are not scaling with GPU compute. A GB300 NVL72 rack integrates 72 Blackwell Ultra GPUs and 36 Grace CPUs, delivering 720 PFLOP/s FP8/FP6, 1.44 EFLOP/s FP4 Tensor Core performance, and 130 TB/s of all-to-all intra-rack NVLink bandwidth. At those speeds, microsecond-scale host orchestration overhead — a cudaLaunchKernel

call, a CPU-side “all writes done” check, an inter-stream event — shows up directly as pipeline bubbles.

(2) Host-driven systems overlap compute and communication at coarse kernel boundaries. Finer-grained overlap at the tile or chunk level is not possible from the host side.

The alternative is GPU-driven communication: the GPU itself triggers transfers, with communication fused into the same kernel as the compute. Most existing fused kernel libraries operate within a single node, or a single GPU. mKernel targets the multi-node case.

What mKernel Does

mKernel is a library of persistent CUDA kernels. Each kernel fuses intra-node NVLink communication, inter-node RDMA, and dense compute into a single kernel.

Multi-GPU + multi-node, in one kernel: Both intra-node NVLink and inter-node RDMA live inside the same persistent kernel.

Fine-grained intra-kernel overlap: Compute and communication overlap at tile/chunk granularity, covering both intra-node and inter-node GPU communication.

Persistent kernel with SM specialization: CTAs self-assign roles: compute

, intra-comm

, inter-send

, inter-reduce

. The number of SMs dedicated to each role is tunable per shape.

GPU-driven networking built on libibverbs: mKernel uses GPU-initiated RDMA writes without depending on NCCL or NVSHMEM. The communication backend is written from scratch to maximize performance and support heterogeneous networking devices.

The Five Fused Kernels

Kernel What it fuses Description
AllGather + GEMM AllGather → GEMM Each rank holds a shard of A . While ranks gather peers’ shards over NVLink/RDMA, the local GEMM consumes tiles as soon as they arrive.
GEMM + AllReduce GEMM → AllReduce Computes C = A @ B and reduces partial outputs across all ranks in one launch. Output tiles are pushed into the reduction tree the instant they’re produced.
MoE Dispatch + GEMM All-to-All dispatch → grouped GEMM Routes MoE tokens to their expert ranks (intra-node NVLink + inter-node all-to-all) and runs the per-expert grouped GEMM in the same kernel. Tokens are processed as soon as they land — no staging buffer round-trip.
Ring Attention Ring KV exchange → FlashAttention Sequence-parallel attention across ranks. Each step rotates a KV chunk around the ring while the local FlashAttention consumes the previously-received chunk. Compute and the ring send/recv run concurrently inside a single persistent kernel.
GEMM + ReduceScatter GEMM → ReduceScatter Computes C = A @ B and reduce-scatters the output. Each output tile is reduced and forwarded to its owning rank as soon as it is produced.

Evaluation Setup

The research team evaluated mKernel on two 2-node × 8-H200 clusters that differ only in their inter-node fabric:

Testbed Nodes × GPUs Intra-node Inter-node transport NIC
AWS EFA 2 × 8 H200 NVLink AWS EFA / SRD 16 × 200 Gb/s EFA per node
ConnectX-7 2 × 8 H200 NVLink InfiniBand 8 × 400 Gb/s NVIDIA ConnectX-7 per node

mKernel was benchmarked against NCCL, Triton-distributed, Flux, Mercury, MagiAttention, Transformer-Engine, and ring-flash-attention. The team notes that further benchmarking at larger scale is still in progress.

Backends and Requirements

mKernel supports two networking backends:

Backend Macro Transport Where it runs
CX7 -DINTERNODE_BACKEND_IBVERBS libibverbs RC ConnectX-7 / InfiniBand / RoCE

EFA | -DINTERNODE_BACKEND_EFA | libibverbs + efadv (SRD) | AWS p5/p5e (H200, EFA) | Both backends share the same host-side API and the same on-GPU kernel. Only the proxy/session implementation differs (session.h

for CX7, `session_efa.h`

for EFA). Requirements: NVIDIA Hopper GPUs (default build targets `sm_90a`

), CUDA 12.9, Python with PyTorch. The CX7 backend requires libibverbs development headers and libraries. The EFA backend requires AWS EFA installation with libfabric, libibverbs, efadv, and EFA headers under EFA_HOME=/opt/amazon/efa

by default.

Marktechpost’s Visual Explainer

Key Takeaways

  • mKernel fuses intra-node NVLink, inter-node RDMA, and compute into a single persistent CUDA kernel.
  • Communication overhead accounts for up to 47% of execution time in MoE models per cited production data.
  • Five kernels are included: AllGather+GEMM, GEMM+AllReduce, MoE Dispatch+GEMM, Ring Attention, and GEMM+ReduceScatter.
  • GPU-initiated RDMA is implemented directly via libibverbs

— no NCCL or NVSHMEM dependency. - Currently requires Hopper GPUs ( sm_90a

) and ConnectX-7 or AWS EFA networking; Blackwell support is on the roadmap.

Check out the ** Repo **and

Also, feel free to follow us on

Technical Details.and don’t forget to join ourTwitter and Subscribe to

[150k+ ML SubReddit](https://www.reddit.com/r/machinelearningnews/)**. Wait! are you on telegram?**

[our Newsletter](https://www.aidevsignals.com/)

now you can join us on telegram as well.Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us

── more in #ai-infrastructure 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/meet-mkernel-a-multi…] indexed:0 read:5min 2026-05-29 ·