原贴链接

[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

https://preview.redd.it/9oohs7mgkped1.png?width=716&format=png&auto=webp&s=dc9c4baf5496b9d0fa0fb5b03e70f03e81c88005

https://preview.redd.it/0vzb668j1ped1.png?width=1135&format=png&auto=webp&s=446250b0feab2aa623e8d0686254fc45a57ec84d

https://preview.redd.it/k6wjio0k1ped1.png?width=1135&format=png&auto=webp&s=910da38f73c01898d0e31229787356f94d583f17

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。

https://preview.redd.it/o1p9eh3jkped1.png?width=517&format=png&auto=webp&s=463982d791d04c7859e91bfcb90d03640818d75f

https://preview.redd.it/g2vawno03ped1.png?width=1135&format=png&auto=webp&s=6bf11ae123774b19de06abe120cffb31685273f1

https://preview.redd.it/ptrvd6a13ped1.png?width=1135&format=png&auto=webp&s=f05c5826f8d4e885d211c023303289b3a313658d

在单个请求时,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

https://preview.redd.it/ned0w3qlkped1.png?width=518&format=png&auto=webp&s=105310ef9bae494969865fdbf8e080aff6e093d3

https://preview.redd.it/tulmq4z67ped1.png?width=1135&format=png&auto=webp&s=bd052b01ecb1437680c9b7aa2f27fc5a6f186f1b

https://preview.redd.it/vdtjrw887ped1.png?width=1135&format=png&auto=webp&s=e2a4dc01a1ffbb0c062347aacbe684fa12497ef2

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

https://preview.redd.it/ltgw4r3t9ped1.png?width=606&format=png&auto=webp&s=466cd1278fff84c26a4d0e4528f2c68e048c8dc6

https://preview.redd.it/3u4d9art9ped1.png?width=606&format=png&auto=webp&s=87a9b61862065b00789abd6fb9b0e4209f04135b

基本上,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更快。讨论中涉及了硬件选择、性能优化、温度控制等多个方面,引发了广泛的兴趣和讨论。

主要观点

  1. 👍 4x RTX3060的性价比高
    • 支持理由:构建成本约为$1,500,性能表现优异。
    • 反对声音:无
  2. 🔥 4x RTX3060在某些测试中表现优于单个RTX4090
    • 正方观点:在单个请求下,4x RTX3060比1x RTX4090更快。
    • 反方观点:无
  3. 💡 通过调整设置有效控制GPU温度
    • 解释:作者通过调整电源限制和改善散热,将GPU温度控制在74℃以下。
  4. 👍 vLLM和llama.cpp在不同模型上的表现有所差异
    • 支持理由:作者分享了详细的测试结果,展示了不同配置下的性能差异。
    • 反对声音:无
  5. 🔥 作者对4x RTX3060的性能表示满意
    • 正方观点:作者认为4x RTX3060的性能足以满足其需求。
    • 反方观点:无

金句与有趣评论

  1. “😂 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”
    • 亮点:表达了对帖子内容的浓厚兴趣和对高成本实验的认可。
  2. “🤔 TechEnthusiastx86:Would be interest to see exl2 as well.”
    • 亮点:提出了对其他测试结果的好奇心,增加了讨论的广度。
  3. “👀 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配置时的决策,推动硬件厂商在性价比和性能优化方面做出更多努力。