硬件基准(2017年中)

本页面提供了硬件基准分析,帮助开发者选择适合项目的硬件配置。

Windows
MacOS
Linux

在以下分析中,价格估计和关于可能成本的意见(当前截至2017年中期)仅供参考之用。

这些硬件基准测试在私有P4V流中执行,其中固定的代码快照取自Changelist (CL) 3477826上的 //UE4/Main。为了高效地将结果自动化和聚合,作业通过具有计时数据(不包括同步、等待等)的构建系统运行。为了便于进行测试,本研究中使用以下计算机配置:

计算机名称

类型

CPU

核心/线程

RAM

Dell T7910

台式机

Xeon E5-2667 v3(3.2 GHz,双核)

8C/16T x 2

96GB

Dell T7810

台式机

Xeon E5-2643 v3(3.4 GHz,单核)

6C/12T

64GB

Lenovo P710

台式机

Xeon E5-2637 v4(3.5 GHz,双核)

4C/8T x 2

96GB

Lenovo P510

台式机

Xeon E5-1650 v3(3.5 GHz,单核)

6C/12T

64GB

当前构建器

服务器

Xeon E5-2680 v2(2.8 GHz,双核)

10C/20H x 2

64GB

Cisco C220-01 (S)*

服务器

Xeon E5-2637 v4(3.5 GHz,单核)

4C/8H

64GB

Cisco C220-01 (D)

服务器

Xeon E5-2637 v4(3.5 GHz,双核)

4C/8H x 2

64GB

Cisco C220-02 (S)*

服务器

Xeon E5-2698 v4(2.2 GHz,单核)

20C/40H

64GB

Cisco C220-02 (D)

服务器

Xeon E5-2698 v4(2.2 GHz,双核)

20C/40H x 2

64GB

Cisco C220-03 (S)*

服务器

Xeon E5-2640 v4(2.4 GHz,单核)

10C/20H

64GB

Cisco C220-03 (D)

服务器

Xeon E5-2640 v4(2.4 GHz,双核)

10C/20H x 2

64GB

*以上是与(D)变体相同的计算机,只是删除了一个CPU。

测试期间,台式计算机运行 Windows 10 ,服务器计算机运行 Windows Server 2012 R2 。 此外,所有计算机都使用 Samsung 850 PRO 数据驱动器和千兆以太网连接。

使用XGE进行编译

这些测试只考虑使用台式计算机。我们的总部使用标准的 Incredibuild-XGE (XGE)服务端和客户端池。

所有计算机的性能均相似,但 T7910 的性能比其他计算机慢。虽然 T7910 的时钟频率最低,但我们并未确定该计算机性能低下的原因。

T7910

T7810

P710

P510

Compile UE4Editor Win64

0:07:03

0:06:28

0:06:35

0:06:29

Compile ParagonEditor Win64

0:06:22

0:05:42

0:06:03

0:05:48

Compile FortniteEditor Win64

0:05:24

0:05:08

0:04:57

0:05:00

使用XGE编译的时间极不稳定,因此可以忽略细微的差异。通常,编译 编辑器 需要五到八分钟。

HB_1.png

我们在一天中的不同时间(凌晨12点、凌晨6点、中午12点和下午6点)分别进行测试,以确定客户端群上的负载是否构成了显著的瓶颈。

HB_2.png

早上的编译时间不稳定,这似乎与 UnrealGameSync 中默认的预定同步时间凌晨6点有关,许多开发人员启用了该默认时间。

存储器

P710P9710 中安装额外的随机存储器(RAM)未能改善性能。

I/O

所有这些测试均在 Samsung 850 PRO 数据驱动器上执行。P710 配备双 RAID-0 PCIe m.2 系统驱动器,具有明显更高的读/写性能(如下所示):

HB_3.png

HB_4.png

RAID-0 PCIe m.2

Samsung 850 PRO

鉴于XGE编译的时间不稳定,在此驱动器上进行编译并未显示性能大幅提升。

P710 - Samsung 850 PRO

P710 - 2 x PCIe m.2

变化

Compile UE4Editor Win64

0:06:35

0:05:33

-15.74%

Compile FortniteEditor Win64

0:04:57

0:05:16

6.37%

不使用XGE进行编译

如黄线(下图)所示,T7910 的性能略有下降。虽然我们找不到 T7910 性能下降的原因,但发现在所有计算机上运行这些测试时,对于不同的CPU配置编译时间是稳定的。

HB_5.png

编辑器 的编译时间来看,在物理内核数量方面,构建时间相当线性化,单CPU配置比相同内核数量的双CPU配置略快。

HB_6.png

IWYU(包括你使用的) 重构以来,我们发现 编辑器(Editor) 编译高度并行化,几乎没有PCH(预编译标头)瓶颈,因此可以看到上面显示的关系。

存储器

针对每个逻辑核心,构建过程生成一个编译器实例,这成为 C220-02 (D) 的限制因素,该计算机拥有的核心(40C/80H)比测试中的任何其他计算机都要多。为了解决 C220-02 (D) 的这个限制因素,我们将RAM加倍到128GB,这带来了显著的改进,具体如下所示。

C220-02 (D) - 64GB

C220-02 (D) - 128GB

变化

Compile UE4Editor Win64

0:10:06

0:06:43

-33.50%

Compile ParagonEditor Win64

0:08:12

0:05:29

-33.13%

Compile FortniteEditor Win64

0:06:08

0:04:12

-31.52%

C220-03 (D) 计算机(20C/40H)的RAM加倍后,我们观察到性能提高了大约10%(见下图)。

C220-03 (D) - 64GB

C220-03 (D) - 128GB

变化

Compile UE4Editor Win64

0:12:33

0:10:40

-14.92%

Compile ParagonEditor Win64

0:10:03

0:09:03

-10.01%

Compile FortniteEditor Win64

0:07:08

0:06:37

-7.24%

对于核心数较少的计算机,我们估计编译时间会显著缩短,因为编译器进程减少,使用的内存也会减少。

I/O

RAID-0 PCIe m.2P710**上可用)计算机上的 编辑器 编译没有显著提高性能。该计算机的核心数较低(2 x 4C/8T**),因此可能不构成限制因素。

P710 - Samsung 850 PRO

P710 - 2 x PCIe m.2

变化

Compile UE4Editor Win64 - NoXGE

0:21:11

0:20:59

-0.94%

增加可用RAM之后,C220-02 (D) 计算机可能仍面临I/O瓶颈(我们没有为此计算机提供更快的硬盘驱动器选项)。在撰写本文时,由于CPU成本较高(每CPU大约3500美元=总计7000美元),可能导致其无法作为可行选项进行广泛部署。

转化内容

转化 期间,任务管理器(Task Manager) 通常显示处于活动状态的一个或两个线程。由于使用填充(或"热")DDC衍生数据缓存),软件包序列化最有可能成为一大瓶颈。

T7910

T7810

P710

P510

Paragon Win64

0:38:00

0:35:04

0:37:18

0:35:15

Fortnite Win64

0:59:59

0:55:49

1:01:41

0:55:47

当前(Current)

C220-01 (D)

C220-02 (D)

C220-03 (D)

Paragon Win64

0:32:05

0:29:38

0:32:19

0:34:13

Fortnite Win64

1:03:59

0:51:32

0:55:47

0:58:32

台式机

构建器

在单核配置中测试 C220 计算机所得到的结果无效并被丢弃,因为我们发现默认的 Windows Server 电源配置导致串行任务(例如转化内容)的CPU性能较差。

内存

转化《堡垒之夜(Fortnite)》 将RAM使用率提高到55GB左右,但可用RAM的增加对转化时间没有任何实际影响。 此外,禁用了 垃圾回收 以避免重新加载包,这意味着64GB的RAM足以满足整个工作集的要求。随着游戏大小不断增加,该指标可能也会水涨船高。

C220-03 (D) - 64MB

C220-03 (D) - 128MB

变化

Cook Paragon Win64

0:34:13

0:32:10

-6.01%

Cook Fortnite Win64

0:58:32

0:57:09

-2.35%

C220-02 (D) - 64MB

C220-02 (D) - 128MB

变化

Cook Paragon Win64

0:32:19

0:33:33

3.83%

Cook Fortnite Win64

0:55:47

0:55:58

0.34%

I/O

为了解I/O性能的影响,我们在 P710 配备的双 RAID-0 PCIe m.2 系统驱动器上转化了《堡垒之夜》。出乎意料的是,性能差异并不大。

P710 - Samsung 850 PRO

P710 - 2 x PCIe m.2

变化

Cook Fortnite Win64

1:01:41

1:01:02

-1.04%

本地DDC

由于遗留原因,构建计算机不保留本地DDC;在从多个分支运行转化时,磁盘空间的管理会遇到问题,以前曾尝试定期清理该空间,却导致需花费更多时间来回填而不是使用本地缓存。

计算机名称

当前

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》(Cook Paragon)

0:32:05

0:31:55

-0.52%

转化《堡垒之夜》

1:03:59

1:02:19

-2.60%

C220-01 (D)

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

0:51:32

0:48:24

-6.08%

C220-02 (D)

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

0:55:47

0:52:37

-5.68%

C220-03 (D)

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

0:58:32

0:54:23

-7.09%

共享DDC

为了评估网络性能(及网络共享性能)对转化的影响,我们使用完全填充的本地DDC运行测试,其中共享的DDC被禁用。向共享DDC写入数据是异步完成的,因此当本地DDC连贯时禁用共享DDC不会影响转化时间。

计算机名称

当前

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

1:02:19

1:02:57

1.02%

C220-01 (D)

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

0:48:24

0:48:13

-0.38%

C220-02 (D)

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

0:52:37

0:52:08

-0.92%

C220-03 (D)

仅共享DDC

本地和共享DDC

变化

转化《虚幻争霸》

0:29:38

0:20:43

-30.09%

转化《堡垒之夜》

0:54:23

0:54:50

0.83%

DDC失效

转化程序的用时主要花费在序列化进(和出)软件包,其中不利用额外的CPU内核。但在生成用于压缩动画数据,编译着色器、特定于平台的纹理等的派生数据时,它确实会并行运行。

对于大多数资源类型,DDC可以很好地屏蔽转化程序。纹理压缩可能特别慢,但压缩程序很少变更(如果有的话),因此每次孤立的纹理变更只产生一次性能消耗。

引擎着色器版本更改时,最常出现DDC数据失效。这些变更的影响对不在现场工作的用户来说非常明显,因此我们使用新的着色器版本评估了转化的时间。

为了避免一台计算机的缓存数据被另一台计算机使用,执行这些测试时禁用了共享DDC。

计算机名称

原着色器

新着色器

变化

当前

转化《虚幻争霸》

0:30:36

7:53:40

1,447.93%

C220-01 (D)

转化《虚幻争霸》

0:20:40

15:04:22

4,275.97%

C220-02 (D)

转化《虚幻争霸》

0:23:16

7:55:22

1,943.12%

C220-03 (D)

转化《虚幻争霸》

0:24:08

9:08:44

2,173.76%

出乎意料的是,我们发现当前构建计算机(2 x 10C/20H)的性能与 C220-02 (D)2 x 20C/40H)相似,而不是与 C220-03 (D)(同样 2 x 10C/20H)相似;但是,测试只运行了一次。如果测试再多运行几次,我们可能看到结果会略有不同。

一个有趣的观察结果是,对于其他游戏而言,为《虚幻争霸》构建着色器只会使转化时间回落到更合理的范围(大多数着色器已经在本地DDC中)。

计算机名称

当前

原着色器

新着色器

变化

转化《堡垒之夜》

1:02:57

1:49:16

73.58%

C220-01 (D)

原着色器

新着色器

变化

转化《堡垒之夜》

0:48:13

未完成

不适用

C220-02 (D)

原着色器

新着色器

变化

转化《堡垒之夜》

0:52:08

2:08:57

147.35%

C220-03 (D)

原着色器

新着色器

变化

转化《堡垒之夜》

0:54:50

2:20:54

156.05%

在编译编辑器和转化《虚幻争霸》之后,C220-01 (D) 的嵌入式控制器(EC)中发生了作业超时,从而使其无法完成这些测试。

针对现场开发人员的建议

如果在现场工作,且使用的CPU具有较多核心数量,那么使用XGE是很好的选择(尽管性能可能不稳定)。 RAM为128GB的 2 x 20C/40T 构建器是唯一能与之媲美的独立计算机。 T7810 的性能优于新的 T7910,因此差异很小,但最好使用速度更快的处理器计算机。

64GB的RAM似乎足以满足基线配置的要求,但96-128GB的RAM能够适应未来的需求(或未来扩展规划),是较为明智的选择。

虽然 Samsung 850 PRO SSD似乎运行良好,且配备独立的系统/数据驱动器是确保系统在空间不足时保持稳定性的合理策略,但常见的抱怨是标准的256GB驱动器不足以满足所需工具的要求。 为了防止因SSD写入放大而导致性能下降,应保留一定的空闲空间,用于扩展系统页面文件。翻倍达到512GB是较为合理的选择。

针对异地开发人员的建议

无法使用共享DDC或XGE场的开发人员,肯定会因内核数量较多而得益。2 x 10C/20H 配置(每个约1000美元)是一个不错的选择,因为每个 2 x 20C/40H 配置约3500美元,对于预期回报而言价格有点高。

最后,安装128GB的RAM可将性能提高10%(编译时),因此是值得的。

设置构建场

对于异地开发人员,构建计算机通常会为与内部构建场规范一致。与"常规"开发人员不同,以往的经验告诉我们,构建器具有相当恒定的负载,并且使用XGE会加剧资源争用和波动性,而不是在停机期间分散工作负载。 如果没有XGE,要提升性能,主要是靠增加CPU核心数。

通过分析在构建场上运行的作业,我们了解到转化与编译所花费的时间比例,从而可以使用这些信息估计不同CPU配置在处理相同工作负载时的成本效益。当前场的使用率接近50/50;每天大约花费418个构建器小时进行编译,大约423个构建器小时用于转化或执行其他(主要是)序列任务。

假设在亚马逊购买基础计算机和单个CPU的价格为5000美元,我们可以根据平均工作单位的执行速度来估算计算机的定价。该价格可以作为衡量标准,用于确定是花费10万美元购买高端计算机,还是花费10万美元购买两倍数量的低端计算机。

计算机名称

CPU

完成的相关工作

CPU价格

标准化计算机定价

每工作完成价格

C220-01 (S)

E5-2637 v4 - 4C/8H 3.5GHz

1.395

996.00美元

5996.00美元

8367.12美元

C220-01 (D)

E5-2637 v4 - 4C/8H 3.5Ghz(双核)

1.276

1992.00美元

6992.00美元

8,922.15美元

C220-02 (S)

E5-2698 v4 - 20C/40H 2.2GHz

0.931

3226.00美元

8226.00美元

7662.22美元

C220-02 (D)

E5-2698 v4 - 20C/40H 2.2GHz(双核)

0.851

6,452.00美元

11,452.00美元

9,744.96美元

C220-03 (S)

E5-2640 v4 - 10C/20H 2.4GHz

1.268

939.00美元

5939.00美元

7531.10美元

C220-03 (D)

E5-2640 v4 - 10C/20H 2.4GHz(双核)

1.006

1878.00美元

6878.00美元

6921.82美元

10C/20H 配置最合适,与当前场中的双 E5-2680v2 10C/20H 配置相匹配。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback