[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-NVIDIA--nccl-tests":3,"tool-NVIDIA--nccl-tests":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":103,"env_os":104,"env_gpu":105,"env_ram":106,"env_deps":107,"category_tags":113,"github_topics":79,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":114,"updated_at":115,"faqs":116,"releases":145},3752,"NVIDIA\u002Fnccl-tests","nccl-tests","NCCL Tests","nccl-tests 是专为 NVIDIA NCCL（NVIDIA 集合通信库）设计的性能与正确性验证工具。在多 GPU 并行计算和大规模分布式训练场景中，确保显卡间数据通信的高效与准确至关重要，而 nccl-tests 正是为了解决这一核心痛点而生。它能够对 AllReduce、Broadcast 等关键通信操作进行全方位测试，既能量化通信带宽与延迟等性能指标，又能严格校验数据传输结果的准确性，帮助用户快速定位硬件故障或配置瓶颈。\n\n这款工具主要面向 AI 基础设施工程师、高性能计算研究人员以及深度学习框架开发者。如果你正在搭建多机多卡训练集群，或需要优化大规模模型的通信效率，nccl-tests 将是不可或缺的调试利器。其技术亮点在于高度灵活的测试配置：支持通过 MPI 实现跨节点多进程测试，允许用户自定义线程数、GPU 数量、数据大小范围及递增策略，并能细致调节预热次数、迭代轮数和聚合操作等参数。无论是单节点 8 卡的基础验证，还是跨越数十个节点的大规模集群压力测试，nccl-tests 都能提供详尽的数据报告，助您构建稳定高效的算力底座。","# NCCL Tests\n\nThese tests check both the performance and the correctness of [NCCL](http:\u002F\u002Fgithub.com\u002Fnvidia\u002Fnccl) operations.\n\n## Build\n\nTo build the tests, just type `make` or `make -j`\n\nIf CUDA is not installed in `\u002Fusr\u002Flocal\u002Fcuda`, you may specify `CUDA_HOME`. Similarly, if NCCL is not installed in `\u002Fusr`, you may specify `NCCL_HOME`.\n\n```shell\n$ make CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\nNCCL tests rely on MPI to work on multiple processes, hence multiple nodes. If you want to compile the tests with MPI support, you need to set `MPI=1` and set `MPI_HOME` to the path where MPI is installed.\n\n```shell\n$ make MPI=1 MPI_HOME=\u002Fpath\u002Fto\u002Fmpi CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\nYou can also add a suffix to the name of the generated binaries with `NAME_SUFFIX`. For example when compiling with the MPI versions you could use:\n\n```shell\n$ make MPI=1 NAME_SUFFIX=_mpi MPI_HOME=\u002Fpath\u002Fto\u002Fmpi CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\nThis will generate test binaries with names such as `all_reduce_perf_mpi`.\n\n## Usage\n\nNCCL tests can run on multiple processes, multiple threads, and multiple CUDA devices per thread. The number of process is managed by MPI and is therefore not passed to the tests as argument. The total number of ranks (=CUDA devices) will be equal to `(number of processes)*(number of threads)*(number of GPUs per thread)`.\n\n### Quick examples\n\nRun on single node with 8 GPUs (`-g 8`), scanning from 8 Bytes to 128MiB (Mebibytes), doubling between each test (`-f 2`) :\n\n```shell\n$ .\u002Fbuild\u002Fall_reduce_perf -b 8 -e 128M -f 2 -g 8\n```\n\nRun 64 MPI processes on nodes with 8 GPUs each, for a total of 64 GPUs spread across 8 nodes.\nScanning from 8 Bytes to 32GiB (Gibibytes), doubling between each test (`-f 2`).\n(NB: The nccl-tests binaries must be compiled with `MPI=1` for this case)\n\n```shell\n$ mpirun -np 64 -N 8 .\u002Fbuild\u002Fall_reduce_perf -b 8 -e 8G -f 2 -g 1\n```\n\n### Performance\n\nSee the [Performance](doc\u002FPERFORMANCE.md) page for explanation about numbers, and in particular the \"busbw\" column.\n\n### Arguments\n\nAll tests support the same set of arguments :\n\n* Number of GPUs\n  * `-t,--nthreads \u003Cnum threads>` number of threads per process. Default : 1.\n  * `-g,--ngpus \u003CGPUs per thread>` number of gpus per thread. Default : 1.\n* Sizes to scan\n  * `-b,--minbytes \u003Cmin size in bytes>` minimum size to start with. Default : 32M (Mebibytes).\n  * `-e,--maxbytes \u003Cmax size in bytes>` maximum size to end at. Default : 32M (Mebibytes).\n  * Increments can be either fixed or a multiplication factor. Only one of those should be used.\n    * `-i,--stepbytes \u003Cincrement size>` fixed increment between sizes. Default : 1M (Mebibytes).\n    * `-f,--stepfactor \u003Cincrement factor>` multiplication factor between sizes. Default : disabled.\n* NCCL operations arguments\n  * `-o,--op \u003Csum\u002Fprod\u002Fmin\u002Fmax\u002Favg\u002Fall>` Specify which reduction operation to perform. Only relevant for reduction operations like Allreduce, Reduce or ReduceScatter. Default : Sum.\n  * `-d,--datatype \u003Cnccltype\u002Fall>` Specify which datatype to use. Default : Float.\n  * `-r,--root \u003Croot\u002Fall>` Specify which root to use. Only for operations with a root like broadcast or reduce. Default : 0.\n* Performance\n  * `-n,--iters \u003Citeration count>` number of iterations. Default : 20.\n  * `-w,--warmup_iters \u003Cwarmup iteration count>` number of warmup iterations (not timed). Default : 1.\n  * `-m,--agg_iters \u003Caggregation count>` number of operations to aggregate together in each iteration. Default : 1.\n  * `-N,--run_cycles \u003Ccycle count>` run & print each cycle. Default : 1; 0=infinite.\n  * `-a,--average \u003C0\u002F1\u002F2\u002F3>` Report performance as an average across all ranks (MPI=1 only). \u003C0=Rank0,1=Avg,2=Min,3=Max>. Default : 1.\n* Test operation\n  * `-p,--parallel_init \u003C0\u002F1>` use threads to initialize NCCL in parallel. Default : 0.\n  * `-c,--check \u003Ccheck iteration count>` perform count iterations, checking correctness of results on each iteration. This can be quite slow on large numbers of GPUs. Default : 1.\n  * `-z,--blocking \u003C0\u002F1\u002F2>` collective blocking: 1=wait for completion and barrier, 2=wait without barrier. Default : 0.\n  * `-G,--cudagraph \u003Cnum graph launches>` Capture iterations as a CUDA graph and then replay specified number of times. Default : 0.\n  * `-C,--report_cputime \u003C0\u002F1>` Report CPU time instead of latency. Default : 0.\n  * `-R,--local_register \u003C0\u002F1\u002F2>` enable local (1) or symmetric (2) buffer registration on send\u002Frecv buffers. Default : 0.\n  * `-S,--report_timestamps \u003C0\u002F1>` Add timestamp (`\"%Y-%m-%d %H:%M:%S\"`) to each performance report line. Default : 0.\n  * `-J,--output_file \u003Cfile>` Write [JSON] output to filepath. Infer type from suffix (only `json` supported presently).\n  * `-T,--timeout \u003Ctime in seconds>` timeout each test after specified number of seconds. Default : disabled.\n  * `-M,--memory_report \u003C0\u002F1>` enable memory usage report. Default : 0.\n  * `-u,--unalign \u003Cindex of first element>` Misalign source and destination buffers. Default : 0.\n\n### Running multiple operations in parallel\n\nNCCL tests allow to partition the set of GPUs into smaller sets, each executing the same operation in parallel.\nTo split the GPUs, NCCL will compute a \"color\" for each rank, based on the `NCCL_TESTS_SPLIT` environment variable, then all ranks\nwith the same color will end up in the same group. The resulting group is printed next to each GPU at the beginning of the test.\n\n`NCCL_TESTS_SPLIT` takes the following syntax: `\u003Coperation>\u003Cvalue>`. Operation can be `AND`, `OR`, `MOD` or `DIV`. The `&`, `|`, `%`, and `\u002F` symbols are also supported. The value can be either decimal, hexadecimal (prefixed by `0x`) or binary (prefixed by `0b`).\n\n`NCCL_TESTS_SPLIT_MASK=\"\u003Cvalue>\"` is equivalent to `NCCL_TESTS_SPLIT=\"&\u003Cvalue>\"`.\n\nHere are a few examples:\n\n - `NCCL_TESTS_SPLIT=\"AND 0x7\"` or `NCCL_TESTS_SPLIT=\"MOD 8\"`: On systems with 8 GPUs, run 8 parallel operations, each with 1 GPU per node (purely communicating over the inter-node network)\n\n- `NCCL_TESTS_SPLIT=\"OR 0x7\"` or `NCCL_TESTS_SPLIT=\"DIV 8\"`: On systems with 8 GPUs, run one operation per node, purely intra-node.\n\n- `NCCL_TESTS_SPLIT=\"AND 0x1\"` or `NCCL_TESTS_SPLIT=\"MOD 2\"`: Run two operations, each operation using every other rank.\n\nNote that the reported bandwidth is per group, hence to get the total bandwidth used by all groups, one must multiply by the number of groups.\n\n## Copyright\n\nNCCL tests are provided under the BSD license. All source code and accompanying documentation is copyright (c) 2016-2026, NVIDIA CORPORATION. All rights reserved.\n","# NCCL 测试\n\n这些测试用于检查 [NCCL](http:\u002F\u002Fgithub.com\u002Fnvidia\u002Fnccl) 操作的性能和正确性。\n\n## 构建\n\n要构建测试，只需输入 `make` 或 `make -j`。\n\n如果 CUDA 未安装在 `\u002Fusr\u002Flocal\u002Fcuda` 目录下，可以指定 `CUDA_HOME`。同样地，如果 NCCL 未安装在 `\u002Fusr` 目录下，可以指定 `NCCL_HOME`。\n\n```shell\n$ make CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\nNCCL 测试依赖 MPI 在多个进程甚至多个节点上运行。若希望编译支持 MPI 的测试，则需要设置 `MPI=1` 并将 `MPI_HOME` 设置为 MPI 的安装路径。\n\n```shell\n$ make MPI=1 MPI_HOME=\u002Fpath\u002Fto\u002Fmpi CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\n还可以通过 `NAME_SUFFIX` 为生成的二进制文件添加后缀。例如，在编译 MPI 版本时，可以使用：\n\n```shell\n$ make MPI=1 NAME_SUFFIX=_mpi MPI_HOME=\u002Fpath\u002Fto\u002Fmpi CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\n这将生成名为 `all_reduce_perf_mpi` 等的测试二进制文件。\n\n## 使用\n\nNCCL 测试可以在多个进程、多线程以及每个线程使用多个 CUDA 设备的情况下运行。进程数量由 MPI 管理，因此不会作为参数传递给测试程序。总的进程数（即 CUDA 设备总数）等于 `(进程数) × (线程数) × (每线程 GPU 数)`。\n\n### 快速示例\n\n在单节点上使用 8 个 GPU（`-g 8`），扫描从 8 字节到 128 MiB（Mebibytes），每次测试大小翻倍（`-f 2`）：\n\n```shell\n$ .\u002Fbuild\u002Fall_reduce_perf -b 8 -e 128M -f 2 -g 8\n```\n\n在包含 8 个 GPU 的节点上运行 64 个 MPI 进程，总共 64 个 GPU 分布在 8 个节点上。\n扫描范围从 8 字节到 32 GiB（Gibibytes），每次测试大小翻倍（`-f 2`）。\n（注意：在这种情况下，nccl-tests 二进制文件必须以 `MPI=1` 编译）\n\n```shell\n$ mpirun -np 64 -N 8 .\u002Fbuild\u002Fall_reduce_perf -b 8 -e 8G -f 2 -g 1\n```\n\n### 性能\n\n有关数字的解释，尤其是“busbw”列，请参阅 [性能](doc\u002FPERFORMANCE.md) 页面。\n\n### 参数\n\n所有测试都支持相同的参数集：\n\n* GPU 数量\n  * `-t,--nthreads \u003C线程数>` 每个进程的线程数。默认值：1。\n  * `-g,--ngpus \u003C每线程 GPU 数>` 每个线程使用的 GPU 数量。默认值：1。\n* 扫描尺寸\n  * `-b,--minbytes \u003C最小字节数>` 开始扫描的最小尺寸。默认值：32 MiB（Mebibytes）。\n  * `-e,--maxbytes \u003C最大字节数>` 结束扫描的最大尺寸。默认值：32 MiB（Mebibytes）。\n  * 增量可以是固定值或乘法因子。两者只能选择其一。\n    * `-i,--stepbytes \u003C增量字节数>` 尺寸之间的固定增量。默认值：1 MiB（Mebibytes）。\n    * `-f,--stepfactor \u003C增量因子>` 尺寸之间的乘法因子。默认值：禁用。\n* NCCL 操作参数\n  * `-o,--op \u003Csum\u002Fprod\u002Fmin\u002Fmax\u002Favg\u002Fall>` 指定要执行的归约操作。仅对 Allreduce、Reduce 或 ReduceScatter 等归约操作有效。默认值：Sum。\n  * `-d,--datatype \u003Cnccltype\u002Fall>` 指定要使用的数据类型。默认值：Float。\n  * `-r,--root \u003C根\u002F全部>` 指定要使用的根。仅适用于具有根的操作，如广播或归约。默认值：0。\n* 性能\n  * `-n,--iters \u003C迭代次数>` 迭代次数。默认值：20。\n  * `-w,--warmup_iters \u003C预热迭代次数>` 预热迭代次数（不计时）。默认值：1。\n  * `-m,--agg_iters \u003C聚合次数>` 每次迭代中要聚合的操作次数。默认值：1。\n  * `-N,--run_cycles \u003C循环次数>` 每个循环都运行并打印结果。默认值：1；0=无限。\n  * `-a,--average \u003C0\u002F1\u002F2\u002F3>` 将性能报告为所有进程的平均值（仅限 MPI=1）。\u003C0=Rank0,1=平均,2=最小,3=最大>。默认值：1。\n* 测试操作\n  * `-p,--parallel_init \u003C0\u002F1>` 使用线程并行初始化 NCCL。默认值：0。\n  * `-c,--check \u003C检查迭代次数>` 执行指定次数的迭代，每次迭代都检查结果的正确性。对于大量 GPU 而言，这可能会非常耗时。默认值：1。\n  * `-z,--blocking \u003C0\u002F1\u002F2>` 集体阻塞：1=等待完成并同步屏障，2=等待但不同步屏障。默认值：0。\n  * `-G,--cudagraph \u003C图启动次数>` 将迭代捕获为 CUDA 图，并重复播放指定次数。默认值：0。\n  * `-C,--report_cputime \u003C0\u002F1>` 报告 CPU 时间而非延迟。默认值：0。\n  * `-R,--local_register \u003C0\u002F1\u002F2>` 在发送\u002F接收缓冲区上启用本地（1）或对称（2）缓冲区注册。默认值：0。\n  * `-S,--report_timestamps \u003C0\u002F1>` 在每行性能报告中添加时间戳（`\"%Y-%m-%d %H:%M:%S\"`）。默认值：0。\n  * `-J,--output_file \u003C文件>` 将 [JSON] 输出写入指定路径。根据后缀推断类型（目前仅支持 `json`）。\n  * `-T,--timeout \u003C秒数>` 在指定秒数后超时终止测试。默认值：禁用。\n  * `-M,--memory_report \u003C0\u002F1>` 启用内存使用情况报告。默认值：0。\n  * `-u,--unalign \u003C第一个元素索引>` 源缓冲区和目标缓冲区不对齐。默认值：0。\n\n### 并行运行多个操作\n\nNCCL 测试允许将 GPU 集群划分为若干小组，每组并行执行相同的操作。为了划分 GPU，NCCL 会根据 `NCCL_TESTS_SPLIT` 环境变量为每个进程计算一个“颜色”，然后具有相同颜色的进程会被分配到同一组。测试开始时，每个 GPU 旁边都会显示其所属的组别。\n\n`NCCL_TESTS_SPLIT` 的语法如下：\u003C操作>\u003C值>。操作可以是 `AND`、`OR`、`MOD` 或 `DIV`。`&`、`|`、`%` 和 `\u002F` 符号也受支持。值可以是十进制、十六进制（前缀为 `0x`）或二进制（前缀为 `0b`）。\n\n`NCCL_TESTS_SPLIT_MASK=\"\u003C值>\"` 等同于 `NCCL_TESTS_SPLIT=\"&\u003C值>\"`。\n\n以下是一些示例：\n\n- `NCCL_TESTS_SPLIT=\"AND 0x7\"` 或 `NCCL_TESTS_SPLIT=\"MOD 8\"`：在拥有 8 个 GPU 的系统上，运行 8 个并行操作，每个节点 1 个 GPU（仅通过节点间网络通信）。\n\n- `NCCL_TESTS_SPLIT=\"OR 0x7\"` 或 `NCCL_TESTS_SPLIT=\"DIV 8\"`：在拥有 8 个 GPU 的系统上，每个节点运行一个操作，完全在节点内部进行。\n\n- `NCCL_TESTS_SPLIT=\"AND 0x1\"` 或 `NCCL_TESTS_SPLIT=\"MOD 2\"`：运行两个操作，每个操作使用间隔的进程。\n\n请注意，报告的带宽是按组计算的，因此要获得所有组使用的总带宽，需将该数值乘以组数。\n\n## 版权\n\nNCCL 测试采用 BSD 许可证发布。所有源代码及配套文档的版权均属于 NVIDIA CORPORATION，版权所有，保留一切权利。","# NCCL Tests 快速上手指南\n\nNCCL Tests 是用于验证 NVIDIA NCCL 库性能与正确性的官方测试工具集，支持单卡、多卡及多节点集群环境。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux (推荐 Ubuntu\u002FCentOS)\n*   **硬件**：NVIDIA GPU (建议多卡环境以测试通信性能)\n*   **前置依赖**：\n    *   **CUDA Toolkit**：已安装并配置好环境变量。\n    *   **NCCL Library**：已安装 `libnccl` 和 `libnccl-dev`。\n    *   **MPI (可选)**：如需进行多节点或多进程测试，需安装 MPI (如 OpenMPI 或 MPICH)。\n    *   **编译工具**：`make`, `g++`。\n\n> **提示**：国内用户可通过阿里云、腾讯云等镜像源加速安装 `cuda-toolkit` 和 `libnccl2` 等相关依赖包。\n\n## 2. 安装步骤\n\n克隆仓库后，进入目录即可编译。默认情况下，工具会尝试在标准路径 (`\u002Fusr\u002Flocal\u002Fcuda`, `\u002Fusr`) 查找依赖。\n\n### 基础编译（单节点\u002F单机）\n如果 CUDA 和 NCCL 安装在非标准路径，请通过环境变量指定：\n\n```shell\nmake CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n*注：若依赖均在默认路径，直接运行 `make` 或 `make -j` 即可。*\n\n### 启用 MPI 支持（多节点\u002F集群）\n若需在多节点或多进程环境下运行，必须开启 MPI 支持：\n\n```shell\nmake MPI=1 MPI_HOME=\u002Fpath\u002Fto\u002Fmpi CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n\n### 自定义二进制文件名（可选）\n编译时可添加后缀以区分不同版本（例如 MPI 版本）：\n\n```shell\nmake MPI=1 NAME_SUFFIX=_mpi MPI_HOME=\u002Fpath\u002Fto\u002Fmpi CUDA_HOME=\u002Fpath\u002Fto\u002Fcuda NCCL_HOME=\u002Fpath\u002Fto\u002Fnccl\n```\n*编译成功后，生成的可执行文件将带有 `_mpi` 后缀，例如 `all_reduce_perf_mpi`。*\n\n## 3. 基本使用\n\n编译完成后，可执行文件位于 `build\u002F` 目录下。以下是两个最常用的场景示例。\n\n### 场景一：单机多卡测试\n在当前节点上使用 8 张 GPU 进行测试，数据大小从 8 Bytes 扫描至 128 MiB，每次翻倍。\n\n```shell\n.\u002Fbuild\u002Fall_reduce_perf -b 8 -e 128M -f 2 -g 8\n```\n\n**参数说明：**\n*   `-g 8`: 使用 8 张 GPU。\n*   `-b 8`: 起始数据大小为 8 Bytes。\n*   `-e 128M`: 结束数据大小为 128 MiB。\n*   `-f 2`: 步长因子为 2（即数据量按 2 倍递增）。\n\n### 场景二：多节点集群测试 (需 MPI)\n在 8 个节点上运行，每个节点 8 张 GPU，共 64 张卡。数据大小从 8 Bytes 扫描至 8 GiB。\n*(注意：此场景必须使用开启了 `MPI=1` 编译的版本)*\n\n```shell\nmpirun -np 64 -N 8 .\u002Fbuild\u002Fall_reduce_perf -b 8 -e 8G -f 2 -g 1\n```\n\n**参数说明：**\n*   `-np 64`: 总共启动 64 个进程。\n*   `-N 8`: 每个节点启动 8 个进程。\n*   `-g 1`: 每个线程绑定 1 张 GPU（总卡数 = 进程数 × 每线程卡数）。\n\n### 结果解读\n输出结果中的 `busbw` (Bus Bandwidth) 列是衡量 NCCL 通信性能的关键指标，数值越高代表带宽利用率越好。详细指标说明可参考项目文档 `doc\u002FPERFORMANCE.md`。","某 AI 实验室正在调试由 8 个节点、共 64 张 GPU 组成的新集群，以支撑千亿参数大模型的分布式训练任务。\n\n### 没有 nccl-tests 时\n- 团队只能盲目猜测网络瓶颈，无法区分是硬件故障、驱动配置错误还是 NCCL 算法策略不当导致的通信慢。\n- 缺乏量化基准，在调整 `NCCL_ALGO` 或拓扑参数后，无法确切知道性能是提升了还是恶化了，全靠“玄学”调优。\n- 多机通信偶尔出现静默数据错误（结果不对但程序不报错），导致模型训练数天后收敛失败，排查成本极高。\n- 运维人员难以向硬件供应商提供确凿的性能测试证据，遇到带宽不达标时容易陷入互相推诿的扯皮局面。\n\n### 使用 nccl-tests 后\n- 通过运行 `all_reduce_perf_mpi` 快速扫描不同数据块大小，精准定位到特定消息长度下的带宽异常，迅速锁定是交换机配置问题。\n- 利用生成的 \"busbw\" 指标建立性能基线，每次修改环境配置后都能直观对比数据，科学地选出了当前拓扑下的最优通信算法。\n- 开启正确性检查模式（`-c` 参数），在正式训练前就拦截了因显存位翻转导致的聚合计算错误，避免了数天的算力浪费。\n- 输出标准化的性能报告作为验收依据，用实测数据证明集群达到了理论带宽的 95%，顺利完成了基础设施交付。\n\nnccl-tests 将模糊的分布式通信问题转化为可量化、可复现的具体指标，是保障大规模 GPU 集群高效稳定运行的“听诊器”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_nccl-tests_8b1cc1ad.png","NVIDIA","NVIDIA Corporation","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVIDIA_7dcf6000.png","",null,"https:\u002F\u002Fnvidia.com","https:\u002F\u002Fgithub.com\u002FNVIDIA",[83,87,91,95],{"name":84,"color":85,"percentage":86},"Cuda","#3A4E3A",86.3,{"name":88,"color":89,"percentage":90},"C++","#f34b7d",8.9,{"name":92,"color":93,"percentage":94},"Makefile","#427819",3.1,{"name":96,"color":97,"percentage":98},"C","#555555",1.7,1480,362,"2026-04-05T06:12:36","BSD-3-Clause",4,"Linux","必需 NVIDIA GPU（依赖 NCCL），具体型号和显存大小未说明，需安装 CUDA","未说明",{"notes":108,"python":106,"dependencies":109},"该工具主要通过 Make 编译 C\u002FC++ 代码，非 Python 包。若需支持多节点或多进程测试，编译时必须启用 MPI 支持（设置 MPI=1 并指定 MPI_HOME）。运行时的 GPU 数量由命令行参数（-g, -t）及 MPI 进程数决定。",[110,111,112],"CUDA","NCCL","MPI (可选，用于多节点\u002F多进程测试)",[13,54],"2026-03-27T02:49:30.150509","2026-04-06T05:16:59.055453",[117,122,127,132,137,141],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},17180,"在使用多张 RTX 4090 显卡运行 NCCL all_reduce_perf 测试时程序挂起，但使用 2080 Ti 则正常，如何解决？","这是一个已知的驱动或 P2P 通信兼容性问题。解决方案有两种：\n1. 设置环境变量禁用 P2P 通信：export NCCL_P2P_DISABLE=1（虽然速度会变慢，但可以正常工作）。\n2. 尝试降级 NVIDIA 驱动程序版本（例如从 545 降级到 535），旧版本驱动可能在多卡环境下更稳定。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnccl-tests\u002Fissues\u002F117",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},17181,"运行 all_reduce_perf 测试时发生挂起，日志显示\"Connection closed by remote peer\"，可能是什么原因？","这通常是由主机上的安全软件（如杀毒软件或防火墙）拦截了 NCCL 所需的网络套接字连接导致的。有用户确认，禁用 ESET 杀毒软件的\"Web Access Protection\"（Web 访问保护）功能后，该问题得以解决。请检查并暂时禁用可能干扰本地网络通信的安全软件。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnccl-tests\u002Fissues\u002F217",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},17182,"在双路或多路 RTX 5090 显卡上运行 all_reduce_perf 测试报错，单卡却正常，该如何修复？","这是特定于新架构显卡（如 5090）的 Bug，已在后续版本中修复。请确保您使用的是包含最新补丁的 NCCL 版本。维护者已确认该问题在更新代码库后得到解决，多卡测试（如 4 张 5090）可正常运行。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnccl-tests\u002Fissues\u002F287",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},17183,"在 L20 等多卡服务器上运行 all_reduce_perf 时出现核心转储（core dumped）错误，如何调试？","遇到此类崩溃问题时，维护者通常需要提供详细的拓扑信息来定位问题。请按照以下步骤操作：\n1. 应用维护者提供的修复补丁（如果有）。\n2. 设置环境变量生成拓扑转储文件：export NCCL_TOPO_DUMP_FILE=nccl_topo.dump。\n3. 重新运行测试命令，并将生成的 dump 文件提供给开发团队分析。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnccl-tests\u002Fissues\u002F233",{"id":138,"question_zh":139,"answer_zh":140,"source_url":121},17184,"NCCL 测试在多卡环境下因驱动版本问题失败，有哪些通用的临时规避措施？","如果怀疑是新版驱动程序导致的兼容性问题（特别是在使用最新显卡如 4090 时），可以尝试以下通用规避方案：\n1. 强制禁用点对点通信：export NCCL_P2P_DISABLE=1。\n2. 回退到上一个稳定的长期支持版（LTS）驱动程序（例如从 545 系列回退到 535 系列），这通常能解决多卡握手失败的问题。",{"id":142,"question_zh":143,"answer_zh":144,"source_url":131},17185,"如何验证 NCCL 修复补丁是否在特定的新显卡（如 5090）上生效？","可以通过运行多卡性能测试来验证。使用 sudo 权限执行 all_reduce_perf 并指定显卡数量（例如 -g 4），观察输出中是否包含所有预期的 Rank 且无报错。示例命令：sudo .\u002Fbuild\u002Fall_reduce_perf -b 8 -e 128M -f 2 -g 4。如果输出显示了所有显卡的 Rank 信息且带宽数据正常生成，说明修复生效。",[]]