pu游戏优化加速软件 游戏优化


pu游戏优化加速软件 游戏优化

文章插图
游戏优化(普游戏优化加速软件)原创太平洋电脑网2019-07-27 00:22:57
1CPU 1的多核优化难度有多大?
【PConline杂谈】随着AMD锐龙的横版空的诞生 , 电脑CPU进入多核冲击时代 。在同系列产品中 , 我们公司一直采用的是核心翻倍空 。据透露 , 英特尔下一代CPU的i3将配备4核8线程——这样的CPU , 三年前的名字是i7 。在高端系列中 , 核战争更令人恐惧 。在售的12核24线程AMD锐龙3900X足以让人倒吸一口凉气 , 而即将上市的3950X则配备了16核24线程 。好几个帧的粉丝都表示把持不住 , 喊yes根本停不下来 。
但是 , 多核CPU玩游戏会更快吗?不一定 。排除频率和架构IPC的差异 , 在某些情况下 , 多核CPU玩游戏会更慢——比如在某些情况下 , AMD新出的12核3900X在某些游戏中比8核3700X还慢 。
测试表明 , 具有更多内核和更高频率的3900X在某些情况下的性能不如3700X 。
我们知道从规格上看 , 3900X完全压倒3700X , 别说多了四个核心 , 就连频率都更高(3.8/4.6GHz vs 3.6/4.4GHz) , 三级缓存翻倍(64MB vs 32MB) 。那么为什么多核游戏速度更慢呢?今天就从这个现象来说一下CPU和游戏优化 。
游戏的多核优化难度有多大?先说多核游戏的优化 。当我们谈到游戏优化的时候 , 我们绕不开多核的支持 。什么游戏针对多核优化 , 什么游戏只能难单核 , 多核围观 , 一直是玩家津津乐道的话题 。为什么游戏在优化多核上有问题 , 而视频压缩等应用却能充分利用多核?这和游戏的运行机制有关 。
为什么游戏喜欢用单核?
像视频压缩这样的任务可以很容易地并行执行 。比如一个线程压缩某个段 , 另一个线程压缩另一个段 , 多个核心协同工作 。最后 , 压缩所有片段 , 压缩完整的视频 。但是游戏的运行一般是线性的 , 一步的操作往往与前一步紧密相关 , 很难充分利用多线程 。
核心在渲染和转码的时候很好用 , 游戏就不一定了 。
举个例子 , 在FPS游戏中 , 如果玩家被击中并造成伤害 , 那么伤害结果就和子弹的弹道有关 。在计算伤害之前 , 需要计算子弹的弹道 。这只能在一个线程中完成 , 不可能通过多个线程同时计算出子弹的弹道和伤害 。游戏要想充分利用多核 , 就需要巧妙地把计算任务拆分成多线程 。例如 , 不同的线程负责物理碰撞、AI行为等 。技术门槛比较高 , 还得多下功夫 。基于此 , 仍有大量游戏未能充分利用CPU的所有核心 。
支持多核一定要优化好吗?
随着时代的发展 , 越来越多的游戏愿意在多线程优化上发力 。比如前几年我们经常看到“i3完全无声”的情况 , 现在游戏大作把门槛提高到了4核 , 双核i3已经很尴尬了 。但是12核3900X的性能不如8核3700X 。为什么?
出现这种情况主要是因为CPU核心调度不合理 。瑞的建筑很特别 。每四个内核封装成一个CCX , 每两个CCX封装成一个CCD 。内核之间的通信可以跨越CCX甚至CCD , 但CCX和CCD之间的通信会有延迟 。
Zen2的架构可以在信息资源网上找到 , 看核心-CCX-CCD的拓扑结构 。
换句话说 , 如果一个程序可以调用多个内核 , 会出现以下情况 。
1.被调用的多核在同一个CCX , 延迟最小;
2.被叫的多核跨CCX , 但是在同一个CCD里 , 所以延迟;
3.所谓多核跨越CCX和CCD , 延迟最大 。
比如一个游戏可以调用四个核心 , 理想的情况自然是在同一个CCX中调用四个核心 , 可以获得最佳的性能 。然而 , 实际上 , 对多个内核的代码调用并不一定那么智能 , 很可能无法识别哪些内核位于同一个CCX上 。因此 , 游戏可能会调用位于不同CCX和CCD的多个内核 , 从而导致额外的延迟和性能损失 。
知道了这一点 , 就能解释为什么有时候3900X的游戏性能甚至比3700X还要低 。3900X封装了两个CCD , 每个CCD有两个CCX , 每个CCX有四个内核 。原来的总数是4x2x2=16芯 , 屏蔽四芯后得到12芯 。而3700X只有一个CCD , 包括两个CCX , 总共4x2=8个内核 。可以看出3900X比3700X多了一个CCD , 多了一个可能造成额外延迟的情况 。如果游戏发挥不出3900X的多核优势 , 那么3900X略逊于3700X也在情理之中 。


推荐阅读