[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-perplexityai--pplx-kernels":3,"tool-perplexityai--pplx-kernels":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 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[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":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":102,"forks":103,"last_commit_at":104,"license":105,"difficulty_score":106,"env_os":107,"env_gpu":108,"env_ram":109,"env_deps":110,"category_tags":119,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":120,"updated_at":121,"faqs":122,"releases":163},4934,"perplexityai\u002Fpplx-kernels","pplx-kernels","Perplexity GPU Kernels","pplx-kernels 是 Perplexity AI 开源的一套高性能 GPU 内核库，专为优化大规模混合专家模型（MoE）的训练与推理而设计。它主要解决了在多卡或多节点环境下，MoE 模型中专家路由带来的通信瓶颈问题，通过高效的数据分发与聚合机制，显著降低延迟并提升吞吐量。\n\n这套工具非常适合从事大模型底层开发的研究人员、算法工程师以及系统架构师使用，尤其是那些需要在复杂集群环境中部署 MoE 架构的团队。pplx-kernels 的核心亮点在于其卓越的通信优化能力：它不仅支持 CUDA Graph 以进一步加速执行流程，还能灵活适配 NVLink、IBGDA、IBRC 及 EFA 等多种高速互联传输层。更关键的是，它实现了通信与计算的重叠执行，最大限度地隐藏了网络延迟。尽管官方提示旧版基于 NVSHMEM 的内核已逐步弃用并引导至新项目，但现有代码库仍展示了其在不同拓扑规模下（如 EP8 至 EP128）精细的性能调优成果，为构建高效的分布式深度学习系统提供了坚实的底层支撑。","# !!!DEPRECATION!!!\n\nWe deprecated the old NVSHMEM-based kernels in this repo. Please check out our newer kernels in \u003Chttps:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-garden>.\n\n# Perplexity MoE Kernels\n\nFeatures:\n\n* ✅ Cuda Graph support\n* ✅ Flexible transportation layers: NVLink, IBGDA, IBRC, EFA\n* ✅ Overlapping communication and computation\n\n## System Requirements\n\nTo learn how to set up the system drivers and dependencies, refer to the [Install Driver and Dependencies](docs\u002Finstall-driver-and-dependencies.md) guide.\n\n## Installation\n\n```bash\ncd pplx-kernels\nTORCH_CUDA_ARCH_LIST=9.0a+PTX python3 setup.py bdist_wheel\npip install dist\u002F*.whl\n```\n\n## Single-node Testing and Benchmarking\n\nTest:\n\n```bash\npytest -svx --tb=short tests\n```\n\nBenchmark:\n\n```bash\npython3 -m tests.bench_all_to_all\n```\n\n## Multi-node Testing and Benchmarking\n\nTo run an all-to-all test across multiple nodes:\n\n```bash\nexport NODE_RANK= # 0, 1, ..., num_nodes-1\nexport WORLD_SIZE= # num_nodes * 8\nexport WORLD_LOCAL_SIZE=8\nexport MASTER_ADDR= # IP address of rank-0 node\nexport MASTER_PORT=29500\nexport NVSHMEM_IB_ENABLE_IBGDA=1\n```\n\nAn then run the tests normally:\n\n```bash\npytest -svx tests\u002Ftest_all_to_all.py\n```\n\n## Benchmark Results\n\n1 token per GPU:\n\n|    1 tok per GPU   |       EP128       |       EP64       |       EP32       |       EP16       |       EP8       |\n|:------------------:|:-----------------:|:----------------:|:----------------:|:----------------:|:---------------:|\n|   NVLINK Dispatch  | x                 | x                | x                | x                | 41.6μs ±  1.3μs |\n|   IBGDA Dispatch   | 125.9μs ±  0.6μs  | 121.0μs ±  0.2μs | 115.7μs ±  1.4μs | 102.7μs ±  8.7μs | x               |\n|    IBRC Dispatch   | 488.4μs ± 51.0μs  | 525.0μs ±  9.4μs | 421.2μs ± 35.5μs | 290.5μs ±  4.7μs | x               |\n|   NVLINK Combine   | x                 | x                | x                | x                | 41.7μs ±  3.0μs |\n|    IBGDA Combine   | 63.2μs ±  8.3μs   | 58.6μs ±  1.0μs  | 55.4μs ±  0.8μs  | 62.7μs ±  0.7μs  | x               |\n|    IBRC Combine    | 786.8μs ± 149.8μs | 400.0μs ± 47.9μs | 122.1μs ± 38.2μs | 85.9μs ±  5.3μs  | x               |\n|      Torch AtA     | 132.0μs ± 25.9μs  | 101.6μs ± 15.7μs | 95.7μs ± 14.3μs  | 109.7μs ±  3.1μs | 24.4μs ± 16.3μs |\n| NVLINK NVSHMEM AtA | x                 | x                | x                | x                | 59.9μs ± 30.7μs |\n|  IBGDA NVSHMEM AtA | 132.4μs ± 73.3μs  | 95.3μs ± 23.5μs  | 77.3μs ± 23.0μs  | 71.7μs ± 14.6μs  | x               |\n|  IBRC NVSHMEM AtA  | 258.8μs ± 145.3μs | 98.9μs ± 57.1μs  | 63.2μs ± 20.3μs  | 55.4μs ± 12.6μs  | x               |\n\n\n128 tokens per GPU:\n\n|   128 tok per GPU  |        EP128       |        EP64        |        EP32        |        EP16       |        EP8        |\n|:------------------:|:------------------:|:------------------:|:------------------:|:-----------------:|:-----------------:|\n|   DeepEP Dispatch  | 192μs              | 186μs              | 182μs              | 173μs             | 163μs             |\n|   NVLINK Dispatch  | x                  | x                  | x                  | x                 | 83.6μs ±  1.0μs   |\n|   IBGDA Dispatch   | 307.7μs ±  3.0μs   | 317.4μs ±  1.5μs   | 427.6μs ±  1.4μs   | 622.4μs ±  1.7μs  | x                 |\n|    IBRC Dispatch   | 2038.5μs ± 77.0μs  | 1669.3μs ± 64.0μs  | 973.5μs ± 37.9μs   | 687.1μs ± 12.9μs  | x                 |\n|   DeepEP Combine   | 369μs              | 353μs              | 350μs              | 329μs             | 318μs             |\n|   NVLINK Combine   | x                  | x                  | x                  | x                 | 102.3μs ±  0.6μs  |\n|    IBGDA Combine   | 593.9μs ±  6.6μs   | 529.9μs ±  6.7μs   | 481.4μs ±  3.6μs   | 668.1μs ±  3.4μs  | x                 |\n|    IBRC Combine    | 1184.8μs ± 79.7μs  | 1058.5μs ± 49.6μs  | 916.5μs ± 45.1μs   | 633.4μs ± 14.0μs  | x                 |\n|      Torch AtA     | 4972.0μs ± 135.8μs | 5418.1μs ± 241.4μs | 4225.9μs ± 69.5μs  | 3213.9μs ± 19.7μs | 699.9μs ±  2.2μs  |\n| NVLINK NVSHMEM AtA | x                  | x                  | x                  | x                 | 6585.3μs ±  2.4μs |\n|  IBGDA NVSHMEM AtA | 6180.1μs ± 344.7μs | 6916.3μs ± 315.4μs | 4603.4μs ± 133.1μs | 3444.8μs ± 15.3μs | x                 |\n|  IBRC NVSHMEM AtA  | 6378.5μs ± 375.9μs | 6625.1μs ± 371.3μs | 4371.3μs ± 148.8μs | 3410.1μs ± 20.2μs | x                 |\n\n\n## C++ Testing\n\nTo build the C++ tests and benchmarks:\n\n```bash\ncd pplx-kernels\nmkdir build-cmake\ncd build-cmake\n\nexport TORCH_PREFIX_PATH=$(python3 -c 'import torch; print(torch.utils.cmake_prefix_path)')\n\ncmake ..\u002Fcsrc \\\n    -GNinja \\\n    -DCMAKE_PREFIX_PATH=$TORCH_PREFIX_PATH \\\n    -DTORCH_CUDA_ARCH_LIST=9.0a+PTX \\\n    -DWITH_TESTS=ON \\\n    -DWITH_BENCHMARKS=ON\n\nninja test_all_to_all bench_all_to_all\n```\n\nTo run the all-to-all tests on one node:\n\n```bash\nNVSHMEM_REMOTE_TRANSPORT=none mpirun -np 4 .\u002Fall_to_all\u002Ftest_all_to_all\n```\n\n\nTo run the all-to-all benchmarks on one node:\n\n```bash\nNVSHMEM_REMOTE_TRANSPORT=none mpirun -np 4 .\u002Fall_to_all\u002Fbench_all_to_all\n```\n\n## Citation\n\nIf you use this codebase or otherwise find our work valuable, please cite:\n\n```bibtex\n@misc{pplx-kernels,\n  title={{pplx-kernels}: {Perplexity} {MoE} Kernels},\n  author={Nandor Licker and Kevin Hu and Vladimir Zaytsev and Lequn Chen},\n  year={2025},\n  publisher = {GitHub},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels}},\n}\n```\n","# !!!已弃用!!!\n\n我们已在此仓库中弃用了基于 NVSHMEM 的旧内核。请查看我们在 \u003Chttps:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-garden> 中的较新内核。\n\n# Perplexity MoE 内核\n\n特性：\n\n* ✅ 支持 CUDA 图\n* ✅ 灵活的传输层：NVLink、IBGDA、IBRC、EFA\n* ✅ 通信与计算重叠\n\n## 系统要求\n\n有关如何设置系统驱动程序和依赖项，请参阅 [安装驱动程序和依赖项](docs\u002Finstall-driver-and-dependencies.md) 指南。\n\n## 安装\n\n```bash\ncd pplx-kernels\nTORCH_CUDA_ARCH_LIST=9.0a+PTX python3 setup.py bdist_wheel\npip install dist\u002F*.whl\n```\n\n## 单节点测试和基准测试\n\n测试：\n\n```bash\npytest -svx --tb=short tests\n```\n\n基准：\n\n```bash\npython3 -m tests.bench_all_to_all\n```\n\n## 多节点测试和基准测试\n\n要在多个节点之间运行全对全测试：\n\n```bash\nexport NODE_RANK= # 0, 1, ..., num_nodes-1\nexport WORLD_SIZE= # num_nodes * 8\nexport WORLD_LOCAL_SIZE=8\nexport MASTER_ADDR= # rank-0 节点的 IP 地址\nexport MASTER_PORT=29500\nexport NVSHMEM_IB_ENABLE_IBGDA=1\n```\n\n然后正常运行测试：\n\n```bash\npytest -svx tests\u002Ftest_all_to_all.py\n```\n\n## 基准测试结果\n\n每 GPU 1 个 token：\n\n|    每 GPU 1 个 token   |       EP128       |       EP64       |       EP32       |       EP16       |       EP8       |\n|:------------------:|:-----------------:|:----------------:|:----------------:|:----------------:|:---------------:|\n|   NVLINK 分发  | x                 | x                | x                | x                | 41.6μs ±  1.3μs |\n|   IBGDA 分发   | 125.9μs ±  0.6μs  | 121.0μs ±  0.2μs | 115.7μs ±  1.4μs | 102.7μs ±  8.7μs | x               |\n|    IBRC 分发   | 488.4μs ± 51.0μs  | 525.0μs ±  9.4μs | 421.2μs ± 35.5μs | 290.5μs ±  4.7μs | x               |\n|   NVLINK 聚合   | x                 | x                | x                | x                | 41.7μs ±  3.0μs |\n|    IBGDA 聚合   | 63.2μs ±  8.3μs   | 58.6μs ±  1.0μs  | 55.4μs ±  0.8μs  | 62.7μs ±  0.7μs  | x               |\n|    IBRC 聚合    | 786.8μs ± 149.8μs | 400.0μs ± 47.9μs | 122.1μs ± 38.2μs | 85.9μs ±  5.3μs  | x               |\n|      Torch 全对全     | 132.0μs ± 25.9μs  | 101.6μs ± 15.7μs | 95.7μs ± 14.3μs  | 109.7μs ±  3.1μs | 24.4μs ± 16.3μs |\n| NVLINK NVSHMEM 全对全 | x                 | x                | x                | x                | 59.9μs ± 30.7μs |\n|  IBGDA NVSHMEM 全对全 | 132.4μs ± 73.3μs  | 95.3μs ± 23.5μs  | 77.3μs ± 23.0μs  | 71.7μs ± 14.6μs  | x               |\n|  IBRC NVSHMEM 全对全  | 258.8μs ± 145.3μs | 98.9μs ± 57.1μs  | 63.2μs ± 20.3μs  | 55.4μs ± 12.6μs  | x               |\n\n\n每 GPU 128 个 token：\n\n|   每 GPU 128 个 token  |        EP128       |        EP64        |        EP32        |        EP16       |        EP8        |\n|:------------------:|:------------------:|:------------------:|:------------------:|:-----------------:|:-----------------:|\n|   DeepEP 分发  | 192μs              | 186μs              | 182μs              | 173μs             | 163μs             |\n|   NVLINK 分发  | x                  | x                  | x                  | x                 | 83.6μs ±  1.0μs   |\n|   IBGDA 分发   | 307.7μs ±  3.0μs   | 317.4μs ±  1.5μs   | 427.6μs ±  1.4μs   | 622.4μs ±  1.7μs  | x                 |\n|    IBRC 分发    | 2038.5μs ± 77.0μs  | 1669.3μs ± 64.0μs  | 973.5μs ± 37.9μs   | 687.1μs ± 12.9μs  | x                 |\n|   DeepEP 聚合  | 369μs              | 353μs              | 350μs              | 329μs             | 318μs             |\n|   NVLINK 聚合   | x                  | x                  | x                  | x                 | 102.3μs ±  0.6μs  |\n|    IBGDA 聚合   | 593.9μs ±  6.6μs   | 529.9μs ±  6.7μs   | 481.4μs ±  3.6μs   | 668.1μs ±  3.4μs  | x                 |\n|    IBRC 聚合    | 1184.8μs ± 79.7μs  | 1058.5μs ± 49.6μs  | 916.5μs ± 45.1μs   | 633.4μs ± 14.0μs  | x                 |\n|      Torch 全对全     | 4972.0μs ± 135.8μs | 5418.1μs ± 241.4μs | 4225.9μs ± 69.5μs  | 3213.9μs ± 19.7μs | 699.9μs ±  2.2μs  |\n| NVLINK NVSHMEM 全对全 | x                  | x                  | x                  | x                 | 6585.3μs ±  2.4μs |\n|  IBGDA NVSHMEM 全对全 | 6180.1μs ± 344.7μs | 6916.3μs ± 315.4μs | 4603.4μs ± 133.1μs | 3444.8μs ± 15.3μs | x                 |\n|  IBRC NVSHMEM 全对全  | 6378.5μs ± 375.9μs | 6625.1μs ± 371.3μs | 4371.3μs ± 148.8μs | 3410.1μs ± 20.2μs | x                 |\n\n\n## C++ 测试\n\n要构建 C++ 测试和基准：\n\n```bash\ncd pplx-kernels\nmkdir build-cmake\ncd build-cmake\n\nexport TORCH_PREFIX_PATH=$(python3 -c 'import torch; print(torch.utils.cmake_prefix_path)')\n\ncmake ..\u002Fcsrc \\\n    -GNinja \\\n    -DCMAKE_PREFIX_PATH=$TORCH_PREFIX_PATH \\\n    -DTORCH_CUDA_ARCH_LIST=9.0a+PTX \\\n    -DWITH_TESTS=ON \\\n    -DWITH_BENCHMARKS=ON\n\nninja test_all_to_all bench_all_to_all\n```\n\n要在单个节点上运行全对全测试：\n\n```bash\nNVSHMEM_REMOTE_TRANSPORT=none mpirun -np 4 .\u002Fall_to_all\u002Ftest_all_to_all\n```\n\n\n要在单个节点上运行全对全基准：\n\n```bash\nNVSHMEM_REMOTE_TRANSPORT=none mpirun -np 4 .\u002Fall_to_all\u002Fbench_all_to_all\n```\n\n## 引用\n\n如果您使用此代码库或以其他方式认为我们的工作有价值，请引用：\n\n```bibtex\n@misc{pplx-kernels,\n  title={{pplx-kernels}: {Perplexity} {MoE} Kernels},\n  author={Nandor Licker and Kevin Hu and Vladimir Zaytsev and Lequn Chen},\n  year={2025},\n  publisher = {GitHub},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels}},\n}\n```","# pplx-kernels 快速上手指南\n\n> **⚠️ 重要提示**：本仓库中基于旧版 NVSHMEM 的内核已**弃用**。如需使用最新功能，请迁移至新仓库：[pplx-garden](https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-garden)。以下内容仅针对当前仓库的历史版本或特定兼容需求。\n\n`pplx-kernels` 是 Perplexity AI 开源的高性能 MoE（混合专家模型）内核库，支持 CUDA Graph、多种通信后端（NVLink, IBGDA, IBRC, EFA）以及计算与通信重叠优化。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **GPU 架构**：需要支持 CUDA Compute Capability 9.0a (Hopper 架构，如 H100) 或更高。\n*   **驱动程序与依赖**：必须正确安装 NVIDIA 驱动、CUDA Toolkit 以及相关的通信库（如 NVSHMEM, InfiniBand verbs 等）。\n*   **配置指南**：详细的驱动安装和依赖配置步骤，请参考官方文档 [Install Driver and Dependencies](docs\u002Finstall-driver-and-dependencies.md)。\n\n## 安装步骤\n\n请克隆仓库并执行以下命令进行编译和安装。注意 `TORCH_CUDA_ARCH_LIST` 需根据您的显卡架构调整（默认示例为 9.0a+PTX）。\n\n```bash\ncd pplx-kernels\nTORCH_CUDA_ARCH_LIST=9.0a+PTX python3 setup.py bdist_wheel\npip install dist\u002F*.whl\n```\n\n> 💡 **国内加速建议**：如果 `pip install` 下载缓慢，可指定国内镜像源：\n> `pip install dist\u002F*.whl -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\n### 1. 单节点测试与基准测试\n\n安装完成后，您可以立即运行单元测试或基准测试来验证安装是否成功。\n\n**运行测试：**\n```bash\npytest -svx --tb=short tests\n```\n\n**运行基准测试（All-to-All）：**\n```bash\npython3 -m tests.bench_all_to_all\n```\n\n### 2. 多节点测试（简要）\n\n若需在多节点环境下运行 All-to-All 测试，需先设置环境变量（以 8 卡节点为例）：\n\n```bash\nexport NODE_RANK=0                  # 当前节点排名 (0, 1, ...)\nexport WORLD_SIZE=8                 # 总进程数 (节点数 * 8)\nexport WORLD_LOCAL_SIZE=8           # 单节点进程数\nexport MASTER_ADDR=192.168.1.100    # Rank-0 节点的 IP 地址\nexport MASTER_PORT=29500\nexport NVSHMEM_IB_ENABLE_IBGDA=1    # 启用 IBGDA\n```\n\n设置完成后，正常运行测试脚本：\n```bash\npytest -svx tests\u002Ftest_all_to_all.py\n```\n\n### 3. C++ 构建与测试（可选）\n\n如果您需要构建 C++ 层面的测试或基准工具：\n\n```bash\ncd pplx-kernels\nmkdir build-cmake\ncd build-cmake\n\nexport TORCH_PREFIX_PATH=$(python3 -c 'import torch; print(torch.utils.cmake_prefix_path)')\n\ncmake ..\u002Fcsrc \\\n    -GNinja \\\n    -DCMAKE_PREFIX_PATH=$TORCH_PREFIX_PATH \\\n    -DTORCH_CUDA_ARCH_LIST=9.0a+PTX \\\n    -DWITH_TESTS=ON \\\n    -DWITH_BENCHMARKS=ON\n\nninja test_all_to_all bench_all_to_all\n```\n\n运行单节点 C++ 测试：\n```bash\nNVSHMEM_REMOTE_TRANSPORT=none mpirun -np 4 .\u002Fall_to_all\u002Ftest_all_to_all\n```","某大模型团队正在基于 MoE（混合专家）架构训练千亿参数模型，需跨越多台服务器进行高频的专家路由通信。\n\n### 没有 pplx-kernels 时\n- **通信延迟极高**：在跨节点 All-to-All 通信中，原生 PyTorch 实现耗时高达数毫秒（如 128 token 场景下超 4000μs），成为训练速度的最大瓶颈。\n- **计算资源闲置**：由于缺乏通信与计算重叠机制，GPU 在等待数据传输时被迫空转，算力利用率不足 60%。\n- **网络适配困难**：面对 NVLink、IBGDA 或 IBRC 等不同互联技术，需手动编写复杂的底层代码，且难以灵活切换。\n- **扩展性受限**：随着专家数量（EP）增加，通信开销呈指数级上升，导致模型无法有效扩展到更多节点。\n\n### 使用 pplx-kernels 后\n- **通信速度飞跃**：利用优化的 CUDA Kernel，跨节点通信延迟降低数十倍（如 IBGDA 场景下降至约 300μs），大幅缩短迭代周期。\n- **算力满负荷运转**：通过通信计算重叠技术与 Cuda Graph 支持，消除了等待时间，GPU 利用率提升至 90% 以上。\n- **异构网络无缝兼容**：内置灵活的传输层抽象，一键适配 NVLink、InfiniBand 等多种硬件环境，无需重复造轮子。\n- **大规模线性扩展**：即使在 EP128 的高并发路由下，仍能保持低延迟稳定运行，支撑千卡集群高效训练。\n\npplx-kernels 通过极致的底层通信优化，将原本被网络阻塞的 MoE 训练任务转化为算力满载的高速流水线。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fperplexityai_pplx-kernels_a7a5b215.png","perplexityai","Perplexity AI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fperplexityai_240b9c2a.png","Open Source @ Perplexity AI",null,"github-publisher@perplexity.ai","perplexity_ai","https:\u002F\u002Fwww.perplexity.ai\u002F","https:\u002F\u002Fgithub.com\u002Fperplexityai",[82,86,90,94,98],{"name":83,"color":84,"percentage":85},"C++","#f34b7d",46.9,{"name":87,"color":88,"percentage":89},"Cuda","#3A4E3A",26.4,{"name":91,"color":92,"percentage":93},"Python","#3572A5",21.7,{"name":95,"color":96,"percentage":97},"CMake","#DA3434",2.5,{"name":99,"color":100,"percentage":101},"C","#555555",2.4,564,82,"2026-03-27T16:52:29","MIT",5,"Linux","必需 NVIDIA GPU，架构需支持 CUDA Compute Capability 9.0 (如 H100)，需安装 NVSHMEM 及特定网卡驱动以支持 NVLink, IBGDA, IBRC, EFA","未说明",{"notes":111,"python":112,"dependencies":113},"该仓库已弃用，官方建议迁移至新仓库 'pplx-garden'。编译时需设置环境变量 TORCH_CUDA_ARCH_LIST=9.0a+PTX。多节点测试依赖 MPI (mpirun) 和特定的网络传输配置 (如 IBGDA)。主要功能为混合专家模型 (MoE) 的通信与计算重叠优化。","3.x (通过 python3 调用)",[114,115,116,117,118],"torch","pytest","cmake","ninja","nvshmem",[35,14],"2026-03-27T02:49:30.150509","2026-04-11T16:53:00.783037",[123,128,133,138,143,148,153,158],{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},22410,"pplx-kernels 支持哪些 GPU 型号？RTX 4090 可以使用吗？","该库依赖 NVSHMEM，因此 GPU 必须支持 GPUDirect RDMA（通常为 NVIDIA 数据中心级 GPU，如 H100\u002FA100）。消费级显卡如 RTX 4090 不支持 NVLink 和 GPUDirect 技术，因此无法使用。维护者表示即将发布不依赖 NVSHMEM 但依然依赖 NVLink 的节点内内核。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F9",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},22411,"是否有计划集成到 vLLM 或 SGLang 中？","是的，团队正与 vLLM 和 SGLang 开发者紧密合作进行集成。vLLM 的追踪议题见：https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm\u002Fissues\u002F16039，SGLang 的追踪议题见：https:\u002F\u002Fgithub.com\u002Fsgl-project\u002Fsglang\u002Fissues\u002F5010。部分代码贡献已合并回主仓库。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F1",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},22412,"运行测试时出现失败或报错，如何解决？","如果遇到测试失败，尝试设置环境变量 `NVSHMEM_REMOTE_TRANSPORT=None`。此外，建议从源码编译 NVSHMEM 而不是使用官方二进制包，因为官方版本可能存在兼容性问题。确保 NVIDIA 驱动与 CUDA 版本兼容（注意：CUDA 前向兼容性仅支持数据中心 GPU，不支持 GeForce 系列）。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F12",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},22413,"README 中的基准测试数据是在什么配置下得出的？为什么带宽看起来超过了硬件限制？","README 中的基准测试结果基于 H100 集群，其 NVLink 带宽为 450GB\u002Fs（而非用户误以为的 200GB\u002Fs）。测试配置为：256 个专家、top-8 专家选择、7168 隐藏维度、FP8 dispatch 和 BF16 combine。基准测试脚本位于 `tests\u002Fbench_all_to_all.py`。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F10",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},22414,"IBGDA 的性能为何不如预期的 torchA2A？Dispatch\u002FCombine 与标准 all-to-all 有何区别？","IBGDA 只是通信通道，性能取决于算法和实现。Dispatch\u002FCombine 的语义与标准的稠密 all-to-all 不同。即使 NVSHMEM 实现了高效的 all-to-all（类似 NCCL），它仍然可能比 Dispatch\u002FCombine 慢，因为稠密 all-to-all 传输的数据量更大。延迟差异主要源于数据传输量和操作语义的不同。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F8",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},22415,"遇到 `\u002Fetc\u002Fmodprobe.d\u002Fnvidia.conf` 文件或目录不存在的问题怎么办？","可以尝试手动创建目录：`mkdir \u002Fetc\u002Fmodprobe.d`。如果报错涉及“前向兼容性”，通常是因为在 GeForce 显卡上使用了仅支持数据中心 GPU 的 CUDA 特性，建议安装最新驱动或更换为数据中心 GPU。此外，强烈建议从源码构建 NVSHMEM 以避免官方二进制包的潜在问题。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F7",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},22416,"是否支持 SM100 (B200) 架构？","虽然 README 示例中使用了 `TORCH_CUDA_ARCH_LIST=9.0a+PTX`，但用户可以通过添加相应的架构代号来支持更新的 GPU。对于 B200 (SM100)，需要在编译时指定对应的 compute capability（例如在 `TORCH_CUDA_ARCH_LIST` 中包含 `10.0` 或相应值），具体需参考 PyTorch 和 CUDA 对最新架构的支持情况。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F26",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},22417,"在 EFA 环境下运行基准测试时报错 'Argument list too long' 是什么原因？","该错误通常出现在特定的进程配置下（如单节点 6 个进程），而在其他配置（如 4 或 8 个进程）下正常。这可能与 libfabric 传输层在处理特定大小的原子操作（AMO）时的限制有关。建议尝试调整 `WORLD_LOCAL_SIZE`（每节点进程数）避开该数值，或检查 NVSHMEM 与 EFA 驱动的兼容性配置。","https:\u002F\u002Fgithub.com\u002Fperplexityai\u002Fpplx-kernels\u002Fissues\u002F37",[]]