nixl

为分布式推理提供统一高速数据传输层

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 497 🐛 待处理 257 👀 关注 27
GitHub ↗
GitHub 星标 ★ 1328
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源库,免费使用

项目预览

nixl 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队ai-dynamo
定价模式🏷️完全免费
价格说明开源库,免费使用
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议NOASSERTION
主要语言C++
GitHub 星标★ 1328
上线时间2025-03-05 00:00:00
代码更新2026-10-23
仓库体积18.4 MB
本站数据更新2026-10-25
维护状态活跃
收录时间2026-10-25
浏览次数0

项目介绍

NIXL 是 NVIDIA 开源的推理数据传输库,面向大规模分布式推理与多存储/多加速器场景。它解决的是推理服务中 KV Cache、张量数据在 GPU 显存、主机内存、本地与远端存储之间高效搬运的问题,避免各后端重复造轮子。核心能力包括:统一的传输抽象接口,屏蔽不同存储与网络后端差异;支持点对点与批量异步传输,配合事件通知机制便于流水线化;面向推理场景优化低延迟与高吞吐,可与张量并行、分离式推理架构配合;提供 C++ 接口并配套 Python 绑定,便于集成到推理框架。项目处于成长阶段,适合需要自建高性能推理数据通路的团队评估使用。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-25 · 当前星标 ★ 1328

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:高级 约 40 分钟 部署方式:本地安装 8 步

环境要求

  • Linux 环境下的 C++ 构建工具链(meson、ninja、编译器)
  • uv(即使已有其他 Python 虚拟环境管理器也必须安装)
  • tomlkit Python 包
  • PyTorch(按官网说明安装对应版本)
  • CUDA 12 或 CUDA 13 环境(用于编译对应平台的 nixl-cu12 / nixl-cu13 包)

安装与启动步骤

  1. 1克隆仓库

    从 GitHub 拉取 NIXL 源码,后续所有构建命令都在仓库根目录执行。

    git clone https://github.com/ai-dynamo/nixl.git
    cd nixl
  2. 2安装 uv 与依赖

    先装 uv 并加入 PATH,再创建 Python 3.12 虚拟环境并安装 tomlkit。

    curl -LsSf https://astral.sh/uv/install.sh | sh
    export PATH="$HOME/.local/bin:${PATH}"
    uv venv .venv --python 3.12
    source .venv/bin/activate
    uv pip install tomlkit
  3. 3安装 PyTorch

    按 PyTorch 官网给出的本地安装方式装好与本机 CUDA 匹配的 PyTorch,README 未固定版本。

  4. 4构建安装主库

    用 meson 配置构建目录,ninja 编译并将 NIXL 二进制安装到系统前缀。

    pip install .
    meson setup build
    ninja -C build install
  5. 5装 CUDA 平台包

    CUDA 12 直接走默认流程;CUDA 13 需先用 tomlutil 把 wheel 名改为 nixl-cu13。

    pip install build/src/bindings/python/nixl-meta/nixl-*-py3-none-any.whl
  6. 6验证导入

    创建 nixl_agent 实例,看是否打印 UCX 后端实例化与 agent 初始化日志。

    python3 -c "import nixl; agent = nixl.nixl_agent('agent1')"
  7. 7跑两节点示例

    先起 target 进程再起 initiator 进程,本地回环地址 127.0.0.1 端口 4242 传数据。

    python3 examples/python/expanded_two_peers.py --mode=target --use_cuda=true --ip=127.0.0.1 --port=4242 &
    sleep 5
    python3 examples/python/expanded_two_peers.py --mode=initiator --use_cuda=true --ip=127.0.0.1 --port=4242
  8. 8构建容器镜像

    可选:在仓库根目录构建预装 Python 绑定的镜像,默认 Ubuntu 24.04。

    ./contrib/build-container.sh

关键配置

配置项必填说明示例
--wheel-name否通过 tomlutil 修改 pyproject.toml 中的 wheel 名,CUDA 13 需设为 nixl-cu13nixl-cu13
--os否build-container.sh 的选项,用于指定容器基础系统版本ubuntu22
--etcd-endpoints否nixlbench 使用的 ETCD 元数据交换服务地址http://localhost:2379
--backend否nixlbench 指定传输后端UCX
--initiator_seg_type否nixlbench 发起端使用的内存段类型,示例为显存VRAM

如何确认成功

执行 python3 -c "import nixl; agent = nixl.nixl_agent('agent1')" 后输出 Backend UCX was instantiated 与 Initialized NIXL agent

常见问题

Q:可以使用系统 Python 或 virtualenv 吗?

A:可以。README 给出 virtualenv 和系统级 Python 两种示例,但无论哪种都必须先安装 uv,系统级方式则直接 pip install tomlkit。

Q:CUDA 13 与 CUDA 12 安装差别在哪?

A:CUDA 13 需在 meson setup 之前执行 ./contrib/tomlutil.py --wheel-name nixl-cu13 pyproject.toml,其余构建与安装步骤一致。

Q:ETCD 示例运行前要准备什么?

A:先启动一个 ETCD 服务,例如 docker run -d -p 2379:2379 quay.io/coreos/etcd:v3.5.1,再让两个 agent 通过该地址交换元数据。

Q:构建容器时有什么前提?

A:需先克隆仓库,并确认当前机器可以正常拉取容器镜像,然后在仓库根目录执行 contrib/build-container.sh。

注意事项

  • README 中 meson setup 的构建目录名为占位符,示例统一用 build,可自行改名但后续 ninja -C 路径要同步修改。
  • ninja install 完成后,文档会放在安装前缀的 share/doc/nixl/ 目录下。
  • 容器镜像默认基于 Ubuntu 24.04,可用 --os ubuntu22 切换到 Ubuntu 22.04。
  • 容器内已预装基于自身 PyTorch 源码编译的 Python 绑定,需要可分发的 wheel 时改用 wheel 构建脚本或已发布的 nixl 包。

核心亮点

  • 统一抽象多种存储与传输后端,减少推理框架重复适配成本
  • 异步批量传输与事件通知机制,便于与推理流水线重叠隐藏搬运延迟
  • 由 NVIDIA 主导并配套 Python 绑定,与 GPU 推理生态集成路径清晰

不足之处

  • 项目较新、星标规模有限,生产环境长期稳定性待验证
  • 文档与示例相对精简,非 NVIDIA 生态用户上手成本较高

适用场景

  • 分离式推理架构中 KV Cache 在预填充与解码实例间的高效搬运
  • 多级存储场景下模型权重与中间张量在显存、内存、远端存储间调度
  • 自研推理框架需要统一的数据传输层以适配多种后端

替代项目

NCCL、UCX、Mooncake

上一篇:onnxruntime

下一篇:ai-inference

同类项目推荐

pymilo 开源

统一序列化 ML 模型,跨框架安全保存与加载

PyMilo: Python for ML I/O

★ 170 2026-08-09
books-for-bots 开源

把电子书变成智能体能高效导航的 Markdown,省 token 又精准。

Rust CLI that converts EPUBs into a single YAML-headed Markdown file with per-chapte···

★ 146 2026-08-09
docker-diffusers-api 开源

把 Stable Diffusion 装进 Docker,一行命令起 REST API,快速集成图像生成。

Diffusers / Stable Diffusion in docker with a REST API, supporting various models, p···

★ 204 2026-08-09
NpgsqlRest 开源

数据库直接变 REST API,省掉写后端代码

Transform Your PostgreSQL Database into a Production-Ready, Blazing-Fast Standalone ···

★ 133 2026-09-24
toolport 开源

一个端口管所有 AI 工具,省 token 又安全

Local-first MCP gateway. Set up MCP servers once and use them in every AI client, wi···

★ 234 2026-08-09
MyScaleDB 开源

用SQL同时搞定向量搜索和全文检索,AI应用数据底座一步到位

A @ClickHouse fork that supports high-performance vector search and full-text search···

★ 1043 2026-08-09
claude-code-router 开源

本地路由层,让 AI Agent 自由切换模型、组合能力、掌控成本

One local control plane for every AI agent: route across models, fuse new capabiliti···

★ 37833 2026-09-12
AVH 开源

用 Arm 虚拟硬件,免开发板跑嵌入式软件

This repository explains the usage of Arm Virtual Hardware Fixed Virtual Platforms (···

★ 55 2026-08-09
homelab-monitor 开源

一个容器搞定 homelab 监控,AI 代理也能直接查

Self-hosted homelab dashboard in one container — GPU, local-AI VRAM, Docker, system···

★ 225 2026-08-09