我的构建64GB显存AI软件工程助手/代理PC的经验

Reddit r/LocalLLaMA 工具

摘要

作者分享了构建高显存AI PC的经验,使用多GPU运行本地模型进行软件工程,详细描述了硬件挑战的解决方案,如电源限制和GPU安装。

作为一名软件工程师,我坚信订阅不可替代的OpenAI和Anthropic模型实际上违背了我的信念(我不愿意成为数字奴隶,并且无法在没有使用某些可疑公司工具的情况下完成工作),所以我开始关注本地模型。我定期尝试并发现它们有一定用处,但今年我开始注意到它们确实提高了我编写的软件的质量和实现速度,但仅凭标准RTX 4080 16GB显存,精度和上下文窗口选项相当有限,所以我决定使用更多GPU,看看如何提升我的模型运行能力。 遇到的问题及解决方案:(pic #1)起初我购买了Meshify 2 XL机箱——这是家用最大的全塔式PC机箱之一。在我购买时Meshify 3 XL已经存在,但它缺少内置尼龙防尘网,所以对我来说是个deal-breaker。Meshify 2 XL理论上体积足够容纳4个RTX3090FE尺寸的GPU,其中两个直接插入主板PCIE插槽,另外两个通过自定义垂直轨道方案安装在替代水泵的位置,形成某种GPU三明治,空气冷却能力存疑,因为它们阻挡了前部进气风扇。所以我选择了三个GPU,因为我的电源和主板都不允许更多。温度相当合理,垂直安装的GPU最凉爽,因为它靠近前部冷却器。 对于电源,我购买了Corsair HX1500i SHIFT(侧面有电缆端口的版本),与非SHIFT版本相比有一个问题——它总共可以连接6个8针接口,所以你不能连接超过两个3x 8针GPU(不同的电缆插座配置加上两个CPU类型5电缆与PCIE类型5不再兼容)。所以,基本上,使用这个电源,你只能限制为3x 12VHPWR/3090FE专有连接器/双8针GPU。因此,我不得不将其中一个3x 8针3090换成另一个Founders Edition。并且,两个3090都限制在300W,以防万一。 (pic #2 and #3)对于第三个GPU,我使用了CoolerMaster V3 Vertical Mount Adapter,移除了内置的PCIE riser,因为长度不够用,在适配器本身钻了几个孔,将适配器拧到顶部防尘网盖上,让GPU悬挂并向排热方向排气。虽然看起来坚固,但我还是在底部放了防下垂支架以防万一。只有500-600mm的PCIE riser才有足够的长度到达第三个GPU,400mm不够,不幸的是。我使用了PCI Express v4 riser,据我所知,这是此类长riser的理论最大值,大多数PCIE 5解决方案都是骗局,并且为了没有信号衰减,它们需要某种额外的电源和信号中继器。此外,riser没有牢固地安装在主板插槽上,所以用中等力量可以拉出来。一些3D打印的DIY夹子/支架可能解决这个问题。 我使用自编译的llama.cpp: cmake -B build \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DGGML_CUDA=ON \ -DGGML_CUDA_FA=ON \ -DCMAKE_CUDA_ARCHITECTURES="86;89" \ -DGGML_NATIVE=ON \ -DGGML_LTO=ON \ -DGGML_CUDA_GRAPHS=ON \ -DGGML_CUDA_NCCL=ON \ -DGGML_OPENMP=ON \ -DGGML_CCACHE=ON 然后运行此命令: llama-server -m /mnt/data/AI/models/Qwen3.8-27B-MTP-Q8_0.gguf \ -ngl all -t 18 --tensor-split 14,24,24 --main-gpu 0 -sm layer -ub 512 \ --kv-unified --split-mode layer \ -fa on --temp 1.0 --top_k 20 --top_p 0.95 --min_p 0.0 --presence-penalty 0.0 --repeat-penalty 1.0 \ --host 0.0.0.0 --port 7800 \ -c 262144 --fit on -np 1 --parallel 1 \ --spec-type ngram-mod,draft-mtp --spec-draft-n-max 3 \ --alias qwen3.8-27b --reasoning-preserve --reasoning-effort xhigh \ --chat-template-kwargs '{"preserve_thinking": true, "reasoning_effort": "xhigh"}' \ --api-key "$LLAMA_SERVER_API_KEY" 由于这是主要桌面,我不能以无头模式运行并利用所有显存,所以一般使用仍需留出约2-3GB的显存用于操作系统(CachyOS + KDE Plasma)、浏览器、IDE和游戏引擎编辑器,所以更像是约62GB显存设置。使用Qwen3.8-27B Q_8与MTP和完整262144上下文时,有约10-12GB的空闲显存,可用于尝试不同模型或增加上下文。我计划实验Unsloth Dynamic Q_8_XL和一些MoE模型,因为个人而言,我仍然看到答案质量与代理自主工作及模型精度之间的直接相关性,尽管Q_4和fp8模型对于一般用途很好。性能随着上下文使用而下降,从44-46 tokens per second开始,最终降至28-30 t/s。 我的工作流程仍然是主要手写代码,将中小型枯燥任务委派给AI代理,为特定明确问题创建草稿并探索可能的解决方案,文档搜索并以花哨的.md人类可读格式呈现,运行审查/每周项目评估/优化技巧和建议/错误修复建议/项目管理技能,我喜欢这种工作流程,并且仍然感觉实际上是我自己编写软件并投入所有我心智能力的努力,而不是无脑接受AI生成的内容。 感谢阅读我这个有些混乱和脱节的故事。
查看原文

相似文章

16GB显存炼狱讨论帖

Reddit r/LocalLLaMA

一个讨论帖,分享在16GB显存Windows系统上运行AI模型如Qwen3.8-27B的配置和技巧,专注于内存优化技术。

Epyc 推理主机

Reddit r/LocalLLaMA

一位社区成员分享了自己搭建的基于 AMD Epyc 的本地 LLM 推理主机:256GB 内存和四块 GPU 共 72GB 显存,并询问其他人使用 RAM 和 VRAM 混合运行大型 MoE 模型的经验。