nixl
NIXL(NVIDIA Inference Xfer Library)是英伟达推出的一款开源库,专为加速 AI 推理框架中的点对点通信而设计。在大规模模型推理场景下,数据在不同节点、不同内存层级(如 CPU 与 GPU)或存储系统间的传输往往成为性能瓶颈,NIXL 正是为了解决这一痛点而生。它通过模块化的插件架构,统一抽象了各类内存和存储后端,让开发者能够高效地管理数据流动,从而显著提升如 NVIDIA Dynamo 等推理系统的整体吞吐量。
这款工具主要面向从事 AI 基础设施开发的工程师和研究人员,特别是那些需要优化分布式推理性能、处理海量键值缓存(KV Cache)迁移的技术团队。NIXL 的独特亮点在于其高度的灵活性与兼容性:它不仅支持多种后端插件扩展,还深度集成了 UCX 高性能通信库及 GDRCopy 技术以挖掘极致带宽,同时提供了便捷的 Python API 和详细的基准测试工具(如 NIXLBench),帮助用户快速验证和优化传输策略。目前,NIXL 专注于 Linux 环境,旨在为构建下一代高效能 AI 推理服务提供坚实的数据传输基石。
使用场景
某大型电商公司正在构建基于 NVIDIA Dynamo 的实时推荐系统,需要在多节点 GPU 集群间高速传输海量用户行为特征数据(KV Cache)。
没有 nixl 时
- 内存拷贝繁琐:开发人员需手动编写代码在 CPU 内存与 GPU 显存间搬运数据,不仅代码冗余,还极易因指针错误导致服务崩溃。
- 通信延迟高企:缺乏针对 AI 推理优化的点对点传输机制,跨节点数据同步耗时过长,导致用户刷新页面时推荐结果加载明显卡顿。
- 存储适配困难:面对文件系统、块存储和对象存储等多种后端,团队不得不为每种存储类型重复开发适配接口,维护成本极高。
- 资源调度僵化:无法统一抽象不同硬件层的内存资源,导致集群中部分 GPU 因等待数据传输而空闲,整体算力利用率不足 60%。
使用 nixl 后
- 零拷贝加速:nixl 直接提供统一的内存抽象层,自动处理 CPU 与 GPU 间的数据流转,消除了手动拷贝需求,代码量减少 40% 且稳定性大幅提升。
- 毫秒级传输:依托底层 UCX 优化及点对点通信加速,跨节点特征数据同步延迟降低至毫秒级,实现了推荐结果的“秒开”体验。
- 插件化扩展:通过 nixl 的模块化插件架构,团队仅需配置即可无缝切换文件、块或对象存储,新存储后端的接入时间从数周缩短至数小时。
- 算力满负荷运行:高效的数据流转机制消除了计算等待瓶颈,集群 GPU 利用率攀升至 90% 以上,显著降低了单位请求的硬件成本。
nixl 通过统一内存抽象与加速点对点通信,将复杂的分布式数据搬运转化为透明高效的基础设施,让研发团队能专注于核心算法迭代。
运行环境要求
- Linux
需要 NVIDIA GPU(用于 CUDA 加速),支持 CUDA 12 或 CUDA 13,需安装 GDRCopy 以获得最佳性能(可选但推荐)
未说明

快速开始
NVIDIA 推理传输库 (NIXL)
NVIDIA 推理传输库 (NIXL) 旨在加速 NVIDIA Dynamo 等 AI 推理框架中的点对点通信,同时通过模块化的插件架构为多种类型的内存(例如 CPU 和 GPU)以及存储(例如文件、块和对象存储)提供抽象层。
文档与资源
NIXL 概述 - 核心概念/架构概述 (
docs/nixl.md)Python API - Python API 的使用方法及示例 (
docs/python_api.md)后端指南 - 后端/插件开发指南 (
docs/BackendGuide.md)遥测 - 可观测性与遥测细节 (
docs/telemetry.md)Doxygen 指南 - API/类图概览 (
docs/doxygen/nixl_doxygen.md)Doxygen 图片 - 图表资源 (
docs/doxygen/)NIXLBench 文档 - 基准测试使用指南 (
benchmark/nixlbench/README.md)KVBench 文档 - KVBench 工作流与教程 (
benchmark/kvbench/docs/)
支持的平台
NIXL 目前仅支持 Linux 环境。已在 Ubuntu (22.04/24.04) 和 Fedora 上进行过测试。macOS 和 Windows 当前不支持;请使用 Linux 主机或容器/虚拟机。
预编译发行版
PyPI Wheel
nixl 的 Python API 和库(包括 UCX)可以直接通过 PyPI 获得。 例如,如果您在 Linux 主机、容器或虚拟机上运行 GPU,可以执行以下安装命令:
对于 CUDA 12,可执行:
pip install nixl[cu12]
对于 CUDA 13,可执行:
pip install nixl[cu13]
为保持向后兼容性,pip install nixl 将自动安装 nixl[cu12],继续无缝兼容 CUDA 12 用户,而无需更改下游项目的依赖项。
如果环境中同时安装了 nixl-cu12 和 nixl-cu13,则优先使用 nixl-cu13。
源码构建的先决条件(Linux)
Ubuntu:
$ sudo apt install build-essential cmake pkg-config
Fedora:
$ sudo dnf install gcc-c++ cmake pkg-config
Python
$ pip3 install meson ninja pybind11 tomlkit
UCX
NIXL 已在 UCX 1.20.x 版本上进行了测试。
GDRCopy 在 GitHub 上可用,对于实现最佳性能至关重要,但即使没有 GDRCopy,UCX 和 NIXL 也能正常工作。
$ git clone https://github.com/openucx/ucx.git
$ cd ucx
$ git checkout v1.20.x
$ ./autogen.sh
$ ./contrib/configure-release-mt \
--enable-shared \
--disable-static \
--disable-doxygen-doc \
--enable-optimizations \
--enable-cma \
--enable-devel-headers \
--with-cuda=<cuda 安装路径> \
--with-verbs \
--with-dm \
--with-gdrcopy=<gdrcopy 安装路径>
$ make -j
$ make -j install-strip
$ ldconfig
ETCD(可选)
NIXL 可以使用 ETCD 在分布式环境中进行元数据分发和节点间协调。要将 ETCD 与 NIXL 结合使用:
ETCD 服务器和客户端
$ sudo apt install etcd etcd-server etcd-client
# 或者使用 Docker
$ docker run -d -p 2379:2379 quay.io/coreos/etcd:v3.5.1
ETCD CPP API
从 https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3 安装。
$ sudo apt install libgrpc-dev libgrpc++-dev libprotobuf-dev protobuf-compiler-grpc
$ sudo apt install libcpprest-dev
$ git clone https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git
$ cd etcd-cpp-apiv3
$ mkdir build && cd build
$ cmake ..
$ make -j$(nproc) && make install
其他插件
部分插件可能有额外的构建要求,请参阅以下内容:
开始使用
构建与安装
$ meson setup <构建目录名称>
$ cd <构建目录名称>
$ ninja
$ ninja install
构建选项
发布版本(默认)
$ meson setup <构建目录名称>
调试版本
$ meson setup <构建目录名称> --buildtype=debug
NIXL 特定的构建选项
# 示例:自定义选项
$ meson setup <构建目录名称> \
-Dbuild_docs=true \ # 构建 Doxygen 文档
-Ducx_path=/path/to/ucx \ # 自定义 UCX 安装路径
-Dinstall_headers=true \ # 安装开发头文件
-Ddisable_gds_backend=false # 启用 GDS 后端
常见构建选项:
build_docs: 构建 Doxygen 文档(默认:false)ucx_path: UCX 安装路径(默认:系统路径)install_headers: 安装开发头文件(默认:true)disable_gds_backend: 禁用 GDS 后端(默认:false)cudapath_inc,cudapath_lib: 自定义 CUDA 路径static_plugins: 以逗号分隔的静态构建插件列表enable_plugins: 以逗号分隔的启用插件列表(例如-Denable_plugins=UCX,POSIX)。不能与disable_plugins同时使用。disable_plugins: 以逗号分隔的禁用插件列表(例如-Ddisable_plugins=GDS)。不能与enable_plugins同时使用。
环境变量
有几个环境变量可用于配置构建:
NIXL_NO_STUBS_FALLBACK: 如果未设置或设为 0,则在库构建失败时构建 NIXL 存根库。
构建文档
如果您已安装 Doxygen,可以构建文档:
# 配置时启用文档生成
$ meson setup <构建目录名称> -Dbuild_docs=true
$ cd <构建目录名称>
$ ninja
# 文档将生成在 <构建目录名称>/html 中
# 安装完成后(ninja install),文档将在 <prefix>/share/doc/nixl/ 中可用
Python 接口
NIXL 通过 pybind11 提供了 Python 绑定。有关详细的 Python API 文档,请参阅 docs/python_api.md。
安装 Python 绑定的首选方式是从 PyPI 使用 pip:
pip install nixl[cu12]
或者对于 CUDA 13 版本:
pip install nixl[cu13]
从源码安装
先决条件:
uv:https://docs.astral.sh/uv/getting-started/installation/tomlkit:https://pypi.org/project/tomlkit/PyTorch:https://pytorch.org/get-started/locally/
即使您使用其他类型的 Python 虚拟环境管理器,或直接使用系统范围的 Python 安装而不使用虚拟环境,uv 仍然是必需的。
使用 uv 创建 Python 虚拟环境的示例:
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
使用 python-virtualenv 的示例:
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:${PATH}"
python3 -m venv .venv
source .venv/bin/activate
pip install tomlkit
不使用虚拟环境而直接使用系统范围 Python 安装的示例:
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:${PATH}"
pip install tomlkit
然后按照 PyTorch 官网上的说明安装 PyTorch:https://pytorch.org/get-started/locally/
安装完先决条件后,您可以从源码构建并安装 NIXL 二进制文件和 Python 绑定。您需要执行以下步骤:
- 构建并安装 NIXL 二进制文件。
- 构建并安装特定于 CUDA 平台的包(
nixl-cu12或nixl-cu13)。 - 构建并安装
nixl元包。
对于 CUDA 12:
pip install .
meson setup build
ninja -C build install
pip install build/src/bindings/python/nixl-meta/nixl-*-py3-none-any.whl
对于 CUDA 13:
pip install .
./contrib/tomlutil.py --wheel-name nixl-cu13 pyproject.toml
meson setup build
ninja -C build install
pip install build/src/bindings/python/nixl-meta/nixl-*-py3-none-any.whl
要检查安装是否成功,可以运行以下命令:
python3 -c "import nixl; agent = nixl.nixl_agent('agent1')"
如果安装成功,应输出:
2026-01-08 13:36:27 NIXL INFO _api.py:363 Backend UCX was instantiated
2026-01-08 13:36:27 NIXL INFO _api.py:253 Initialized NIXL agent: agent1
您还可以运行一个完整的 Python 示例来测试安装:
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
更多 Python 示例请参阅 examples/python/。
Rust 绑定
构建
- 使用
-Drust=truemeson 选项来构建 Rust 绑定。 - 使用
--buildtype=debug进行调试构建(默认为 release)。 - 或者手动构建:
$ cargo build --release
安装
绑定将被安装到配置的安装前缀下的 nixl-sys 目录中。
可以通过 ninja 从项目构建目录完成安装:
$ ninja install
测试
# Rust 绑定测试
$ cargo test
在您的项目中使用时,只需在 Cargo.toml 中添加:
[dependencies]
nixl-sys = { path = "path/to/nixl/bindings/rust" }
其他构建选项
更多构建选项请参阅 contrib/README.md。
构建 Docker 容器
要构建 Docker 容器,首先克隆当前仓库。此外,在尝试构建容器之前,请确保您能够拉取 Docker 镜像到本地机器。
在克隆的 NIXL 仓库根目录下运行以下命令:
$ ./contrib/build-container.sh
默认情况下,容器基于 Ubuntu 24.04 构建。若要构建适用于 Ubuntu 22.04 的容器,请使用 --os 选项,如下所示:
$ ./contrib/build-container.sh --os ubuntu22
要查看容器支持的所有选项,可以运行:
$ ./contrib/build-container.sh -h
容器还包含预构建的 Python wheel 文件,位于 /workspace/dist 目录下,便于安装或分发。此外,也可以使用单独的脚本构建该 wheel 文件(见下文)。
构建 Python wheel 文件
contrib 文件夹中还包含一个用于构建带有 UCX 依赖项的 Python wheel 文件的脚本。请注意,UCX 和其他 NIXL 依赖项必须已安装。
$ ./contrib/build-wheel.sh
使用 ETCD 运行
NIXL 可以使用 ETCD 在分布式节点之间交换元数据。这在容器化或云原生环境中尤为有用。
环境设置
要将 ETCD 与 NIXL 结合使用,需设置以下环境变量:
# 设置 ETCD 端点(必填)——将 localhost 替换为 ETCD 服务器的主机名
export NIXL_ETCD_ENDPOINTS="http://localhost:2379"
# 设置 ETCD 命名空间(可选,默认为 /nixl/agents)
export NIXL_ETCD_NAMESPACE="/nixl/agents"
运行 ETCD 示例
NIXL 包含一个演示使用 ETCD 进行元数据交换和数据传输的示例:
# 如果尚未运行 ETCD 服务器,请启动一个
# 例如:
# docker run -d -p 2379:2379 quay.io/coreos/etcd:v3.5.1
# 按照上述方法设置 ETCD 环境变量
# 运行示例。示例中的两个代理将通过 ETCD 交换元数据,并执行数据传输
./<nixl_build_path>/examples/nixl_etcd_example
nixlbench 基准测试
为了进行更全面的测试,nixlbench 基准测试工具支持使用 ETCD 进行工作节点协调:
# 构建 nixlbench(详情请参阅 benchmark/nixlbench/README.md)
cd benchmark/nixlbench
meson setup build && cd build && ninja
# 使用 ETCD 运行基准测试
./nixlbench --etcd-endpoints http://localhost:2379 --backend UCX --initiator_seg_type VRAM
代码示例
贡献指南
有关贡献指南,请参阅 CONTRIBUTING.md(CONTRIBUTING.md)。
第三方组件
本项目会下载并安装额外的第三方开源软件项目。在使用这些开源项目之前,请务必查看其许可证条款。
版本历史
v1.0.12026/04/14v1.0.02026/03/130.10.12026/03/030.10.02026/02/180.9.02026/01/210.8.02025/11/200.7.12025/11/060.7.02025/10/240.6.12025/10/090.6.02025/09/180.5.12025/08/280.5.02025/08/060.4.12025/07/240.4.02025/07/100.3.12025/07/010.3.02025/06/020.2.12025/05/220.2.02025/05/010.1.12025/04/110.1.02025/03/18常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器