Skip to content

kernel-builder: provide NCCL >= 2.32 headers and UCCL as build dependencies (for DeepEP) #949

Open

Description

@moon-bot-app

Context

huggingface/kernels-community#1231 ports DeepEP 2.5.0 as kernels-community/deep-ep to support the upcoming deepep expert-parallel strategy in Transformers. Right now the port has to vendor some dependencies that kernel-builder should probably provide instead.

NCCL

  • DeepEP 2.5's host code uses GIN and EFA-GDA APIs from NCCL 2.31/2.32.
  • The torch that kernel-builder ships comes with NCCL 2.30.4. That's too old to build against.
  • As a workaround, the port builds headers from an NCCL Git checkout pinned at 12df1a11afad322be5a204a2db890161cbf8131d (2.32.3) and uses them only at build time. The extension does not link or ship its own NCCL; it uses the symbols PyTorch has already loaded.
  • Ask: make NCCL >= 2.32 headers available in kernel-builder, for example by bumping the NCCL that comes with torch or by adding NCCL as a build dependency in the Nix setup. Then the vendored headers can be removed from the deep-ep port.

UCCL (AMD / ROCm)

  • We also want DeepEP on AMD GPUs, using the UCCL EP headers.
  • Ask: check whether UCCL can be added as a kernel-builder dependency for ROCm builds. This needs Nix packaging.

Acceptance

  • kernel-builder exposes NCCL >= 2.32 headers to CUDA kernels, so deep-ep can drop its vendored NCCL headers
  • Decide whether UCCL should be a kernel-builder dependency for ROCm, and package it if so

Requested by Daniël de Kok - Slack thread - Agent trace

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions