[4x3060 PC,成本约为$1,500]([图片描述: 处理图片时出错:‘NoneType’对象不可下标])
我几乎完成了4x RTX3060 PC的搭建。
以下是规格:
- CPU: 5700X3D
- 内存: 4x DDR4 3200 32GB
- GPU: 4x 二手/翻新 RTX3060,使用3x PCIe x16插槽和1x M.2插槽(PCIe 4.0 x8/x8/x4/x4)
- SSD: 2TB NVMe
- 电源: 1250W 80Plus金牌
在向vllm批量请求期间,GPU温度在机箱内不超过74℃,功率限制为130W。 我计划将其降至72℃以下(并进行布线)。
测试
我测试了vLLM和llama.cpp。
所有测试都在服务器模式下运行,并使用OpenAI API发送请求,上下文长度为512。
t/s是’接收到的令牌长度/所用时间’ 从客户端,因此与引擎显示的略有不同。
在vLLM的情况下,我同时测试了多个请求,而llama.cpp只测试了一个请求。
vLLM测试
我测试了5个模型。
- 小: Llama-3-8B (fp16)
- 稍小?: gemma-2-27b-it-FP8, aya-23-35B-AWQ (4-bit)
- 中等?: Llama-3-70B-GPTQ (4-bit), Qwen2-72B-GPTQ (4-bit)
vLLM版本是0.5.2(我无法在0.5.3post1上运行gemma-2-27B-it-FP8,awq-marlin似乎不稳定)。
所有测试基本上都使用以下选项。
--gpu-memory-utilization 1.0 --disable-log-request --max-model-len 8192 --tp <DEVICE_COUNT>
Llama-3-8B
4x3060的速度几乎与1x3090相同,而2x3090几乎与1x4090相同。 奇怪的是,4x3060在单个请求时比1x4090更快。
2x3060 (x8/x8) 比 2x3060 (x4/x4) 稍快。
gemma-2-27b-it-FP8, aya-23-35B-AWQ
无论是AutoGPTQ还是AutoAWQ都支持gemma-2-27B,所以我制作了FP8。 对于aya-23-35B,我制作了4-bit GEMM AWQ(因为它不需要量化数据集)
RTX4090无法处理这些,所以我只测试了3060和3090。
在单个请求时,4x3060相当快,至少比2x3090的一半快。然而,当请求变大时,它变得更慢。
Llama-3-70B-GPTQ, Qwen2-72B-GPTQ
对于Llama-3-70B,我使用了TechxGenus的4-bit。对于Qwen2,Qwen官方提供了GPTQ-Int4。 两者都是指导模型。
2x3090使用--enforce-eager
来减少CUDA图的显存。
在4x3060的情况下,我使用了fp8 kv-cache,因为他们无法处理70B/72B 4-bit模型与fp16缓存。(可能是开销或其他原因)
--enforce-eager --kv-cache-dtype fp8
4x3060的t/s在单个请求时几乎是2x3090的一半,不像8B~35B。 可能是因为它使用了fp8缓存(将使用xformers而不是flash-attn),或者有较小的缓存缓冲区。
llama.cpp测试
我按照以下标志构建了llama-server,用于测试gemma-2-27b-it-IQ4_XS和Mistral-Large-Instruct-2407.IQ2_M。
make GGML_CUDA=1 GGML_CUDA_FA_ALL_QUANTS=1 GGML_CUDA_FORCE_CUBLAS=1 -j12 llama-server
llama.cpp版本是68504f0。
我测试了默认的split-mode(层)和row。在4x3060的情况下,我添加了-mg 3
,因为它连接到PCIe 4.0 x8(比x4稍快)。
- 如果没有GGML_CUDA_FORCE_CUBLAS,当用户输入较长时,我得到了垃圾响应,使用
-sm row
。
基本选项如下,(尽管gemma-2-27b不支持flash-attn)
-ngl 99 -fa -c 8192
基本上,row split-mode比layer更快,除了2x3090上的gemma-2。不知道为什么。
顺便说一下,4x3060无法使用fp16
缓存运行Mistral Large IQ2_M,所以我使用了q4_1
,
或者我可以使用q8_0
和-ts 6,6,6,5
选项运行,当时的t/s是9.02。
思考
我制作了4x3060 PC用于推理,同时使用2x3090进行训练,我想花费比以前更少的钱+我对4x的性能感到好奇。
我首先考虑了4x 4060Ti或4x A770以获得64GB VRAM, 但4x 4060Ti比2x 3090更贵,而A770比3060慢(而且IPEX-LLM似乎不是很健壮)。
此外,3060 12GB足够便宜,很容易获得,也许很容易出售(感谢4060),并且性能/瓦特不错。
我对这台PC相当满意。对于推理来说并不糟糕,如果我管理一些选项或使用较少的量化模型与llama.cpp,如果我可以等待1分钟获得500个令牌。
有一天,如果3090变得更便宜,我可能会再买2个3090并制作4x 3090。
讨论总结
帖子详细介绍了作者构建的4x RTX3060 PC的硬件配置和性能测试结果,对比了不同GPU配置在推理任务中的表现。作者通过vLLM和llama.cpp进行了多模型测试,发现4x RTX3060在某些情况下甚至比单个RTX4090更快。讨论中涉及了硬件选择、性能优化、温度控制等多个方面,引发了广泛的兴趣和讨论。
主要观点
- 👍 4x RTX3060的性价比高
- 支持理由:构建成本约为$1,500,性能表现优异。
- 反对声音:无
- 🔥 4x RTX3060在某些测试中表现优于单个RTX4090
- 正方观点:在单个请求下,4x RTX3060比1x RTX4090更快。
- 反方观点:无
- 💡 通过调整设置有效控制GPU温度
- 解释:作者通过调整电源限制和改善散热,将GPU温度控制在74℃以下。
- 👍 vLLM和llama.cpp在不同模型上的表现有所差异
- 支持理由:作者分享了详细的测试结果,展示了不同配置下的性能差异。
- 反对声音:无
- 🔥 作者对4x RTX3060的性能表示满意
- 正方观点:作者认为4x RTX3060的性能足以满足其需求。
- 反方观点:无
金句与有趣评论
- “😂 Everlier:Thank you so much for sharing these, it’s exactly what I wanted to learn more about, granted the price of an experiment is quite steep for a homelab”
- 亮点:表达了对帖子内容的浓厚兴趣和对高成本实验的认可。
- “🤔 TechEnthusiastx86:Would be interest to see exl2 as well.”
- 亮点:提出了对其他测试结果的好奇心,增加了讨论的广度。
- “👀 prompt_seeker:I use Biostar X570 gt8 and ASUS prime X570-PRO(not P). Both m/b have 3 PCIe x16 slots(one is x4 indeed).”
- 亮点:详细分享了主板选择和配置,为其他用户提供了实用的参考信息。
情感分析
讨论的总体情感倾向积极,大多数评论者对作者的工作表示赞赏和感谢。讨论中涉及了一些技术细节和硬件选择的问题,但整体氛围友好,用户之间互相帮助和解答疑问。
趋势与预测
- 新兴话题:未来可能会有更多关于不同GPU配置在AI推理任务中性能对比的讨论。
- 潜在影响:这些讨论可能会影响用户在选择GPU配置时的决策,推动硬件厂商在性价比和性能优化方面做出更多努力。
感谢您的耐心阅读!来选个表情,或者留个评论吧!