ucx

GitHub
1.6k 538 较难 1 次阅读 4天前NOASSERTION插件音频图像语言模型Agent开发框架其他数据工具
AI 解读 由 AI 自动生成,仅供参考

UCX(Unified Communication X)是一款专为现代高性能网络设计的通信框架,旨在解决高带宽、低延迟环境下的数据传输瓶颈问题。它通过提供一套抽象的通信原语,智能调度并充分利用底层硬件资源,支持包括 RDMA(InfiniBand 和 RoCE)、TCP、GPU 直接通信、共享内存及网络原子操作等多种传输方式。

这款工具主要服务于需要极致通信性能的开发者、系统架构师及科研人员,特别是那些从事大规模并行计算、深度学习训练或构建高性能集群的用户。UCX 的核心亮点在于其“硬件感知”能力:它能自动识别当前环境可用的最佳硬件加速路径,将数据搬运任务卸载到专用硬件上,从而显著降低 CPU 负载并提升整体吞吐量。作为多个获奖项目的基础组件,UCX 已被广泛集成于 OpenMPI、OpenSHMEM 等主流并行编程接口中,是打造高效能计算系统的坚实基石。无论是进行底层驱动开发还是优化分布式应用,UCX 都能提供生产级验证的稳定支持。

使用场景

某超算中心的研究团队正在运行大规模气候模拟任务,需要在数千个 GPU 节点间频繁交换海量网格数据。

没有 ucx 时

  • 通信框架无法自动识别底层硬件,导致高速 InfiniBand 网络被降级为普通 TCP 传输,带宽利用率不足 20%。
  • CPU 在数据拷贝过程中过度参与,大量算力被消耗在内存搬运上,导致核心计算任务排队等待。
  • 不同节点间的显存数据交互必须经过主机内存中转,增加了额外的延迟和上下文切换开销。
  • 面对复杂的混合网络环境,开发人员需手动编写大量适配代码来切换传输协议,维护成本极高。

使用 ucx 后

  • ucx 自动探测并优先调用 RDMA(InfiniBand/RoCE)硬件卸载能力,将网络带宽利用率提升至 90% 以上。
  • 通过零拷贝技术和共享内存机制,ucx 让 GPU 显存直接通信,彻底释放了 CPU 资源用于科学计算。
  • 统一的抽象接口屏蔽了底层网络差异,同一套代码即可在 TCP、RoCE 或共享内存环境中高效运行。
  • 内置的原子操作和流控优化显著降低了微秒级延迟,使万核规模下的并行效率大幅提升。

ucx 通过智能调度硬件资源,将原本受限于通信瓶颈的超算集群转化为真正的高性能计算引擎。

运行环境要求

操作系统
  • Linux
GPU
  • 非必需
  • 支持 NVIDIA CUDA 和 AMD ROCm GPU 用于加速通信,具体型号和显存未说明
内存

未说明

依赖
notes1. 主要面向高性能计算(HPC)环境,支持 InfiniBand, RoCE, Omni-Path, Cray Gemini/Aries 等高速网络。2. 已知问题:若使用 glibc 2.25-2.29 版本可能导致程序死锁,建议升级或降级 glibc。3. UCX 1.8.0 版本在 TCP 与共享内存混用时存在数据损坏 bug,建议使用 1.9.0 及以上版本。4. 构建时可能需要额外的命令行标志以启用特定硬件支持。
python未说明 (该工具为 C/C++ 库,非 Python 包)
rdma-core >= 28.0 (针对 InfiniBand/RoCE, UCX >= 1.12.0)
MLNX_OFED >= 5.0 (针对 InfiniBand/RoCE, UCX >= 1.12.0)
glibc (需避免 2.25-2.29 版本以防死锁)
可选:KNEM, XPMEM (用于共享内存传输)
ucx hero image

快速开始


统一通信X

统一通信X(UCX)是一个屡获殊荣的、经过优化且在生产环境中得到验证的通信框架,专为现代高带宽、低延迟网络而设计。它曾荣获RD-100奖

UCX提供了一组抽象的通信原语,能够充分利用现有的硬件资源和卸载技术,包括RDMA(InfiniBand和RoCE)、TCP、GPU、共享内存以及网络原子操作等。

更多详细信息,请访问我们的文档网站

请查阅我们的"成员自愿共识标准"和["符合出口管制的贡献提交"]政策(https://ucfconsortium.org/policy/)。



使用UCX

发布版构建

通常,构建UCX需要先运行“configure”脚本,再执行“make”。如果使用的是发布版tarball,可在树形结构的根目录下执行以下命令来安装UCX系统:

$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make install

如果是直接从Git仓库克隆,则应使用:

$ ./autogen.sh
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make install

注意:编译支持多种网络或其他特定硬件时,可能需要在运行configure时添加额外的命令行参数。

开发版构建

$ ./autogen.sh
$ ./contrib/configure-devel --prefix=$PWD/install-debug

*** 注意:由于包含额外的调试代码,UCX的开发版在运行时通常会带来较大的性能损失。

构建RPM包

$ contrib/buildrpm.sh -s -b

构建DEB包

$ dpkg-buildpackage -us -uc

构建Doxygen文档

$ make docs

使用UCX安装OpenMPI和OpenSHMEM

维基页面

使用UCX安装MPICH

维基页面

UCX性能测试

启动服务器:

$ ./src/tools/perf/ucx_perftest -c 0

连接客户端:

$ ./src/tools/perf/ucx_perftest <server-hostname> -t tag_lat -c 1

注意 -c 标志用于设置CPU亲和性。如果在同一台主机上同时运行这两个命令,请确保将亲和性分别设置到不同的CPU核心上。

运行内部单元测试

$ make -C test/gtest test

已知问题

  • UCX 1.8.0版本存在一个可能导致数据损坏的bug,当TCP传输与共享内存传输结合使用时会出现此问题。建议升级到UCX 1.9.0或更高版本。1.8.0之前的版本不存在此问题。

  • 由于pthread_rwlock函数中的已知缺陷,UCX在glibc 2.25至2.29版本中可能会挂起。当发生此类挂起时,其中一个UCX线程会卡在pthread_rwlock_rdlock(由ucs_rcache_get调用)中,即使没有其他线程持有锁。相关问题已在glibc Bug 23844中报告。如果遇到此问题,建议使用操作系统自带的glibc版本,或从源码编译低于2.25或高于2.29的glibc版本。

  • 由于兼容性问题,当UCX与rdma-core v22一起使用时,设置UCX_DC_MLX5_RX_INLINE=0是不被支持的,并会导致DC传输不可用。此问题已在rdma-core v24中修复,并后向移植到了rdma-core-22.4-2.el7 rpm中。更多信息请参见ucx issue 5749

  • 如果网络路由识别错误,导致对等节点显示为“不可达”,可以通过设置UCX_IB_ROCE_REACHABILITY_MODE=all来更改默认的可达性检查模式。


架构

组件 职责 描述
UCP 协议层 实现高级抽象,如标签匹配、流、连接协商与建立、多路径传输以及不同内存类型的处理
UCT 传输层 实现低层通信原语,如主动消息、远程内存访问和原子操作
UCS 服务层 提供常用的数据结构、算法和系统工具
UCM 内存管理层 拦截内存分配和释放事件,用于内存注册缓存

支持的传输协议

注: UCX >= 1.12.0要求rdma-core >= 28.0或MLNX_OFED >= 5.0才能支持InfinibandRoCE传输。


支持的CPU架构


许可证

UCX采用以下许可证:


我们的社区


贡献者协议与指南

为了向 UCX 作出贡献,请签署相应的 贡献者协议

所有贡献者必须遵守“成员自愿共识标准”和“符合出口管制的贡献提交”政策。

提交贡献和更改时,请遵循这些 说明

出版物

若在出版物中引用 UCX,请使用以下条目:

@inproceedings{shamis2015ucx,
  title={UCX: an open source framework for HPC network APIs and beyond},
  author={Shamis, Pavel and Venkata, Manjunath Gorentla and Lopez, M Graham and Baker, Matthew B and Hernandez, Oscar and Itigin, Yossi and Dubman, Mike and Shainer, Gilad and Graham, Richard L and Liss, Liran and others},
  booktitle={2015 IEEE 23rd Annual Symposium on High-Performance Interconnects},
  pages={40--43},
  year={2015},
  organization={IEEE}
}

若引用 UCX 官网,请使用以下条目:

@misc{openucx-website,
    title = {{统一通信 X 库}},
    key = {{{统一通信 X 库}}},
    howpublished = {{\url{http://www.openucx.org}}}
}

版本历史

v1.20.1-rc12026/03/22
v1.20.0-rc12026/02/05
v1.20.02026/02/05
v1.19.12025/12/07
v1.19.1-rc22025/10/21
v1.19.1-rc12025/09/21
v1.19.02025/08/06
v1.19.0-rc22025/07/22
v1.19.0-rc12025/06/24
v1.18.12025/04/28
v1.18.1-rc32025/04/17
v1.18.1-rc22025/04/09
v1.18.1-rc12025/02/21
v1.18.02025/01/21
v1.18.0-rc32024/12/23
v1.18.0-rc22024/12/10
v1.18.0-rc12024/11/26
v1.17.02024/06/13
v1.17.0-rc32024/06/06
v1.17.0-rc22024/06/03

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

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 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架