原贴链接

https://github.com/ggerganov/llama.cpp/issues/11744

讨论总结

原帖针对双AMD Epyc系统上llama.cpp中标记生成性能差提出可能的解决方案,评论者们展开了多种讨论。部分人对原帖作者的努力表示感谢,也有人打算购买设备为研究提供测试支持。同时,很多评论者针对原帖中的一些技术操作,如降低磁盘缓存等提出疑问,还探讨了性能相关的话题,包括“恢复正常标记生成”所指的性能情况、双CPU间的链接速度与内存带宽利用等。

主要观点

  1. 👍 对原帖作者的努力表示感谢
    • 支持理由:原帖的研究有价值,值得感谢。
    • 反对声音:无。
  2. 🔥 对原帖中降低磁盘缓存操作提出疑问
    • 正方观点:好奇操作效果及权重在CPU内存分配情况。
    • 反方观点:无。
  3. 💡 明确“恢复正常标记生成”速度是单CPU的1.8倍接近双倍
    • 解释:针对性能疑问给出明确答复。

金句与有趣评论

  1. “😂 Thanks for giving so much feedback in your research.”
    • 亮点:表达对原帖作者研究反馈的感谢。
  2. “🤔 I suppose the effect of this trick is that the placement of cached tensor data in RAM is optimal for the token generation.”
    • 亮点:对原帖操作在内存布局方面影响的推测。
  3. “👀 I was confused. Two CPUs are fully used. I understand now how your trick achive the performance.”
    • 亮点:体现了从疑惑到理解的过程。

情感分析

总体情感倾向是积极和理性的。主要分歧点较少,可能是因为这是一个较为专业的技术话题,大家更多是在探讨技术内容而非进行争论。

趋势与预测

  • 新兴话题:双CPU理想设置以及GPU在其中的作用可能会引发后续讨论。
  • 潜在影响:对llama.cpp在AMD Epyc系统上的性能优化研究可能会产生积极影响,有助于提高相关技术在实际应用中的效率。

详细内容:

标题:Llama.cpp 在双 AMD Epyc 系统上令牌生成性能的可能解决方案引发热议

在 Reddit 上,一篇关于“Possible solution for poor token generation performance in llama.cpp on dual AMD Epyc systems”的帖子引起了广泛关注。该帖子提供了一个链接:https://github.com/ggerganov/llama.cpp/issues/11744 。此帖获得了众多点赞和大量评论,主要围绕着双 AMD Epyc 系统中 llama.cpp 令牌生成性能的改进方案展开了热烈讨论。

讨论焦点与观点分析: 有人表示,“感谢您在研究中给予如此多的反馈,我真的在考虑下个月月底购买双 Genoa,如果您需要,您将有另一个测试平台。” 有人认为,“我想这个技巧的效果是,缓存张量数据在 RAM 中的放置对于令牌生成是最优的。否则,对于提示处理是最优的,这会损害生成性能。我还不确定为什么这两者不同,所以我将进一步调查。” 还有人提到,“现在,我认为这个解决方案意味着提示处理没有良好的内存分布,所以它会更慢。也许,不会慢太多,因为提示处理是 CPU 绑定的。” 对于改进效果,有人问道:“它说它‘恢复了正常的令牌生成’,这是意味着它的工作方式就像使用单个 CPU 一样(总体上没有性能不佳),还是像人们预期的从双倍带宽获得的双倍速度?”有人回答:“速度是单个 CPU 的 1.8 倍,所以是的,它几乎使生成率翻倍,达到了双倍内存带宽所预期的值。” 有人怀疑:“我怀疑 2 个 CPU 之间的链接速度不够快,无法充分利用另一侧 CPU 的全部内存带宽。但似乎这个链接相当快。这是个很好的发现。” 关于理想的设置,有人提出:“我记得 llama.cpp 在达到 32 个核心之前表现较好,在这种情况下,2 个具有高时钟的小型 16 核 CPU 会让您获得最多的 t/s。也许混合使用,添加 1 个 GPU 用于更快的提示处理值得一试,考虑到 24 个通道,您将获得与 4090 大致相同的带宽,唯一的缺点是 CPU 在提示处理方面相当差。” 有人指出,“这是一个 Turin CPU,有 3 个 16 核的 Turins,两个只有 2 个 CCD(9115,9135),但这台机器中使用的(9175F)有 16 个 CCD,所以这不是问题。对于 Genoa 有 9124 有 4 个 CCD,但也有 9174F 有 8 个 CCD。所以核心数量(当它较低时)并不能说明 CCD 的数量。对于 32 个核心,情况类似 - 有具有 4 个 CCD 的 CPU,但也有具有 8 个 CCD 的。” 对于 CCD 数量过多的缺点,有人回答:“成本。9175F 的成本是 9135 的两倍多,是 9115 的三倍。成本差异不仅仅是 CCD。还有其他差异,主要是 L3 缓存大小和更高的基础+提升时钟。尽管更高的时钟是由 CCD 的数量间接实现的。”

讨论中的共识在于,改进方案确实对令牌生成性能有所提升,但对于最佳配置和成本效益等问题存在不同看法。特别有见地的观点在于深入分析了 CPU 架构和性能之间的关系,丰富了讨论的深度和广度。