DeepSeek从春节一直火到现在,我除了看各种报道资料向大家学习之外,也一直考虑着能拿手头什么样的硬件配置玩一下:)
今天我要分享的结论很简单。当然除了下表之外,还想补充点经验给大家参考——包括我自己的,也包括来自同行友人的。
测试模型
|
DeepSeek-R1-UD-IQ1_S(671B,Dynamic 1.58-bit)
|
OS
|
Ubuntu 24.01 LTS
|
|
CPU
|
AMD EPYC 8534P(64核,SP6,Zen4c)
|
内存
|
6通道192GB
DDR5-4800
|
4通道256GB
|
Token/s
(输出超过1000)
|
≈
5.47
|
≈
4
|
我只使用CPU+6通道DDR5内存(无GPU),DeepSeek-R1-UD-IQ1_S跑到了5.47 Token/s。测试硬件平台,与《
一次无需调优的测试:SMT多线程对存储服务器IOPS的贡献
》基本相同。我主要是验证了一点,大模型
Decode输出的性能与内存或显存带宽直接相关
。
建议:
1、
在以上测试中,我发现Ubuntu Linux下Ollama有时不够稳定?后来改用
llama.cpp
效果还好,包括从SSD加载模型都更快。尽管核心也是基于llama.cpp,但Ollama也有不少优点,特别是与前端软件对接的生态方面。
2、
用纯CPU来跑DeepSeek,建议
每个核心只用单线程
——也就是64核跑64线程就好;如果跑128线程(即SMT用满)还会稍慢点。另外根据LLM大模型的特点,AMD的NPS设置建议设置为1(单CPU)或0(双CPU),即
禁用NUMA
内存亲和。
扩展阅读:
《
AMD EPYC 9005服务器BIOS & 工作负载调优指南
》
这个1.58B量化的671B模型,文件大小只有131GB,所以比较节省内存。