amd吧 关注:803,636贴子:18,575,887
  • 5回复贴,共1

游戏比不过983?9950x3d调度机制实验研究

取消只看楼主收藏回复

先上结论,所有测试均在默认最新官方芯片组驱动调度模式下。
游戏程序:
对于使用16负载线程以下优化的游戏,会自动锁ccd0中运行,此时就是个超频版983,频率比983高,游戏性能比自然比983强。
负载线程数超过16,或者刚好16但是核心满负载的游戏,会把部分负载(优先低负载)线程调度到ccd1中运行,结果就是存在跨ccd通讯延迟的情况。但是,但是!虽然可能存在最大帧率不如983的情况,但实际体验稳定性远比983好,用打游戏的话来说就是所谓的谜之卡顿会少很多,因为跨ccd调度延迟总比cpu线程频繁切换反复加载上下文来要强得多这里涉及计算机专业知识就不展开讨论了。
对于非游戏应用
线程会随机分配到当前空闲的核心运行。没什么好说的了。
这里顺带提一下,有人说怎么我cpu一个核心在干活,其他在围观,如果负载线程数对得上,其实这才是理想状态,很多人喜欢改卓越高性能电源计划,结果导致负载在多核心之间频繁切换反复加载上下文,看起来是好看了,其实这样性能更差


IP属地:广东来自iPhone客户端1楼2025-03-23 11:57回复
    首先是游戏测试。众所周知,怪物猎人荒野优化很差,终究其原因,是因为游戏采用了三层加密方式。在游戏资源加载完成之后,实际上只有8个核心16线程的负载,锁ccd0。但是当刚进入游戏,或者地图传送时,需要通过三层加密层进行数据解包,这个时候核心使用会超过16线程,这时候在营地四处跑,在983上会出现卡顿的感觉,而反观9953,这过程是丝滑的,因为加载材质的线程被调度到ccd1上去了。


    IP属地:广东来自iPhone客户端2楼2025-03-23 12:02
    收起回复
      2026-01-18 23:02:21
      广告
      不感兴趣
      开通SVIP免广告
      接下来就是理论测试了,为了测试我简单写了个线程负载测试工具,用以测试不同线程负载下cpu调度的情况。
      首先先上非游戏的测试结果。测试过好多次,其实无论多少个负载线程,结果基本都是一样的。都会随机分配核心来执行。负载核心和线程数完全对得上,不存在线程切换核心的问题,虽然看起来有些核心在围观,但这样才没有性能损失。


      IP属地:广东3楼2025-03-23 12:10
      回复
        游戏开启游戏模式,打开game bar勾选记住这个是游戏,然后关闭程序重新打开。这一步对很多调度错误的游戏非常有用,而且操作也不繁琐,只需要操作一次,以后会自动调度。


        IP属地:广东4楼2025-03-23 12:12
        收起回复
          下面图片分别是游戏模式下12、14、16和20负载线程的情况。
          在12线程下,可以看到负载线程基本都锁在ccd0中运行了,符合默认调度个预想。
          但在14、16线程负载下,情况就变得有所不同,比较有意思的是,我们可以看到那几个负载线程锁在ccd0之外,还看到有其他负载在ccd1上核心运行。这个可以理解为cpu在高负载的时候自动调度低荷载线程到ccd1中运行。
          当负载线程超过16(下图20),高负载线程也会调度到ccd1中运行,这样即使存在跨ccd通讯带来的游戏性能影响。但是总比锁在ccd0中等待调度要强吧。体现在天际线2这样的多核游戏,目前9953依然是该游戏的天花板。





          IP属地:广东5楼2025-03-23 12:38
          回复
            总结,9953打游戏时并不是传闻中的让ccd1休眠不干活,而是让ccd1待机,当ccd0忙不过来,就会让ccd1协助计算,虽然存在一定跨ccd通讯带来的最高帧率损失,但也带来了更流畅的游戏游玩体验。


            IP属地:广东6楼2025-03-23 12:46
            收起回复