如何为whichllm贡献新硬件支持?开发者贡献指南与API文档

发布时间:2026/6/16 5:45:54

如何为whichllm贡献新硬件支持?开发者贡献指南与API文档 如何为whichllm贡献新硬件支持开发者贡献指南与API文档【免费下载链接】whichllmFind the local LLM that actually runs and performs best on your hardware. Ranked by real, recency-aware benchmarks, not parameter count. One command, run it instantly.项目地址: https://gitcode.com/GitHub_Trending/wh/whichllm想要让whichllm这个强大的本地LLM硬件检测工具支持更多设备吗作为一款开源项目whichllm依赖于社区贡献来不断完善硬件支持。本文将为你提供完整的开发者贡献指南帮助你了解如何添加新的GPU、CPU或其他硬件支持让更多用户能够准确评估他们的设备性能。 whichllm硬件检测架构解析whichllm的硬件检测系统采用模块化设计支持多种硬件厂商和操作系统。核心架构包括硬件信息数据结构在 hardware/types.py 中定义了核心数据结构dataclass class GPUInfo: name: str vendor: str # nvidia | amd | apple | intel vram_bytes: int compute_capability: tuple[int, int] | None # NVIDIA only memory_bandwidth_gbps: float | None shared_memory: bool False dataclass class HardwareInfo: gpus: list[GPUInfo] cpu_name: str cpu_cores: int has_avx2: bool has_avx512: bool ram_bytes: int disk_free_bytes: int os: str硬件检测流程whichllm的检测流程从 hardware/detector.py 开始按操作系统调用相应的检测模块NVIDIA GPU通过NVML API或nvidia-smi命令行检测AMD GPU通过rocm-smi或lspci检测Intel GPU通过系统PCI信息检测Apple Silicon通过system_profiler检测CPU和内存通过系统调用获取 添加新的GPU支持三步指南第一步更新GPU规格数据库所有GPU规格数据存储在 src/whichllm/data/gpu.py 中。要添加新的GPU你需要更新三个关键字典# GPU内存带宽数据库GB/s GPU_BANDWIDTH: dict[str, float] { RTX 5090: 1792.0, RTX 5080: 960.0, # ... 添加你的新GPU } # NVIDIA计算能力查找表 NVIDIA_COMPUTE_CAPABILITY: dict[str, tuple[int, int]] { RTX 5090: (10, 0), RTX 5080: (10, 0), # ... 添加你的新GPU } # 共享内存APU标记 AMD_SHARED_MEMORY_APU_MARKERS: tuple[str, ...] ( STRIX HALO, RADEON 890M, # ... 添加新的共享内存GPU )第二步实现硬件检测逻辑根据GPU厂商选择对应的检测模块进行扩展NVIDIA GPU编辑 hardware/nvidia.pyAMD GPU编辑 hardware/amd.pyIntel GPU编辑 hardware/intel.pyApple GPU编辑 hardware/apple.py以NVIDIA为例检测逻辑包括尝试使用pynvml库NVML API回退到nvidia-smi命令行解析GPU名称和显存信息第三步编写测试用例所有硬件检测功能都需要相应的测试。查看 tests/test_nvidia_detection.py 获取测试示例def test_new_gpu_detection(monkeypatch): # 模拟硬件检测 def fake_run(*args, **kwargs): return SimpleNamespace(stdoutNVIDIA New GPU Model, 16384 MiB\n) # 执行检测 gpus detect_nvidia_gpus() # 验证结果 assert len(gpus) 1 assert gpus[0].name NVIDIA New GPU Model assert gpus[0].memory_bandwidth_gbps 1024.0 # 预期带宽 开发者贡献流程环境搭建git clone https://gitcode.com/GitHub_Trending/wh/whichllm cd whichllm uv sync --dev测试你的修改uv run pytest tests/test_nvidia_detection.py uv run pytest tests/test_amd_detection.py uv run pytest tests/test_intel_gpu.py提交贡献Fork项目并创建功能分支实现硬件支持添加测试用例运行完整测试套件提交Pull Request 硬件检测最佳实践1. 处理边缘情况统一内存设备如Apple Silicon和AMD APU需要标记为shared_memoryTrue未知显存某些设备如NVIDIA GB10可能报告[N/A]需使用系统内存多GPU系统whichllm会汇总所有GPU的显存用于容量检查2. 性能数据来源理论带宽从厂商规格表中获取实际基准参考TechPowerUp等权威数据库计算能力NVIDIA官方文档3. 向后兼容性保持现有API不变添加新功能时不影响现有检测提供适当的回退机制 贡献示例添加RTX 5060 Ti支持让我们通过一个具体示例展示如何为新的NVIDIA GPU添加支持1. 更新GPU数据库在 src/whichllm/data/gpu.py 中添加GPU_BANDWIDTH[RTX 5060 Ti] 448.0 NVIDIA_COMPUTE_CAPABILITY[RTX 5060 Ti] (10, 0)2. 验证检测逻辑现有的NVIDIA检测逻辑会自动识别新GPU因为whichllm使用子字符串匹配。只要GPU名称包含RTX 5060 Ti就能正确识别。3. 添加测试用例在测试文件中添加针对新GPU的测试def test_rtx_5060_ti_detection(monkeypatch): # 测试代码... 调试与验证使用whichllm硬件命令whichllm hardware模拟硬件配置whichllm --gpu RTX 5060 Ti --vram 16查看详细输出whichllm --json 相关API文档核心API接口detect_hardware()主检测函数返回HardwareInfo对象GPUInfo类包含GPU所有属性HardwareInfo类完整的系统硬件信息工具函数resolve_detected_bandwidth()解析GPU内存带宽_lookup_compute_capability()查找NVIDIA计算能力_is_unified_memory_nvidia_gpu()判断是否为统一内存GPU 开始你的贡献之旅现在你已经掌握了为whichllm添加新硬件支持的所有知识无论是最新的消费级GPU、专业计算卡还是特殊的嵌入式设备你的贡献都能帮助更多用户准确评估他们的硬件性能。记住开源社区的力量在于协作。如果你在贡献过程中遇到任何问题可以参考现有的硬件检测文档或者查看其他厂商的检测实现作为参考。准备好为whichllm的硬件支持添砖加瓦了吗开始你的第一个贡献吧【免费下载链接】whichllmFind the local LLM that actually runs and performs best on your hardware. Ranked by real, recency-aware benchmarks, not parameter count. One command, run it instantly.项目地址: https://gitcode.com/GitHub_Trending/wh/whichllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻