[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-pytorch--gloo":3,"tool-pytorch--gloo":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":104,"env_os":105,"env_gpu":106,"env_ram":107,"env_deps":108,"category_tags":117,"github_topics":118,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":121,"updated_at":122,"faqs":123,"releases":154},8505,"pytorch\u002Fgloo","gloo","Collective communications library with various primitives for multi-machine training.","Gloo 是一个专为多机机器学习训练设计的集体通信库。在分布式深度学习场景中，多台机器需要高效同步数据和模型参数，Gloo 正是为了解决这一核心痛点而生。它提供了一系列基础通信原语，如屏障同步、广播和全归约（allreduce），确保集群间的数据传输既可靠又高效。\n\nGloo 的最大亮点在于其灵活的传输层抽象与硬件加速能力。它能自动适配网络环境，既支持通用的 IP 网络，也能在具备条件时启用 InfiniBand 或 RoCE 高速网络。特别值得一提的是，当使用 InfiniBand 时，Gloo 支持 GPUDirect 技术，可实现跨机器的 GPU 显存直接传输，无需经过主机内存中转，从而大幅降低延迟并提升带宽利用率。此外，其算法原生支持 NVIDIA GPU 显存缓冲区，开发者无需手动处理主机与设备间的内存拷贝。\n\n这款工具主要面向从事分布式系统开发的工程师、AI 研究人员以及需要构建高性能训练框架的开发者。虽然它通常作为底层依赖库被集成在 PyTorch 等主流框架中，不直接面向普通终端用户，但对于希望深入理解或自定义分布式通信策略的技术人员来说，Gloo 提供了强大的基础支撑","Gloo 是一个专为多机机器学习训练设计的集体通信库。在分布式深度学习场景中，多台机器需要高效同步数据和模型参数，Gloo 正是为了解决这一核心痛点而生。它提供了一系列基础通信原语，如屏障同步、广播和全归约（allreduce），确保集群间的数据传输既可靠又高效。\n\nGloo 的最大亮点在于其灵活的传输层抽象与硬件加速能力。它能自动适配网络环境，既支持通用的 IP 网络，也能在具备条件时启用 InfiniBand 或 RoCE 高速网络。特别值得一提的是，当使用 InfiniBand 时，Gloo 支持 GPUDirect 技术，可实现跨机器的 GPU 显存直接传输，无需经过主机内存中转，从而大幅降低延迟并提升带宽利用率。此外，其算法原生支持 NVIDIA GPU 显存缓冲区，开发者无需手动处理主机与设备间的内存拷贝。\n\n这款工具主要面向从事分布式系统开发的工程师、AI 研究人员以及需要构建高性能训练框架的开发者。虽然它通常作为底层依赖库被集成在 PyTorch 等主流框架中，不直接面向普通终端用户，但对于希望深入理解或自定义分布式通信策略的技术人员来说，Gloo 提供了强大的基础支撑和灵活的扩展能力。","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fmedia\u002Fgloo_100k_dark.svg\">\n    \u003Cimg width=\"55%\" src=\".\u002Fmedia\u002Fgloo_100k_light.svg\" alt=\"Gloo\">\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\nCollective communications library with various primitives for multi-machine training.\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n  | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo\u002Ftree\u002Fmain\u002Fdocs\">\u003Cb>Gloo Documentation\u003C\u002Fb>\u003C\u002Fa>\n  | \u003Ca href=\"https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Fdistributed.html\">\u003Cb>PyTorch Distributed Documentation\u003C\u002Fb>\u003C\u002Fa>\n  | \u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1BX4o0ggV0-1MLwlLYcFkZHgNThyZX1-IJM3qbm0cmaA\u002Fedit?usp=sharing\">\u003Cb>Introduction to Gloo Presentation\u003C\u002Fb>\u003C\u002Fa>\n  |\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fopensource.fb.com\u002Fsupport-ukraine\">\u003Cimg alt=\"Support Ukraine\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSupport-Ukraine-FFD500?style=flat&labelColor=005BBB\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo\u002Factions\u002Fworkflows\u002Fbuild-linux.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo\u002Factions\u002Fworkflows\u002Fbuild-linux.yml\u002Fbadge.svg\" alt=\"CI-Linux\">\u003C\u002Fa>\n\n\u003C\u002Fp>\n\n---\n\n\nGloo is a collective communications library. It comes with a number of\ncollective algorithms useful for machine learning applications. These\ninclude a barrier, broadcast, and allreduce.\n\nTransport of data between participating machines is abstracted so that\nIP can be used at all times, or InifiniBand (or RoCE) when available.\nIn the latter case, if the InfiniBand transport is used, [GPUDirect][gpudirect]\ncan be used to accelerate cross machine GPU-to-GPU memory transfers.\n\n[gpudirect]: https:\u002F\u002Fdeveloper.nvidia.com\u002Fgpudirect\n\nWhere applicable, algorithms have an implementation that works with\nsystem memory buffers, and one that works with NVIDIA GPU memory\nbuffers. In the latter case, it is not necessary to copy memory between\nhost and device; this is taken care of by the algorithm implementations.\n\n## Requirements\n\nGloo is built to run on Linux and has no hard dependencies other than libstdc++.\nThat said, it will generally only be useful when used in combination with a few\noptional dependencies below.\n\nOptional dependencies are:\n* [CUDA][cuda] and [NCCL][nccl] -- for CUDA aware algorithms, tests, and benchmark\n* [Google Test][gtest] -- to build and run tests\n* [Hiredis][hiredis] -- for coordinating machine rendezvous through Redis\n* [MPI][mpi] -- for coordinating machine rendezvous through MPI\n\n[cuda]: http:\u002F\u002Fwww.nvidia.com\u002Fobject\u002Fcuda_home_new.html\n[nccl]: https:\u002F\u002Fgithub.com\u002Fnvidia\u002Fnccl\n[gtest]: https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgoogletest\n[hiredis]: https:\u002F\u002Fgithub.com\u002Fredis\u002Fhiredis\n[mpi]: https:\u002F\u002Fwww.open-mpi.org\u002F\n\n## Documentation\n\nPlease refer to [docs\u002F](docs\u002F) for detailed documentation.\n\n## Building\n\nYou can build Gloo using CMake.\n\nSince it is a library, it is most convenient to vendor it in your own\nproject and include the project root in your own CMake configuration.\n\n### Test\n\nBuilding the tests requires Google Test version 1.8 or higher. On\nUbuntu, this version ships with version 17.10 and up. If you run an\nolder version, you'll have to install Google Test yourself, and set\nthe `GTEST_ROOT` CMake variable.\n\nYou can install Google Test using conda with:\n``` shell\nconda install -c anaconda gmock gtest\n```\nBe carefull that you might need to fish for a package that works with your glibc\n\n\nTo build the tests, run:\n\n``` shell\nmkdir -p build\ncd build\ncmake ..\u002F -DBUILD_TEST=1 -DGTEST_ROOT=\u002Fsome\u002Fpath (if using custom install)\nmake\nls -l gloo\u002Ftest\u002Fgloo_test*\n```\n\nTo test the CUDA algorithms, specify `USE_CUDA=ON` as well, and the\nCUDA tests are built at `gloo\u002Ftest\u002Fgloo_test_cuda`.\n\n### Benchmark\n\n\nFirst install the dependencies required by the benchmark tool. On\nUbuntu, you can do so by running:\n\n``` shell\nsudo apt-get install -y libhiredis-dev\n```\n\nThen build the benchmark, run:\n\n``` shell\nmkdir build\ncd build\ncmake ..\u002F -DBUILD_BENCHMARK=1\nmake\nls -l gloo\u002Fbenchmark\u002Fbenchmark\n```\n\n## Benchmarking\n\nThe benchmark tool depends on Redis\u002FHiredis for rendezvous.\nThe benchmark tool for CUDA algorithms\nobviously also depends on both CUDA and NCCL.\n\nTo run a benchmark:\n\n1. Copy the benchmark tool to all participating machines\n\n2. Start a Redis server on any host (either a client machine or one of\n   the machines participating in the test). Note that Redis Cluster is **not** supported.\n\n3. Determine some unique ID for the benchmark run (e.g. the `uuid`\n   tool or some number).\n\n4. On each machine, run (or pass `--help` for more options):\n\n    ```\n    .\u002Fbenchmark \\\n      --size \u003Cnumber of machines> \\\n      --rank \u003Cindex of this machine, starting at 0> \\\n      --redis-host \u003CRedis host> \\\n      --redis-port \u003CRedis port> \\\n      --prefix \u003Cunique identifier for this run> \\\n      --transport tcp \\\n      --elements \u003Cnumber of elements; -1 for a sweep> \\\n      --iteration-time 1s \\\n      allreduce_ring_chunked\n    ```\n\nExample output (running on 4 machines with a 40GbE network):\n\n``` text\n   elements   min (us)   p50 (us)   p99 (us)   max (us)    samples\n          1        195        263        342        437       3921\n          2        195        261        346        462       4039\n          5        197        261        339        402       3963\n         10        197        263        338        398       3749\n         20        199        268        343        395       4146\n         50        200        265        344        401       3889\n        100        205        265        351        414       3645\n        200        197        264        328        387       3960\n        500        201        264        329        394       4274\n       1000        200        267        330        380       3344\n       2000        205        263        323        395       3682\n       5000        240        335        424        460       3277\n      10000        271        346        402        457       2721\n      20000        283        358        392        428       2719\n      50000        342        438        495        649       1654\n     100000        413        487        669        799       1687\n     200000       1113       1450       1837       2801        669\n     500000       1099       1294       1665       1959        560\n    1000000       1858       2286       2779       6100        320\n    2000000       3546       3993       4364       4886        252\n    5000000      10030      10608      11106      11628         92\n```\n\n## License\n\nGloo is BSD-licensed.\n","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fmedia\u002Fgloo_100k_dark.svg\">\n    \u003Cimg width=\"55%\" src=\".\u002Fmedia\u002Fgloo_100k_light.svg\" alt=\"Gloo\">\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\n用于多机训练的各种原语的集体通信库。\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n  | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo\u002Ftree\u002Fmain\u002Fdocs\">\u003Cb>Gloo 文档\u003C\u002Fb>\u003C\u002Fa>\n  | \u003Ca href=\"https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Fdistributed.html\">\u003Cb>PyTorch 分布式文档\u003C\u002Fb>\u003C\u002Fa>\n  | \u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1BX4o0ggV0-1MLwlLYcFkZHgNThyZX1-IJM3qbm0cmaA\u002Fedit?usp=sharing\">\u003Cb>Gloo 简介演示文稿\u003C\u002Fb>\u003C\u002Fa>\n  |\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fopensource.fb.com\u002Fsupport-ukraine\">\u003Cimg alt=\"支持乌克兰\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSupport-Ukraine-FFD500?style=flat&labelColor=005BBB\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo\u002Factions\u002Fworkflows\u002Fbuild-linux.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo\u002Factions\u002Fworkflows\u002Fbuild-linux.yml\u002Fbadge.svg\" alt=\"CI-Linux\">\u003C\u002Fa>\n\n\u003C\u002Fp>\n\n---\n\n\nGloo 是一个集体通信库。它包含许多对机器学习应用有用的集体算法，包括屏障、广播和归约等。\n\n参与节点之间的数据传输被抽象化，因此可以始终使用 IP 协议，或者在可用时使用 InfiniBand（或 RoCE）。在后一种情况下，如果使用 InfiniBand 传输，可以利用 [GPUDirect][gpudirect] 来加速跨机 GPU 到 GPU 的内存传输。\n\n[gpudirect]: https:\u002F\u002Fdeveloper.nvidia.com\u002Fgpudirect\n\n在适用的情况下，算法既有基于系统内存缓冲区的实现，也有基于 NVIDIA GPU 内存缓冲区的实现。在后者情况下，无需在主机和设备之间进行内存拷贝；这些操作由算法实现自动完成。\n\n## 要求\n\nGloo 构建于 Linux 上，除了 libstdc++ 外没有其他硬性依赖。不过，通常只有与以下一些可选依赖结合使用时才有用。\n\n可选依赖包括：\n* [CUDA][cuda] 和 [NCCL][nccl] -- 用于 CUDA 感知的算法、测试和基准测试\n* [Google Test][gtest] -- 用于构建和运行测试\n* [Hiredis][hiredis] -- 用于通过 Redis 协调节点会合\n* [MPI][mpi] -- 用于通过 MPI 协调节点会合\n\n[cuda]: http:\u002F\u002Fwww.nvidia.com\u002Fobject\u002Fcuda_home_new.html\n[nccl]: https:\u002F\u002Fgithub.com\u002Fnvidia\u002Fnccl\n[gtest]: https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgoogletest\n[hiredis]: https:\u002F\u002Fgithub.com\u002Fredis\u002Fhiredis\n[mpi]: https:\u002F\u002Fwww.open-mpi.org\u002F\n\n## 文档\n\n详细文档请参阅 [docs\u002F](docs\u002F)。\n\n## 构建\n\n您可以使用 CMake 构建 Gloo。\n\n由于它是一个库，最方便的做法是在您自己的项目中将其作为依赖项引入，并将项目根目录添加到您自己的 CMake 配置中。\n\n### 测试\n\n构建测试需要 Google Test 1.8 或更高版本。在 Ubuntu 上，从 17.10 版本开始就已包含该版本。如果您使用的是较旧的版本，则需要自行安装 Google Test，并设置 `GTEST_ROOT` CMake 变量。\n\n您可以通过 conda 安装 Google Test，命令如下：\n``` shell\nconda install -c anaconda gmock gtest\n```\n请注意，您可能需要找到与您的 glibc 兼容的软件包。\n\n要构建测试，请执行以下步骤：\n\n``` shell\nmkdir -p build\ncd build\ncmake ..\u002F -DBUILD_TEST=1 -DGTEST_ROOT=\u002Fsome\u002Fpath (if using custom install)\nmake\nls -l gloo\u002Ftest\u002Fgloo_test*\n```\n\n要测试 CUDA 算法，还需指定 `USE_CUDA=ON`，CUDA 测试将在 `gloo\u002Ftest\u002Fgloo_test_cuda` 中构建。\n\n### 基准测试\n\n\n首先安装基准测试工具所需的依赖。在 Ubuntu 上，可以通过以下命令安装：\n\n``` shell\nsudo apt-get install -y libhiredis-dev\n```\n\n然后构建基准测试工具，运行：\n\n``` shell\nmkdir build\ncd build\ncmake ..\u002F -DBUILD_BENCHMARK=1\nmake\nls -l gloo\u002Fbenchmark\u002Fbenchmark\n```\n\n## 基准测试\n\n基准测试工具依赖 Redis\u002FHiredis 进行节点会合。用于 CUDA 算法的基准测试工具显然也依赖 CUDA 和 NCCL。\n\n要运行基准测试：\n\n1. 将基准测试工具复制到所有参与的机器上。\n\n2. 在任意一台主机上启动 Redis 服务器（可以是客户端机器，也可以是参与测试的机器之一）。请注意，Redis Cluster **不**受支持。\n\n3. 为本次基准测试确定一个唯一的 ID（例如使用 `uuid` 工具或某个数字）。\n\n4. 在每台机器上运行（或输入 `--help` 查看更多选项）：\n\n    ```\n    .\u002Fbenchmark \\\n      --size \u003C机器数量> \\\n      --rank \u003C本机索引，从 0 开始> \\\n      --redis-host \u003CRedis 主机> \\\n      --redis-port \u003CRedis 端口> \\\n      --prefix \u003C本次运行的唯一标识符> \\\n      --transport tcp \\\n      --elements \u003C元素数量；-1 表示扫描> \\\n      --iteration-time 1s \\\n      allreduce_ring_chunked\n    ```\n\n示例输出（在 4 台机器上运行，网络速率为 40GbE）：\n\n``` text\n   elements   min (us)   p50 (us)   p99 (us)   max (us)    samples\n          1        195        263        342        437       3921\n          2        195        261        346        462       4039\n          5        197        261        339        402       3963\n         10        197        263        338        398       3749\n         20        199        268        343        395       4146\n         50        200        265        344        401       3889\n        100        205        265        351        414       3645\n        200        197        264        328        387       3960\n        500        201        264        329        394       4274\n       1000        200        267        330        380       3344\n       2000        205        263        323        395       3682\n       5000        240        335        424        460       3277\n      10000        271        346        402        457       2721\n      20000        283        358        392        428       2719\n      50000        342        438        495        649       1654\n     100000        413        487        669        799       1687\n     200000       1113       1450       1837       2801        669\n     500000       1099       1294       1665       1959        560\n    1000000       1858       2286       2779       6100        320\n    2000000       3546       3993       4364       4886        252\n    5000000      10030      10608      11106      11628         92\n```\n\n## 许可证\n\nGloo 采用 BSD 许可证。","# Gloo 快速上手指南\n\nGloo 是一个用于多机训练的集合通信库，提供了屏障（barrier）、广播（broadcast）和全归约（allreduce）等多种算法。它支持 TCP\u002FIP 网络，并在可用时自动利用 InfiniBand (RoCE) 和 GPUDirect 加速 GPU 间通信。\n\n## 环境准备\n\n### 系统要求\n*   **操作系统**: Linux (官方主要支持环境)\n*   **核心依赖**: `libstdc++` (通常随 GCC 安装)\n\n### 可选依赖\n根据您的需求选择安装以下依赖：\n*   **CUDA & NCCL**: 如需运行 CUDA 感知算法、测试或基准测试。\n*   **Google Test**: 如需构建和运行单元测试。\n*   **Hiredis**: 如需通过 Redis 协调多机集合（基准测试必需）。\n*   **MPI**: 如需通过 MPI 协调多机集合。\n\n> **提示**: 国内开发者可使用清华或阿里镜像源加速 `apt` 或 `conda` 包的安装。\n\n## 安装步骤\n\nGloo 通常作为子模块嵌入到您的项目中，也可独立编译。以下是使用 CMake 进行构建的步骤。\n\n### 1. 克隆代码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fgloo.git\ncd gloo\n```\n\n### 2. 安装测试依赖 (可选)\n如果您需要构建测试套件，需安装 Google Test (版本 1.8+)。\n**使用 Conda 安装 (推荐):**\n```bash\nconda install -c anaconda gmock gtest\n```\n**或使用 Ubuntu apt 安装:**\n```bash\nsudo apt-get update\nsudo apt-get install libgtest-dev\n```\n\n### 3. 编译构建\n创建构建目录并配置 CMake。\n\n**基础编译:**\n```bash\nmkdir -p build\ncd build\ncmake ..\u002F \nmake\n```\n\n**启用测试编译:**\n```bash\ncmake ..\u002F -DBUILD_TEST=1\n# 如果 GTest 安装在非标准路径，需指定: -DGTEST_ROOT=\u002Fyour\u002Fpath\u002Fto\u002Fgtest\nmake\n```\n\n**启用 CUDA 支持 (需已安装 CUDA 和 NCCL):**\n```bash\ncmake ..\u002F -DUSE_CUDA=ON -DBUILD_TEST=1\nmake\n```\n\n**启用基准测试工具 (需安装 hiredis):**\n```bash\n# Ubuntu 安装依赖\nsudo apt-get install -y libhiredis-dev\n\n# 重新配置并编译\ncmake ..\u002F -DBUILD_BENCHMARK=1\nmake\n```\n\n## 基本使用\n\nGloo 主要作为底层库被 PyTorch 等框架调用，但您也可以直接运行其自带的基准测试工具来验证多机通信性能。\n\n### 运行基准测试示例\n以下示例展示如何在 4 台机器上运行 `allreduce_ring_chunked` 算法测试。\n\n**前置条件:**\n1. 将编译好的 `benchmark` 工具复制到所有参与测试的机器。\n2. 在任意一台机器上启动 Redis 服务器 (不支持 Redis Cluster)。\n3. 确定一个唯一的运行 ID (例如使用 `uuidgen` 生成)。\n\n**执行命令:**\n在每台机器上运行以下命令（注意修改 `\u003Crank>` 和 `\u003Credis-host>`）：\n\n```bash\n.\u002Fbenchmark \\\n  --size 4 \\\n  --rank \u003Cindex_of_this_machine_0_to_3> \\\n  --redis-host \u003CRedis_Server_IP> \\\n  --redis-port 6379 \\\n  --prefix \u003Cunique_run_id> \\\n  --transport tcp \\\n  --elements -1 \\\n  --iteration-time 1s \\\n  allreduce_ring_chunked\n```\n\n**参数说明:**\n*   `--size`: 参与训练的机器总数。\n*   `--rank`: 当前机器的索引（从 0 开始）。\n*   `--elements`: 测试元素数量，`-1` 表示自动扫描不同大小。\n*   `--transport`: 传输后端，可选 `tcp` 或 `ib` (InfiniBand)。\n\n运行成功后，终端将输出不同数据量下的延迟统计（min, p50, p99, max）。","某大型科技公司算法团队正在利用多机集群训练一个参数量巨大的推荐系统模型，急需解决跨节点通信效率低下的瓶颈。\n\n### 没有 gloo 时\n- **通信代码耦合严重**：开发人员需要手动编写复杂的 Socket 或 MPI 代码来处理节点间的数据同步，导致业务逻辑与底层网络传输高度耦合，维护困难。\n- **GPU 数据拷贝开销大**：在多卡环境下，每次进行梯度聚合前，必须显式地将数据从 GPU 显存拷贝到 CPU 内存，传输完成后再拷回，浪费了宝贵的计算时间。\n- **网络适配能力差**：程序无法自动识别并利用集群中的 InfiniBand 高速网络，只能跑在普通的以太网之上，且完全不支持 GPUDirect 技术，跨机器 GPU 直连传输无法实现。\n- **扩展性受限**：随着节点数量增加，自定义的广播（Broadcast）和全归约（Allreduce）算法性能急剧下降，成为制约模型训练速度扩大的主要短板。\n\n### 使用 gloo 后\n- **接口统一简洁**：直接调用 gloo 提供的标准化集合通信原语（如 barrier、allreduce），无需关心底层是 TCP 还是 InfiniBand，代码清晰度大幅提升。\n- **零拷贝高效传输**：gloo 原生支持 CUDA 内存缓冲区，算法内部自动处理设备间通信，彻底消除了 Host 与 Device 之间冗余的内存拷贝操作。\n- **智能硬件加速**：自动检测并启用 InfiniBand 及 RoCE 协议，结合 GPUDirect 技术实现跨节点 GPU 显存直接数据交换，带宽利用率达到硬件极限。\n- **线性扩展性能**：内置优化的并行算法确保在数十甚至上百台机器规模下，通信耗时随节点增加保持线性可控，显著缩短了整体训练周期。\n\ngloo 通过屏蔽底层异构网络差异并提供 GPU 感知的零拷贝通信，将多机分布式训练的开发门槛与运行成本降至最低。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpytorch_gloo_c29d70bb.png","pytorch","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpytorch_be722ba8.jpg","",null,"https:\u002F\u002Fpytorch.org","https:\u002F\u002Fgithub.com\u002Fpytorch",[80,84,88,92,96],{"name":81,"color":82,"percentage":83},"C++","#f34b7d",71.7,{"name":85,"color":86,"percentage":87},"Python","#3572A5",22.2,{"name":89,"color":90,"percentage":91},"CMake","#DA3434",3.7,{"name":93,"color":94,"percentage":95},"Cuda","#3A4E3A",2.2,{"name":97,"color":98,"percentage":99},"C","#555555",0.2,1418,354,"2026-04-12T09:43:52","NOASSERTION",4,"Linux","非必需。若需使用 CUDA 感知算法、测试或基准测试，则需要 NVIDIA GPU 及对应的 CUDA 环境（支持 GPUDirect 以加速跨机器 GPU 显存传输）。具体型号和显存大小未说明。","未说明",{"notes":109,"python":107,"dependencies":110},"Gloo 是一个集体通信库，主要设计用于 Linux 环境。除了 libstdc++ 外没有硬性依赖，但功能发挥通常需要可选依赖（如 CUDA\u002FNCCL 用于 GPU，Redis\u002FHiredis 或 MPI 用于多机协调）。基准测试工具依赖 Redis（不支持 Redis Cluster），且需手动将工具复制到所有参与机器。若使用旧版 Ubuntu 构建测试，可能需要手动安装 Google Test 并配置 GTEST_ROOT 变量。",[111,112,113,114,115,116],"libstdc++ (必需)","CUDA (可选，用于 GPU 算法)","NCCL (可选，用于 GPU 通信)","Google Test >= 1.8 (可选，用于构建测试)","Hiredis (可选，用于通过 Redis 协调机器)","MPI (可选，用于通过 MPI 协调机器)",[14],[119,120,73],"collectives","distributed-training","2026-03-27T02:49:30.150509","2026-04-18T00:45:53.007068",[124,129,134,139,144,149],{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},38075,"在 Caffe2 中构建 Gloo 时遇到 CMake 错误（如 gloo_cuda_generated_nccl.cu.o 生成失败），该如何解决？","这通常不是 Gloo 本身的问题，而是 Caffe2 配置问题。常见原因是未显式启用 NNPACK 支持，导致 nvcc 编译时包含路径不兼容。解决方法是检查并显式启用 NNPACK 支持。此外，如果是 CentOS 系统，尝试升级 EPEL 源（例如从 epel-release-7-9 升级到 epel-release-7-11）也可能解决问题。建议提供完整的 CMake 命令、CMake 摘要输出和 CMakeCache.txt 文件以便进一步排查。","https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fgloo\u002Fissues\u002F100",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},38076,"使用 InfiniBand 运行 AllReduceHalvingDoubling 时出现 'local access error' 或 'Memory region send' 错误，原因是什么？","该错误通常与内存注册不正确有关。虽然用户最初怀疑是使用方式错误，但维护者指出这可能是特定环境（如 CentOS）下的配置问题。如果问题持续，建议升级到最新代码并重新测试。若仍报错，需提供完整的基准测试输出（包含链路信息）以便深入分析。部分用户反馈切换到 Caffe2 后问题表现形式变化，需在新项目中继续追踪。","https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fgloo\u002Fissues\u002F66",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},38077,"运行 Gloo 基准测试时遇到 Redis 错误 'reply->type == REDIS_REPLY_INTEGER. 6 vs 3'，如何修复？","此错误表明 Redis 返回的数据类型不符合预期（期望整数却得到其他类型）。通常与 Redis 集群配置或版本兼容性有关。用户使用的是 Redis 3.2.8 并搭建了多节点集群。维护者建议在遇到问题时，先确认 InfiniBand 速度是否正常，然后拉取最新代码重试。如果问题依旧，请提供包含完整链路信息的基准测试输出。最终用户确认问题已解决并关闭了 Issue。","https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fgloo\u002Fissues\u002F21",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},38078,"在使用 TCP 传输进行 CudaAllreduceHalvingDoubling 操作时出现 'Write must always succeed in sync mode' 错误，怎么办？","该错误发生在同步模式下，当 writev 调用未能发送全部预期字节时触发。根本原因是同步模式对网络延迟敏感，容易因部分写入而失败。解决方案是将 Caffe2 更新为默认不使用同步模式（即改用异步模式）。维护者已确认此更改，并指出这仅影响延迟，不会改变 CPU 或内存行为。确保你的 Caffe2 版本已应用此修复。","https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fgloo\u002Fissues\u002F34",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},38079,"是否可以通过 RoCE 在以太网上运行 InfiniBand (IB) 基准测试？","理论上可以尝试，但实际运行中可能会遇到 'Work Request Flushed Error' 等错误。这表明 RoCE 环境与原生 InfiniBand 在底层实现上存在差异，可能导致工作请求刷新失败。目前官方未明确支持通过 RoCE 运行 IB 基准测试，遇到此类错误时需检查网卡驱动、固件及内核参数配置是否符合 RoCE 要求。如有其他日志错误也需一并排查。","https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fgloo\u002Fissues\u002F147",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},38080,"使用 clang5 编译 Caffe2 时遇到 'undefined template std::array' 错误，如何解决？","该错误是由于缺少头文件 \u003Carray> 导致的。在 libc++（clang 默认使用的标准库）中，头文件依赖更严格，不会隐式包含 \u003Carray>。解决方法是在出错的文件（如 gloo\u002Fcommon\u002Flinux.cc）顶部添加 #include \u003Carray>。维护者确认这是一个好建议，并考虑在 Caffe2 中应用此修复。macOS 用户因默认使用 clang 和 libc++，更易遇到此类问题。","https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fgloo\u002Fissues\u002F113",[]]