顽皮狗解构PS4硬件 内存仅能使用5G优化是关键

  近日在里斯本,顽皮狗的首席编程师Jason Gregory描述了PS4的CPU,内存,GPU,缓存架构等等诸多硬件细节,并解释了工作室在完整掌握了硬件特性后,是如何优化他们的资源来获得更好的结果。

顽皮狗
顽皮狗

  首先,Gregory解释说8GB看起来很多,但只有5GB应用到了游戏上,而这一部分很容易就可以完全利用。

  “即使在PS4里你也只有5GB内存,这看起来很多,你会被其能被迅速地完全利用而感到惊讶。”

  顽皮狗对内存分配和更有效率的分配使用非常谨慎。

  内存碎片是个很可怕的敌人,因为是它导致游戏比平常更快的利用完所有内存。顽皮狗则通过自定义内存分配迎合软件分配方式来解决。

  工作室在他们的引擎里还使用了明确的内存地址,这会在任何时间告诉我们哪一个内存被使用了和这个内存的类型。

  这点很重要,因为许多开发组组件,尤其是PS3的,会使用两倍多的内存来进行软件除错。那就意味着游戏是不能使用那部分内存的。

  关于多核处理器管理方面,Gregory称PS4是一个“强大的并行处理机器”

  PS4有一个8核心的CPU,这要比PS3的CPU强大很多,而这8个核心被组织分为两个群集。

  Gregory还解释说这个机器的GPU非常强大,远远超过了1080P 60fps的能力。PS4设计师的想法就是给主机额外的GPU资源,可以非常好的处理大量并行程序。而且他们展望游戏设计者在未来会利用这种优势来进行物理,衣物模拟,液体等等处理。

  在PS3时期,顽皮狗联合了索尼ICE团队开发了一个“Job system”,可以更好的利用多核CPU,现在他们也为PS4创造了一个。

  我们可以看到只有6个核心可以用到游戏上,两个负责操作系统。这个“Job system”不仅可以利用6个核心,同时还会利用GPU来运行代码。一个CPU核心运行一个工作线程,首先负责主游戏环,其它的5个核心负责其它分配的任务

  另一方面,GPU负责渲染和GPGPU(通用目的GPU)波前,通常是物体,衣物,和相似的计算。

  另一个重要概念就是优化,也是“80/20法则”的一个关键元素。“80/20法则”指的是你的程序20%的代码会花费80%的运行时间,剩下的代码就运行很少了。

  所以当你优化你的代码时,你不会想去优化剩下的那80%,因为这是浪费时间。顽皮狗就对这20%非常专注,这也是他们的游戏非常震撼的原因。

  了解硬件也是非常重要,尤其是你只为一种硬件进行优化,你需要对其内部工作有深层的了解。

  内存缓存是优化的重要部分,现代处理器会从主RAM里经过非常多的循环才能获得数据,这部分很大。之后从较小内存缓存L2获得数据,获取速度也更快。L1缓存就更快了,在之后就是芯片上更小的寄存器,速度几乎是瞬间完成。

  小的高性能数据可以放到缓存中,这样就可以快速获取利用,所以让数据保持小且连续可以得到更多的优化。

  PS4的CPU8个核心被组织分为两个群集。L2缓存事实上也被一分为二,对应两个群集,每个集群和自己的L2缓存交流需要26个循环。而两个群集之间的交流就更慢,需要190个循环。

  除此之外,当你在主RAM里读取一个单byte数据时,这需要把内存中的整个64bytes数据运到缓存中。

  这些对PS4的了解可以让工作更好的优化代码,避免让核心群集和错误的L2缓存进行交流,然后把数据放到分开的缓存线,可以减少冲突和减速的几率。

  PS4相比PS3最大的改变就是有非常非常好的分支预测硬件,这可以猜测出代码是做什么的,大大减少了PS3时代额外的工作量。

  上面的东西听着很难理解,但所有人都希望看见顽皮狗的第一款PS4作品,看看他们能把PS4利用到什么程度,我们拭目以待。

[编辑:必杀技]
上一篇:游戏制作人小岛秀夫畅谈合金装备5原爆点 下一篇:开发商确认《佣兵之王》将于4月1日登陆PS4
分享到: