Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1
- 00:00:00,000 --> 00:00:08,460
- hi unfortunately we had to cancel the
- 2
- 00:00:03,600 --> 00:00:10,919
- the talk that we had planned for GDC but
- 3
- 00:00:08,460 --> 00:00:15,120
- we do have some super exciting news
- 4
- 00:00:10,919 --> 00:00:17,160
- about ps5 and who better to bring that
- 5
- 00:00:15,119 --> 00:00:18,929
- to you than the one and only mark Cerny
- 6
- 00:00:17,160 --> 00:00:24,390
- without further ado over to you mark
- 7
- 00:00:18,929 --> 00:00:25,980
- thank you Jim there will be lots of
- 8
- 00:00:24,390 --> 00:00:28,710
- chances later on this year to look at
- 9
- 00:00:25,980 --> 00:00:30,329
- the PlayStation 5 games today I want to
- 10
- 00:00:28,710 --> 00:00:32,279
- talk a bit about our goals for the
- 11
- 00:00:30,329 --> 00:00:34,379
- PlayStation 5 hardware and how they
- 12
- 00:00:32,279 --> 00:00:36,719
- influenced the development of the
- 13
- 00:00:34,380 --> 00:00:38,730
- console I think you all know I'm a big
- 14
- 00:00:36,719 --> 00:00:41,489
- believer in console generations once
- 15
- 00:00:38,729 --> 00:00:43,019
- every 5 or 6 or 7 years a console
- 16
- 00:00:41,488 --> 00:00:45,509
- arrives with substantially new
- 17
- 00:00:43,020 --> 00:00:47,520
- capabilities there's a lot of learning
- 18
- 00:00:45,509 --> 00:00:49,799
- by the game developers hopefully not too
- 19
- 00:00:47,520 --> 00:00:52,559
- overwhelming and soon there's games that
- 20
- 00:00:49,799 --> 00:00:54,659
- could never have been created before now
- 21
- 00:00:52,558 --> 00:00:56,849
- it used to be that as a console designer
- 22
- 00:00:54,659 --> 00:00:58,799
- you'd somehow Intuit what would be the
- 23
- 00:00:56,850 --> 00:01:00,989
- best set of capabilities for the new
- 24
- 00:00:58,799 --> 00:01:03,479
- console and then build it in complete
- 25
- 00:01:00,988 --> 00:01:05,849
- secrecy for the PlayStation consoles
- 26
- 00:01:03,479 --> 00:01:08,429
- that period lasted through PlayStation 3
- 27
- 00:01:05,849 --> 00:01:10,769
- a powerful and groundbreaking console
- 28
- 00:01:08,430 --> 00:01:12,540
- but also one that caused quite a lot of
- 29
- 00:01:10,769 --> 00:01:15,929
- heartache as it was initially difficult
- 30
- 00:01:12,540 --> 00:01:17,640
- to develop games for so starting with
- 31
- 00:01:15,930 --> 00:01:19,650
- PlayStation 4 we've taken a different
- 32
- 00:01:17,640 --> 00:01:22,259
- approach roughly centered around three
- 33
- 00:01:19,650 --> 00:01:24,118
- principles the first of these is
- 34
- 00:01:22,259 --> 00:01:26,519
- listening to the developers which is to
- 35
- 00:01:24,118 --> 00:01:28,469
- say that a lot of what we put into a
- 36
- 00:01:26,519 --> 00:01:31,078
- console derives directly from the needs
- 37
- 00:01:28,469 --> 00:01:33,060
- and aspirations of the game creators we
- 38
- 00:01:31,078 --> 00:01:35,250
- definitely do have some ideas of our own
- 39
- 00:01:33,060 --> 00:01:37,320
- but at the core of our philosophy for
- 40
- 00:01:35,250 --> 00:01:40,109
- designing consoles is that game players
- 41
- 00:01:37,319 --> 00:01:42,029
- are here for the fantastic games which
- 42
- 00:01:40,109 --> 00:01:45,060
- is to say that game creators matter
- 43
- 00:01:42,030 --> 00:01:46,890
- anything we can do to make life easier
- 44
- 00:01:45,060 --> 00:01:50,430
- for the game creators or help them
- 45
- 00:01:46,890 --> 00:01:52,829
- realize their dreams we will do so about
- 46
- 00:01:50,430 --> 00:01:54,479
- once every two years I take a tour of
- 47
- 00:01:52,828 --> 00:01:56,849
- the industry I go to the various
- 48
- 00:01:54,478 --> 00:01:58,349
- developers and publishers sit down and
- 49
- 00:01:56,849 --> 00:01:59,849
- discuss how they're doing with the
- 50
- 00:01:58,349 --> 00:02:02,578
- current consoles and what they'd like to
- 51
- 00:01:59,849 --> 00:02:04,769
- see in future consoles this requires
- 52
- 00:02:02,578 --> 00:02:06,658
- weeks on the road as reaching the bulk
- 53
- 00:02:04,769 --> 00:02:08,008
- of the game creators involves talking to
- 54
- 00:02:06,659 --> 00:02:10,110
- well over a hundred people it's
- 55
- 00:02:08,008 --> 00:02:13,669
- something like two dozen publishers and
- 56
- 00:02:10,110 --> 00:02:17,220
- developers and it is incredibly valuable
- 57
- 00:02:13,669 --> 00:02:20,369
- by the way the feature most requested by
- 58
- 00:02:17,219 --> 00:02:22,319
- the developers that was an SST which we
- 59
- 00:02:20,370 --> 00:02:24,990
- were very happy to put in hardware but a
- 60
- 00:02:22,319 --> 00:02:27,239
- lot of problem solving was required I'll
- 61
- 00:02:24,990 --> 00:02:29,430
- be doing a deep dive on the SSD and
- 62
- 00:02:27,240 --> 00:02:32,450
- surrounding systems later on in this
- 63
- 00:02:29,430 --> 00:02:34,500
- talk it's also key to make a
- 64
- 00:02:32,449 --> 00:02:36,479
- generational leaf while keeping the
- 65
- 00:02:34,500 --> 00:02:38,400
- console sufficiently familiar to game
- 66
- 00:02:36,479 --> 00:02:40,819
- developers I think about this in terms
- 67
- 00:02:38,400 --> 00:02:43,860
- of balancing evolution and revolution
- 68
- 00:02:40,819 --> 00:02:45,840
- now with Playstation one two and three
- 69
- 00:02:43,860 --> 00:02:48,150
- the target was a revolution each time
- 70
- 00:02:45,840 --> 00:02:50,099
- with a brand new feature set that was
- 71
- 00:02:48,150 --> 00:02:51,599
- great in many ways but time for the
- 72
- 00:02:50,099 --> 00:02:53,789
- developers to get up and running got
- 73
- 00:02:51,599 --> 00:02:56,939
- longer with each console in the past
- 74
- 00:02:53,789 --> 00:02:59,489
- I've called this time to triangle here's
- 75
- 00:02:56,939 --> 00:03:01,349
- what I had for those three consoles to
- 76
- 00:02:59,490 --> 00:03:03,780
- be clear I'm not talking about time to
- 77
- 00:03:01,349 --> 00:03:06,000
- make a game developers will be ambitious
- 78
- 00:03:03,780 --> 00:03:08,460
- and it may take them six years or so to
- 79
- 00:03:06,000 --> 00:03:10,919
- realize their vision what I'm talking
- 80
- 00:03:08,460 --> 00:03:12,689
- about is that dead time before graphics
- 81
- 00:03:10,919 --> 00:03:14,789
- and other aspects of game development
- 82
- 00:03:12,689 --> 00:03:17,699
- are up and running and trying to
- 83
- 00:03:14,789 --> 00:03:19,530
- minimize that on the other hand if we're
- 84
- 00:03:17,699 --> 00:03:21,269
- trying to reduce that dead time to 0
- 85
- 00:03:19,530 --> 00:03:22,800
- that means the hardware architecture
- 86
- 00:03:21,270 --> 00:03:25,469
- can't change at all
- 87
- 00:03:22,800 --> 00:03:27,660
- we're handcuffed we need to judge for
- 88
- 00:03:25,469 --> 00:03:29,310
- each feature what value it adds and
- 89
- 00:03:27,659 --> 00:03:31,549
- whether it's worth the increase in
- 90
- 00:03:29,310 --> 00:03:34,110
- developer time needed to support it so
- 91
- 00:03:31,550 --> 00:03:35,580
- with Playstation 4 we were able to
- 92
- 00:03:34,110 --> 00:03:37,680
- strike a pretty good balance between
- 93
- 00:03:35,580 --> 00:03:39,900
- performance and familiarity we got
- 94
- 00:03:37,680 --> 00:03:43,770
- required learning back to PlayStation 1
- 95
- 00:03:39,900 --> 00:03:45,450
- levels with PS 5 the GPU was definitely
- 96
- 00:03:43,770 --> 00:03:48,090
- the area that we felt the most tension
- 97
- 00:03:45,449 --> 00:03:50,849
- between adding new features and keeping
- 98
- 00:03:48,090 --> 00:03:52,379
- a familiar programming model ultimately
- 99
- 00:03:50,849 --> 00:03:54,269
- I think we've ended up with something
- 100
- 00:03:52,379 --> 00:03:56,459
- under a month of getting up to speed
- 101
- 00:03:54,270 --> 00:03:58,290
- that feels like we're striking about the
- 102
- 00:03:56,459 --> 00:04:00,090
- right balance I'll go into a bit more
- 103
- 00:03:58,289 --> 00:04:02,789
- detail later today about our philosophy
- 104
- 00:04:00,090 --> 00:04:06,689
- with the GPU and the specific feature
- 105
- 00:04:02,789 --> 00:04:09,060
- set that resulted from it it's also very
- 106
- 00:04:06,689 --> 00:04:10,919
- important for us as the hardware team to
- 107
- 00:04:09,060 --> 00:04:13,890
- find new dreams by which I mean
- 108
- 00:04:10,919 --> 00:04:16,469
- something other than CPU performance GPU
- 109
- 00:04:13,889 --> 00:04:18,298
- performance and the amount of RAM the
- 110
- 00:04:16,470 --> 00:04:19,440
- increase in graphics performance over
- 111
- 00:04:18,298 --> 00:04:21,719
- the past two decades has been
- 112
- 00:04:19,439 --> 00:04:23,219
- astonishing but there are other areas in
- 113
- 00:04:21,720 --> 00:04:25,169
- which we can innovate and provide a
- 114
- 00:04:23,220 --> 00:04:26,330
- significant value to the game creators
- 115
- 00:04:25,168 --> 00:04:29,089
- and through them
- 116
- 00:04:26,329 --> 00:04:30,589
- the players that's why the SSD was very
- 117
- 00:04:29,089 --> 00:04:32,628
- much on our list of directions to
- 118
- 00:04:30,589 --> 00:04:34,638
- explore regardless of what came out of
- 119
- 00:04:32,629 --> 00:04:37,610
- the conversations with game developers
- 120
- 00:04:34,639 --> 00:04:39,829
- and publishers the biggest feature in
- 121
- 00:04:37,610 --> 00:04:42,288
- this category is the custom engine for
- 122
- 00:04:39,829 --> 00:04:45,050
- audio that's today's final topic the
- 123
- 00:04:42,288 --> 00:04:47,658
- push for vastly improved audio and in
- 124
- 00:04:45,050 --> 00:04:49,129
- particular 3d audio isn't something that
- 125
- 00:04:47,658 --> 00:04:51,168
- came out of the developer meetings it's
- 126
- 00:04:49,129 --> 00:04:53,810
- much more the case that we had a dream
- 127
- 00:04:51,168 --> 00:04:55,818
- of what might be possible five years
- 128
- 00:04:53,810 --> 00:04:57,769
- from now and then worked out a number of
- 129
- 00:04:55,819 --> 00:05:00,468
- steps we could take to set us on that
- 130
- 00:04:57,769 --> 00:05:02,870
- path so here again are the three
- 131
- 00:05:00,468 --> 00:05:05,120
- principles the first being enabling the
- 132
- 00:05:02,870 --> 00:05:08,689
- desires of developers to drive the
- 133
- 00:05:05,120 --> 00:05:10,728
- hardware design to me the SSD really is
- 134
- 00:05:08,689 --> 00:05:13,430
- the key to the next generation it's a
- 135
- 00:05:10,728 --> 00:05:15,709
- game changer and it was the number one
- 136
- 00:05:13,430 --> 00:05:18,590
- ask from developers for PlayStation 5 as
- 137
- 00:05:15,709 --> 00:05:22,008
- in we know it's probably impossible but
- 138
- 00:05:18,589 --> 00:05:23,299
- can you put an SSD in it that was a
- 139
- 00:05:22,009 --> 00:05:25,098
- discussion we were also having
- 140
- 00:05:23,300 --> 00:05:26,569
- internally it was clear that the
- 141
- 00:05:25,098 --> 00:05:28,550
- presence of a hard drive in every
- 142
- 00:05:26,569 --> 00:05:30,949
- PlayStation 4 was having a positive
- 143
- 00:05:28,550 --> 00:05:33,199
- impact a lot of things that would simply
- 144
- 00:05:30,949 --> 00:05:35,449
- have been impossible at blu-ray disc
- 145
- 00:05:33,199 --> 00:05:38,389
- speeds were now possible at the same
- 146
- 00:05:35,449 --> 00:05:39,430
- time though in 2015 and 2016 when we
- 147
- 00:05:38,389 --> 00:05:41,810
- were having these conversations
- 148
- 00:05:39,430 --> 00:05:43,370
- developers were already banging up
- 149
- 00:05:41,810 --> 00:05:45,649
- against the limits of the hard drive and
- 150
- 00:05:43,370 --> 00:05:50,209
- a lot of developer time was being spent
- 151
- 00:05:45,649 --> 00:05:52,609
- designing around slow load speeds I want
- 152
- 00:05:50,209 --> 00:05:54,948
- to focus in on just one number here
- 153
- 00:05:52,610 --> 00:05:57,740
- which is how long it takes to load a
- 154
- 00:05:54,949 --> 00:05:59,810
- gigabyte of data from a hard drive the
- 155
- 00:05:57,740 --> 00:06:02,150
- difficulty being that hard drives are
- 156
- 00:05:59,810 --> 00:06:04,848
- neither particularly fast nor flexible
- 157
- 00:06:02,149 --> 00:06:07,370
- if all your data is in one block which
- 158
- 00:06:04,848 --> 00:06:09,860
- is frankly not very likely you can load
- 159
- 00:06:07,370 --> 00:06:11,899
- 50 to 100 megabytes a second depending
- 160
- 00:06:09,860 --> 00:06:13,310
- on where the data is located on the hard
- 161
- 00:06:11,899 --> 00:06:15,049
- drive let's assume it's on the outer
- 162
- 00:06:13,310 --> 00:06:17,389
- edge which means loading a gigabyte
- 163
- 00:06:15,050 --> 00:06:19,728
- takes 10 seconds if you compress your
- 164
- 00:06:17,389 --> 00:06:21,829
- game packages you can fit more data on
- 165
- 00:06:19,728 --> 00:06:24,228
- the blu-ray disc and also effectively
- 166
- 00:06:21,829 --> 00:06:26,990
- boost your hard drive read speed by the
- 167
- 00:06:24,228 --> 00:06:28,939
- compression ratio we support Z Lib
- 168
- 00:06:26,990 --> 00:06:31,129
- decompression on PlayStation 4 that gets
- 169
- 00:06:28,939 --> 00:06:34,838
- you something like 50% more data on the
- 170
- 00:06:31,129 --> 00:06:37,099
- disk and 50% higher effective read speed
- 171
- 00:06:34,838 --> 00:06:39,408
- unfortunately though it's highly likely
- 172
- 00:06:37,098 --> 00:06:41,569
- that your data is scattered around in
- 173
- 00:06:39,408 --> 00:06:43,550
- files on the hard drive as well as
- 174
- 00:06:41,569 --> 00:06:46,309
- sourced from multiple locations within
- 175
- 00:06:43,550 --> 00:06:49,699
- those files so lots of Sikhs are needed
- 176
- 00:06:46,309 --> 00:06:51,588
- at two to fifty ish milliseconds each my
- 177
- 00:06:49,699 --> 00:06:53,478
- rule of thumb is that the hard drive is
- 178
- 00:06:51,588 --> 00:06:56,478
- spending two-thirds of its time seeking
- 179
- 00:06:53,478 --> 00:06:58,639
- and only a third of its time actually
- 180
- 00:06:56,478 --> 00:07:01,428
- loading data putting all of that
- 181
- 00:06:58,639 --> 00:07:05,059
- together a gigabyte is very roughly 20
- 182
- 00:07:01,428 --> 00:07:07,638
- seconds to load from a hard drive now a
- 183
- 00:07:05,059 --> 00:07:09,800
- gigabyte is not much data games are
- 184
- 00:07:07,639 --> 00:07:12,019
- using five or six gigabytes of RAM on
- 185
- 00:07:09,800 --> 00:07:14,449
- PlayStation 4 so boot times and load
- 186
- 00:07:12,019 --> 00:07:16,819
- tons can get pretty grim or to put that
- 187
- 00:07:14,449 --> 00:07:19,389
- differently as a player you wait for the
- 188
- 00:07:16,819 --> 00:07:22,399
- game to boot wait for the game to load
- 189
- 00:07:19,389 --> 00:07:24,110
- wait for the level to reload every time
- 190
- 00:07:22,399 --> 00:07:25,399
- you die and you wait for what is
- 191
- 00:07:24,110 --> 00:07:28,819
- euphemistically called
- 192
- 00:07:25,399 --> 00:07:31,218
- fast travel and all of that leads to the
- 193
- 00:07:28,819 --> 00:07:34,309
- dream what if we could have not just an
- 194
- 00:07:31,218 --> 00:07:37,129
- SSD but a blindingly fast Assisting if
- 195
- 00:07:34,309 --> 00:07:40,219
- we could load five gigabytes a second
- 196
- 00:07:37,129 --> 00:07:41,539
- from it what would change now SSDs are
- 197
- 00:07:40,218 --> 00:07:42,769
- completely different from hard drives
- 198
- 00:07:41,538 --> 00:07:45,259
- they don't have sikhs
- 199
- 00:07:42,769 --> 00:07:47,449
- as such if you have a five gigabyte a
- 200
- 00:07:45,259 --> 00:07:49,218
- second SSD you can read data from a
- 201
- 00:07:47,449 --> 00:07:52,699
- thousand different locations in that
- 202
- 00:07:49,218 --> 00:07:54,889
- second pretty much at speed as for time
- 203
- 00:07:52,699 --> 00:07:56,929
- to load a gigabyte this is next-gen
- 204
- 00:07:54,889 --> 00:07:59,149
- we're talking about so memory is bigger
- 205
- 00:07:56,928 --> 00:08:01,788
- instead we should be asking how long to
- 206
- 00:07:59,149 --> 00:08:04,519
- load two gigabytes and the answer is
- 207
- 00:08:01,788 --> 00:08:06,528
- about a quarter of a second that's
- 208
- 00:08:04,519 --> 00:08:10,218
- amazing we're talking two orders of
- 209
- 00:08:06,528 --> 00:08:13,158
- magnitude meaning very roughly 100 times
- 210
- 00:08:10,218 --> 00:08:15,079
- faster which means at five gigabytes a
- 211
- 00:08:13,158 --> 00:08:18,019
- second for the SSD the potential is that
- 212
- 00:08:15,079 --> 00:08:20,149
- the game boots in a second there are no
- 213
- 00:08:18,019 --> 00:08:22,278
- load screens the game just fades down
- 214
- 00:08:20,149 --> 00:08:24,559
- while loading a half dozen gigabytes and
- 215
- 00:08:22,278 --> 00:08:26,449
- fades back up again same for a reload
- 216
- 00:08:24,559 --> 00:08:29,449
- you're immediately back in the action
- 217
- 00:08:26,449 --> 00:08:31,759
- after you die and fast travel becomes so
- 218
- 00:08:29,449 --> 00:08:33,740
- fast it's blinking you miss it as game
- 219
- 00:08:31,759 --> 00:08:35,629
- creators we go from trying to distract
- 220
- 00:08:33,740 --> 00:08:37,818
- the player from how long fast travel is
- 221
- 00:08:35,629 --> 00:08:40,519
- taking like those spider-man subway
- 222
- 00:08:37,818 --> 00:08:42,078
- rides to being so blindingly fast that
- 223
- 00:08:40,519 --> 00:08:45,289
- we might even have to slow that
- 224
- 00:08:42,078 --> 00:08:47,808
- transition down pretty cool right but
- 225
- 00:08:45,289 --> 00:08:50,269
- for me this is not the primary reason to
- 226
- 00:08:47,808 --> 00:08:52,339
- change from a hard drive to an SSD the
- 227
- 00:08:50,269 --> 00:08:54,889
- primary reason for an ultra
- 228
- 00:08:52,340 --> 00:08:57,769
- SST is that it gives the game designer
- 229
- 00:08:54,889 --> 00:09:00,049
- freedom or to put that differently with
- 230
- 00:08:57,769 --> 00:09:02,299
- a hard drive the twenty seconds that it
- 231
- 00:09:00,049 --> 00:09:04,879
- takes to load a gigabyte can sabotage
- 232
- 00:09:02,299 --> 00:09:07,759
- the game that the developer is trying to
- 233
- 00:09:04,879 --> 00:09:09,500
- create I think almost all of us in the
- 234
- 00:09:07,759 --> 00:09:11,569
- room have experienced this maybe in
- 235
- 00:09:09,500 --> 00:09:13,220
- different ways say we're making an
- 236
- 00:09:11,570 --> 00:09:15,230
- adventure game and we have two rich
- 237
- 00:09:13,220 --> 00:09:17,840
- environments where we each want enough
- 238
- 00:09:15,230 --> 00:09:19,370
- textures and models to fill memory what
- 239
- 00:09:17,840 --> 00:09:22,220
- you can do as long as you have a long
- 240
- 00:09:19,370 --> 00:09:23,870
- staircase or elevator ride or a windy
- 241
- 00:09:22,220 --> 00:09:26,509
- corridor where you can ditch the old
- 242
- 00:09:23,870 --> 00:09:29,659
- assets and then take 30 seconds or so to
- 243
- 00:09:26,509 --> 00:09:31,819
- load the new assets having a 30 second
- 244
- 00:09:29,659 --> 00:09:33,829
- elevator ride is a little extreme
- 245
- 00:09:31,820 --> 00:09:35,900
- more realistically we'd probably chop
- 246
- 00:09:33,830 --> 00:09:37,820
- the world into a number of smaller
- 247
- 00:09:35,899 --> 00:09:40,699
- pieces and then do some calculations
- 248
- 00:09:37,820 --> 00:09:42,920
- with sightlines and run speeds like we
- 249
- 00:09:40,700 --> 00:09:45,800
- did for Haven city when we were making
- 250
- 00:09:42,919 --> 00:09:48,379
- jak 2 the game is 20 years old but not
- 251
- 00:09:45,799 --> 00:09:50,629
- much has changed since then all those
- 252
- 00:09:48,379 --> 00:09:52,399
- twisty passages are there for a reason
- 253
- 00:09:50,629 --> 00:09:54,919
- there's a whole subset of level design
- 254
- 00:09:52,399 --> 00:09:57,470
- dedicated to this sort of work but still
- 255
- 00:09:54,919 --> 00:10:01,069
- it's a giant distraction for a team that
- 256
- 00:09:57,470 --> 00:10:03,710
- just wants to make their game so when I
- 257
- 00:10:01,070 --> 00:10:05,780
- talked about the dream of an SSD part of
- 258
- 00:10:03,710 --> 00:10:08,480
- the reason for that 5 gigabyte a second
- 259
- 00:10:05,779 --> 00:10:10,339
- target was to eliminate loads but also
- 260
- 00:10:08,480 --> 00:10:14,149
- part of the reason for that target was
- 261
- 00:10:10,340 --> 00:10:16,580
- streaming as in what if the SSD is so
- 262
- 00:10:14,149 --> 00:10:18,409
- fast that as the player is turning
- 263
- 00:10:16,580 --> 00:10:20,300
- around it's possible to load textures
- 264
- 00:10:18,409 --> 00:10:22,850
- for everything behind the player in that
- 265
- 00:10:20,299 --> 00:10:24,620
- split second if you figure that it takes
- 266
- 00:10:22,850 --> 00:10:26,389
- half a second to turn that's four
- 267
- 00:10:24,620 --> 00:10:28,820
- gigabytes of compressed data you can
- 268
- 00:10:26,389 --> 00:10:31,100
- load that sounds about right for next
- 269
- 00:10:28,820 --> 00:10:32,570
- gen anyway back to the hard drive
- 270
- 00:10:31,100 --> 00:10:34,610
- another strategy for increasing
- 271
- 00:10:32,570 --> 00:10:37,310
- effective read speed is to make big
- 272
- 00:10:34,610 --> 00:10:39,379
- sequential chunks of data for example we
- 273
- 00:10:37,309 --> 00:10:41,629
- might group all the data together for
- 274
- 00:10:39,379 --> 00:10:44,090
- each city block that removes most of the
- 275
- 00:10:41,629 --> 00:10:45,980
- seeks and the streaming gets faster but
- 276
- 00:10:44,090 --> 00:10:48,230
- there's a downside too which is that
- 277
- 00:10:45,980 --> 00:10:49,879
- frequently used data is included in many
- 278
- 00:10:48,230 --> 00:10:51,759
- chunks and therefore is on the hard
- 279
- 00:10:49,879 --> 00:10:54,409
- drive many many times
- 280
- 00:10:51,759 --> 00:10:56,120
- Marvel spider-men uses this strategy and
- 281
- 00:10:54,409 --> 00:10:58,699
- though it works very well for increasing
- 282
- 00:10:56,120 --> 00:11:00,860
- the streaming speed there's a massive
- 283
- 00:10:58,700 --> 00:11:03,259
- duplication as a result some of the
- 284
- 00:11:00,860 --> 00:11:04,550
- objects like mailboxes or newsracks are
- 285
- 00:11:03,259 --> 00:11:07,669
- on the hard drive for
- 286
- 00:11:04,549 --> 00:11:09,049
- hundred times what I'm describing here
- 287
- 00:11:07,669 --> 00:11:11,509
- are things that cramp
- 288
- 00:11:09,049 --> 00:11:13,039
- a creative director style either level
- 289
- 00:11:11,509 --> 00:11:15,588
- design gets a little bit boring in
- 290
- 00:11:13,039 --> 00:11:17,240
- places or the data is duplicated so many
- 291
- 00:11:15,589 --> 00:11:19,550
- times that it no longer fits on the
- 292
- 00:11:17,240 --> 00:11:21,350
- blu-ray disk and you end up with hard
- 293
- 00:11:19,549 --> 00:11:23,689
- limits on the players run speed or
- 294
- 00:11:21,350 --> 00:11:25,670
- driving speed the player can't go faster
- 295
- 00:11:23,690 --> 00:11:28,370
- than the load speed from the hard drive
- 296
- 00:11:25,669 --> 00:11:30,500
- and finally I'm sure many of you have
- 297
- 00:11:28,370 --> 00:11:32,389
- noticed that after a patch download the
- 298
- 00:11:30,500 --> 00:11:35,600
- PlayStation 4 will sometimes take a long
- 299
- 00:11:32,389 --> 00:11:37,338
- time to install the patch that's because
- 300
- 00:11:35,600 --> 00:11:39,019
- when just part of a file has been
- 301
- 00:11:37,339 --> 00:11:41,779
- changed the new data can be downloaded
- 302
- 00:11:39,019 --> 00:11:43,700
- pretty quickly but before the game boots
- 303
- 00:11:41,778 --> 00:11:45,409
- up a brand new file has to be
- 304
- 00:11:43,700 --> 00:11:47,959
- constructed that includes the changed
- 305
- 00:11:45,409 --> 00:11:50,899
- portion otherwise every change would add
- 306
- 00:11:47,958 --> 00:11:52,909
- a seek or two even so you can
- 307
- 00:11:50,899 --> 00:11:55,100
- occasionally see this happening on game
- 308
- 00:11:52,909 --> 00:11:58,219
- titles they start to hitch once they get
- 309
- 00:11:55,100 --> 00:12:00,889
- patched enough with an SSD though no
- 310
- 00:11:58,220 --> 00:12:02,600
- seeks so no need to make brand new files
- 311
- 00:12:00,889 --> 00:12:05,659
- with the changes incorporated into them
- 312
- 00:12:02,600 --> 00:12:09,950
- which means no installs as you know them
- 313
- 00:12:05,659 --> 00:12:12,049
- today there's yet one more benefit which
- 314
- 00:12:09,950 --> 00:12:15,350
- is that system memory can be used much
- 315
- 00:12:12,049 --> 00:12:17,000
- more efficiently on PlayStation 4 game
- 316
- 00:12:15,350 --> 00:12:19,579
- data on the hard drive feels very
- 317
- 00:12:17,000 --> 00:12:21,169
- distant and difficult to use by the time
- 318
- 00:12:19,578 --> 00:12:23,239
- you realize you need a piece of data
- 319
- 00:12:21,169 --> 00:12:25,250
- it's much too late to go out and load it
- 320
- 00:12:23,240 --> 00:12:27,139
- so system memory has to contain all of
- 321
- 00:12:25,250 --> 00:12:30,019
- the data that could be used in the next
- 322
- 00:12:27,139 --> 00:12:32,028
- 30 seconds or so of gameplay that means
- 323
- 00:12:30,019 --> 00:12:34,399
- a lot of the eight gigabytes of system
- 324
- 00:12:32,028 --> 00:12:38,899
- memory is idle it's just waiting there
- 325
- 00:12:34,399 --> 00:12:40,970
- to be potentially used on PlayStation 5
- 326
- 00:12:38,899 --> 00:12:43,250
- though the SSD is very close to being
- 327
- 00:12:40,970 --> 00:12:45,019
- like more RAM typically it's fast enough
- 328
- 00:12:43,250 --> 00:12:47,179
- that when you realize you need a piece
- 329
- 00:12:45,019 --> 00:12:49,698
- of data you can just load it from the
- 330
- 00:12:47,179 --> 00:12:51,588
- SSD and use it there's no need to have
- 331
- 00:12:49,698 --> 00:12:53,769
- lots of data parked in system memory
- 332
- 00:12:51,589 --> 00:12:56,029
- waiting to potentially be used a
- 333
- 00:12:53,769 --> 00:12:58,698
- different way of saying that is that
- 334
- 00:12:56,028 --> 00:13:01,338
- most of Ram is working on the game's
- 335
- 00:12:58,698 --> 00:13:05,299
- behalf this is one of the reasons that
- 336
- 00:13:01,339 --> 00:13:08,180
- 16 gigabytes of gddr5 for playstation 5
- 337
- 00:13:05,299 --> 00:13:10,759
- the presence of the SSD reduces the need
- 338
- 00:13:08,179 --> 00:13:14,539
- for a massive intergenerational increase
- 339
- 00:13:10,759 --> 00:13:16,439
- in size so back to the dream of the SSD
- 340
- 00:13:14,539 --> 00:13:19,139
- here's the set of targets
- 341
- 00:13:16,440 --> 00:13:22,529
- buuut the game in a second no load
- 342
- 00:13:19,139 --> 00:13:25,649
- screens design freedom meaning no twisty
- 343
- 00:13:22,528 --> 00:13:27,720
- passages or long corridors more game on
- 344
- 00:13:25,649 --> 00:13:32,100
- the disk and more game on the SSD and
- 345
- 00:13:27,720 --> 00:13:34,649
- finally those patch installs go away the
- 346
- 00:13:32,100 --> 00:13:36,689
- reality though is that the SSD is just
- 347
- 00:13:34,649 --> 00:13:38,519
- one piece of the puzzle there's a lot of
- 348
- 00:13:36,688 --> 00:13:40,649
- places where bottlenecks can occur in
- 349
- 00:13:38,519 --> 00:13:42,959
- between the SSD and the game code that
- 350
- 00:13:40,649 --> 00:13:45,568
- uses the data you can see this on
- 351
- 00:13:42,958 --> 00:13:47,369
- PlayStation 4 if I use an SSD with 10
- 352
- 00:13:45,568 --> 00:13:50,458
- times the speed of a standard hard drive
- 353
- 00:13:47,370 --> 00:13:54,060
- I probably see only double the loading
- 354
- 00:13:50,458 --> 00:13:56,549
- speed if that for PlayStation 5 our goal
- 355
- 00:13:54,059 --> 00:13:58,799
- was not just that the SSD itself be a
- 356
- 00:13:56,549 --> 00:14:01,049
- hundred times faster it was that game
- 357
- 00:13:58,799 --> 00:14:03,899
- loads and streaming would be a hundred
- 358
- 00:14:01,049 --> 00:14:05,758
- times faster so every single potential
- 359
- 00:14:03,899 --> 00:14:08,610
- bottleneck needed to be addressed and
- 360
- 00:14:05,759 --> 00:14:10,050
- there are a lot of them let's look at
- 361
- 00:14:08,610 --> 00:14:11,810
- check-in and what happens when its
- 362
- 00:14:10,049 --> 00:14:14,490
- overhead gets a hundred times larger
- 363
- 00:14:11,809 --> 00:14:16,708
- conceptually check-in is a pretty simple
- 364
- 00:14:14,490 --> 00:14:18,720
- process data is loaded into system
- 365
- 00:14:16,708 --> 00:14:21,208
- memory from the hard drive or SSD it's
- 366
- 00:14:18,720 --> 00:14:23,278
- examined a few values are tweaked to
- 367
- 00:14:21,208 --> 00:14:26,219
- check it in and then it's moved to its
- 368
- 00:14:23,278 --> 00:14:28,948
- final location at the SSD speeds we're
- 369
- 00:14:26,220 --> 00:14:30,689
- talking about that last part moving the
- 370
- 00:14:28,948 --> 00:14:32,938
- data meaning copying it from one
- 371
- 00:14:30,688 --> 00:14:36,088
- location to another takes roughly an
- 372
- 00:14:32,938 --> 00:14:37,649
- entire next-gen CPU core and that's just
- 373
- 00:14:36,089 --> 00:14:39,029
- the tip of the iceberg if all the
- 374
- 00:14:37,649 --> 00:14:41,159
- overheads get a hundred times larger
- 375
- 00:14:39,028 --> 00:14:42,990
- that will cripple the framerate as soon
- 376
- 00:14:41,159 --> 00:14:45,870
- as the player moves and that massive
- 377
- 00:14:42,990 --> 00:14:48,480
- stream of data starts coming off the SSD
- 378
- 00:14:45,870 --> 00:14:51,269
- so to solve all of that we built a lot
- 379
- 00:14:48,480 --> 00:14:53,399
- of custom hardware namely a custom flash
- 380
- 00:14:51,269 --> 00:14:56,220
- controller and a number of custom units
- 381
- 00:14:53,399 --> 00:14:58,559
- in our main chip the flash controller in
- 382
- 00:14:56,220 --> 00:15:01,079
- the SSD was designed for smooth and
- 383
- 00:14:58,559 --> 00:15:03,000
- bottleneck free operation but also with
- 384
- 00:15:01,078 --> 00:15:04,919
- games in mind for example there are six
- 385
- 00:15:03,000 --> 00:15:07,470
- levels of priority when reading from the
- 386
- 00:15:04,919 --> 00:15:09,899
- SSD priority is very important you can
- 387
- 00:15:07,470 --> 00:15:11,370
- imagine the player heading into some new
- 388
- 00:15:09,899 --> 00:15:13,828
- location in the world and the game
- 389
- 00:15:11,370 --> 00:15:15,899
- requesting a few gigabytes of textures
- 390
- 00:15:13,828 --> 00:15:18,659
- and while those textures are being
- 391
- 00:15:15,899 --> 00:15:21,389
- loaded an enemy is shot and has to speak
- 392
- 00:15:18,659 --> 00:15:23,100
- a few dying words having multiple
- 393
- 00:15:21,389 --> 00:15:25,730
- priority levels let's the audio for
- 394
- 00:15:23,100 --> 00:15:28,949
- those dying words get loaded immediately
- 395
- 00:15:25,730 --> 00:15:30,300
- on one side that flash controller
- 396
- 00:15:28,948 --> 00:15:32,639
- connects to the actual
- 397
- 00:15:30,299 --> 00:15:34,889
- - dyes that supply of the storage to
- 398
- 00:15:32,639 --> 00:15:37,289
- reach art bandwidth target of 5
- 399
- 00:15:34,889 --> 00:15:39,840
- gigabytes a second we ended up with a 12
- 400
- 00:15:37,289 --> 00:15:42,209
- channel interface 8 channels wouldn't be
- 401
- 00:15:39,840 --> 00:15:43,980
- enough the resulting bandwidth we have
- 402
- 00:15:42,210 --> 00:15:46,620
- achieved is actually five and a half
- 403
- 00:15:43,980 --> 00:15:48,810
- gigabytes a second with a 12 channel
- 404
- 00:15:46,620 --> 00:15:53,159
- interface the most natural size that
- 405
- 00:15:48,809 --> 00:15:56,039
- emerges for an SSD is 825 gigabytes the
- 406
- 00:15:53,159 --> 00:15:58,169
- key question for us was is that enough
- 407
- 00:15:56,039 --> 00:16:00,179
- it's tempting to add more but flash
- 408
- 00:15:58,169 --> 00:16:02,370
- certainly doesn't come cheap and we have
- 409
- 00:16:00,179 --> 00:16:04,349
- a responsibility to our gaming audience
- 410
- 00:16:02,370 --> 00:16:07,529
- to be cost effective with regards to
- 411
- 00:16:04,350 --> 00:16:09,240
- what we put in the console ultimately we
- 412
- 00:16:07,529 --> 00:16:11,850
- resolve this question by looking at the
- 413
- 00:16:09,240 --> 00:16:14,549
- play patterns of a broad range of gamers
- 414
- 00:16:11,850 --> 00:16:15,840
- we examined the specific games that they
- 415
- 00:16:14,549 --> 00:16:18,269
- were playing over the course of a
- 416
- 00:16:15,840 --> 00:16:20,700
- weekend or week or a month and whether
- 417
- 00:16:18,269 --> 00:16:23,490
- that set of games would fit properly on
- 418
- 00:16:20,700 --> 00:16:25,800
- the SSD we were able to establish that
- 419
- 00:16:23,490 --> 00:16:28,350
- the friction caused by reinstalled or
- 420
- 00:16:25,799 --> 00:16:29,669
- read downloads would be quite low and so
- 421
- 00:16:28,350 --> 00:16:32,879
- we locked in on that
- 422
- 00:16:29,669 --> 00:16:34,949
- 825 gigabyte size while also preparing
- 423
- 00:16:32,879 --> 00:16:37,080
- multiple strategies so that those who
- 424
- 00:16:34,950 --> 00:16:38,930
- want more storage can add it I'll go
- 425
- 00:16:37,080 --> 00:16:41,400
- through the details in a moment
- 426
- 00:16:38,929 --> 00:16:43,049
- back to the flash controller on the
- 427
- 00:16:41,399 --> 00:16:45,870
- other side it connects to our main
- 428
- 00:16:43,049 --> 00:16:48,750
- custom chip via four lanes of Gen 4 PCIe
- 429
- 00:16:45,870 --> 00:16:51,560
- and inside the main custom chip is a
- 430
- 00:16:48,750 --> 00:16:53,700
- pretty hefty unit dedicated to i/o
- 431
- 00:16:51,559 --> 00:16:56,179
- before we talk about what that does
- 432
- 00:16:53,700 --> 00:16:58,650
- let's talk compression for a moment
- 433
- 00:16:56,179 --> 00:17:00,989
- PlayStation 4 used Z live as its
- 434
- 00:16:58,649 --> 00:17:04,200
- compression format we decided to use it
- 435
- 00:17:00,990 --> 00:17:05,970
- again on PlayStation 5 but on my 2017
- 436
- 00:17:04,200 --> 00:17:09,360
- tour of developers I learned about a new
- 437
- 00:17:05,970 --> 00:17:12,589
- format called Kraken from rad game tools
- 438
- 00:17:09,359 --> 00:17:15,449
- it's like Z libs smarter cousin simple
- 439
- 00:17:12,589 --> 00:17:18,209
- similar types of algorithms but about
- 440
- 00:17:15,450 --> 00:17:20,910
- 10% better compression which is pretty
- 441
- 00:17:18,210 --> 00:17:24,090
- big that means 10% more game on the UHD
- 442
- 00:17:20,910 --> 00:17:25,529
- blu-ray disc or on the SSD kraken had
- 443
- 00:17:24,089 --> 00:17:27,929
- only been out for a year that it was
- 444
- 00:17:25,529 --> 00:17:29,879
- already becoming a de-facto industry
- 445
- 00:17:27,930 --> 00:17:31,799
- standard half of the teams I talked to
- 446
- 00:17:29,880 --> 00:17:34,650
- or either using it or getting ready to
- 447
- 00:17:31,799 --> 00:17:37,019
- evaluate it so we hustled and built a
- 448
- 00:17:34,650 --> 00:17:40,019
- custom decompressor into the i/o unit
- 449
- 00:17:37,019 --> 00:17:40,929
- one capable of handling over 5 gigabytes
- 450
- 00:17:40,019 --> 00:17:43,778
- of crack and
- 451
- 00:17:40,929 --> 00:17:45,519
- format input data a second after
- 452
- 00:17:43,778 --> 00:17:47,558
- decompression that typically becomes
- 453
- 00:17:45,519 --> 00:17:49,749
- eight or nine gigabytes but the unit
- 454
- 00:17:47,558 --> 00:17:52,749
- itself is capable of outputting as much
- 455
- 00:17:49,749 --> 00:17:54,778
- as 22 gigabytes a second if the data
- 456
- 00:17:52,749 --> 00:17:57,639
- happened to compress particularly well
- 457
- 00:17:54,778 --> 00:18:00,278
- by the way in terms of performance that
- 458
- 00:17:57,638 --> 00:18:01,418
- custom decompressor equates to nine of
- 459
- 00:18:00,278 --> 00:18:02,980
- our Xen two cores
- 460
- 00:18:01,419 --> 00:18:04,749
- that's what it would take to decompress
- 461
- 00:18:02,980 --> 00:18:08,288
- the kraken stream with a conventional
- 462
- 00:18:04,749 --> 00:18:10,868
- CPU there's a lot more in the custom IO
- 463
- 00:18:08,288 --> 00:18:12,819
- unit including a dedicated DMA
- 464
- 00:18:10,868 --> 00:18:14,648
- controller the game can direct exactly
- 465
- 00:18:12,819 --> 00:18:17,230
- where it wants to send the data coming
- 466
- 00:18:14,648 --> 00:18:19,569
- off of the SSD this equates to another
- 467
- 00:18:17,230 --> 00:18:21,759
- Xen two core or two in terms of its copy
- 468
- 00:18:19,569 --> 00:18:24,908
- performance its primary purpose is to
- 469
- 00:18:21,759 --> 00:18:27,249
- remove check in as a bottleneck there's
- 470
- 00:18:24,909 --> 00:18:28,360
- two dedicated i/o coprocessors in a
- 471
- 00:18:27,249 --> 00:18:29,919
- large ramp pool
- 472
- 00:18:28,359 --> 00:18:31,569
- these are tins in 2 cores there are
- 473
- 00:18:29,919 --> 00:18:34,629
- there principally to direct the variety
- 474
- 00:18:31,569 --> 00:18:36,788
- of custom hardware around them one of
- 475
- 00:18:34,628 --> 00:18:39,759
- the co processors is dedicated to SSD
- 476
- 00:18:36,788 --> 00:18:41,558
- i/o this lets us bypass traditional file
- 477
- 00:18:39,759 --> 00:18:44,259
- i/o and it's bottlenecks when reading
- 478
- 00:18:41,558 --> 00:18:46,388
- from the SSD the other is responsible
- 479
- 00:18:44,259 --> 00:18:48,128
- for memory mapping which I know doesn't
- 480
- 00:18:46,388 --> 00:18:50,740
- sound like anything related to the SSD
- 481
- 00:18:48,128 --> 00:18:53,618
- but a lot of developers map and remap
- 482
- 00:18:50,740 --> 00:18:56,378
- memory as part of file i/o and this too
- 483
- 00:18:53,618 --> 00:18:58,480
- can become a bottleneck there are
- 484
- 00:18:56,378 --> 00:19:00,908
- coherency engines to assist the
- 485
- 00:18:58,480 --> 00:19:03,190
- coprocessors coherency comes up a lot in
- 486
- 00:19:00,909 --> 00:19:05,909
- places probably the biggest coherency
- 487
- 00:19:03,190 --> 00:19:08,558
- issue is stale data in the GPU caches
- 488
- 00:19:05,909 --> 00:19:11,289
- flushing all of the GPU caches whenever
- 489
- 00:19:08,558 --> 00:19:13,599
- the SSD is read is an unattractive
- 490
- 00:19:11,288 --> 00:19:15,700
- option it could really hurt the GPU
- 491
- 00:19:13,599 --> 00:19:18,548
- performance so we've implemented a
- 492
- 00:19:15,700 --> 00:19:21,519
- gentler way of doing things where the
- 493
- 00:19:18,548 --> 00:19:23,950
- coherency engines inform the GPU of the
- 494
- 00:19:21,519 --> 00:19:26,740
- overwritten address ranges and custom
- 495
- 00:19:23,950 --> 00:19:29,319
- scrubbers in several dozen GPU caches do
- 496
- 00:19:26,740 --> 00:19:31,749
- pinpoint evictions of just those address
- 497
- 00:19:29,319 --> 00:19:33,668
- ranges the best thing is as a game
- 498
- 00:19:31,749 --> 00:19:35,919
- developer when you read from the SSD you
- 499
- 00:19:33,669 --> 00:19:37,570
- don't need to know any of this you don't
- 500
- 00:19:35,919 --> 00:19:40,389
- even need to know that your data is
- 501
- 00:19:37,569 --> 00:19:42,128
- compressed you just indicate what data
- 502
- 00:19:40,388 --> 00:19:44,079
- you'd like to read from your original
- 503
- 00:19:42,128 --> 00:19:45,878
- uncompressed file and where you'd like
- 504
- 00:19:44,079 --> 00:19:48,849
- to put it and the whole process of
- 505
- 00:19:45,878 --> 00:19:51,759
- loading it happens invisibly to you and
- 506
- 00:19:48,849 --> 00:19:54,139
- at very high speed back to the dream
- 507
- 00:19:51,759 --> 00:19:56,660
- thanks to all of that surrounding hard
- 508
- 00:19:54,140 --> 00:19:58,520
- our 5.5 gigabytes a second really should
- 509
- 00:19:56,660 --> 00:20:01,460
- translate into something like a hundred
- 510
- 00:19:58,519 --> 00:20:04,009
- times faster IO than ps4 and allow the
- 511
- 00:20:01,460 --> 00:20:06,259
- dream of no load screens and superfast
- 512
- 00:20:04,009 --> 00:20:09,259
- streaming to become a reality
- 513
- 00:20:06,259 --> 00:20:11,359
- having said that expandability of our
- 514
- 00:20:09,259 --> 00:20:13,250
- SSD is going to be quite important
- 515
- 00:20:11,359 --> 00:20:15,439
- flash is costly and you may very well
- 516
- 00:20:13,250 --> 00:20:19,009
- want to add storage to whatever we put
- 517
- 00:20:15,440 --> 00:20:20,960
- in the console now the kind of storage
- 518
- 00:20:19,009 --> 00:20:22,940
- you need depends on how you're going to
- 519
- 00:20:20,960 --> 00:20:25,009
- use it if you have an extensive
- 520
- 00:20:22,940 --> 00:20:26,360
- PlayStation 4 library and you'd like to
- 521
- 00:20:25,009 --> 00:20:28,039
- take advantage of backwards
- 522
- 00:20:26,359 --> 00:20:30,918
- compatibility to play those games on
- 523
- 00:20:28,039 --> 00:20:33,798
- PlayStation 5 then a large external hard
- 524
- 00:20:30,919 --> 00:20:35,480
- drive is ideal you can leave your games
- 525
- 00:20:33,798 --> 00:20:38,119
- on the hard drive and play them directly
- 526
- 00:20:35,480 --> 00:20:40,190
- from there thus saving the pricier SSD
- 527
- 00:20:38,119 --> 00:20:42,500
- storage for your PlayStation 5 titles or
- 528
- 00:20:40,190 --> 00:20:44,990
- you can copy your active PlayStation 4
- 529
- 00:20:42,500 --> 00:20:46,279
- titles to the SSD if your purpose in
- 530
- 00:20:44,990 --> 00:20:49,160
- adding more storage is to play
- 531
- 00:20:46,279 --> 00:20:52,039
- playstation 5 titles though ideally you
- 532
- 00:20:49,160 --> 00:20:55,130
- would add to your SSD storage we will be
- 533
- 00:20:52,039 --> 00:20:56,899
- supporting certain m2 SSDs these are
- 534
- 00:20:55,130 --> 00:20:59,630
- internal drives that you can get on the
- 535
- 00:20:56,900 --> 00:21:02,059
- open market and install in a bay in the
- 536
- 00:20:59,630 --> 00:21:04,160
- playstation 5 as for which ones we
- 537
- 00:21:02,058 --> 00:21:06,589
- support and when I'll get to that in a
- 538
- 00:21:04,160 --> 00:21:09,769
- moment they connect through the custom
- 539
- 00:21:06,589 --> 00:21:11,269
- io unit just like our SSD does so they
- 540
- 00:21:09,769 --> 00:21:13,789
- can take full advantage of the
- 541
- 00:21:11,269 --> 00:21:15,789
- decompression io coprocessors and all
- 542
- 00:21:13,789 --> 00:21:18,678
- the other features I was talking about
- 543
- 00:21:15,789 --> 00:21:21,289
- here's the catch though that commercial
- 544
- 00:21:18,679 --> 00:21:23,929
- drive has to be at least as fast as ours
- 545
- 00:21:21,289 --> 00:21:26,058
- games that rely on the speed of our SSD
- 546
- 00:21:23,929 --> 00:21:28,970
- need to work flawlessly with nem to
- 547
- 00:21:26,058 --> 00:21:31,160
- drive when I gave the Wired interview
- 548
- 00:21:28,970 --> 00:21:33,769
- last year I said that the PlayStation 5
- 549
- 00:21:31,160 --> 00:21:36,890
- SSD was faster than anything available
- 550
- 00:21:33,769 --> 00:21:40,308
- on PC at the time commercial M 2 drives
- 551
- 00:21:36,890 --> 00:21:43,130
- used pcie 3.0 and four lanes of that cap
- 552
- 00:21:40,308 --> 00:21:46,819
- out at 3.5 gigabytes a second in other
- 553
- 00:21:43,130 --> 00:21:51,020
- words no pcie 3.0 Drive can hit the
- 554
- 00:21:46,819 --> 00:21:52,970
- required spec M 2 drives with PCI u 4.0
- 555
- 00:21:51,019 --> 00:21:56,480
- or now out in the market we're getting
- 556
- 00:21:52,970 --> 00:21:58,759
- our in samples and seeing four or five
- 557
- 00:21:56,480 --> 00:22:00,558
- gigabytes a second from them by year's
- 558
- 00:21:58,759 --> 00:22:03,379
- end I expect there will be drives that
- 559
- 00:22:00,558 --> 00:22:05,808
- saturate 4.0 and support seven gigabytes
- 560
- 00:22:03,380 --> 00:22:06,800
- a second having said that we are
- 561
- 00:22:05,808 --> 00:22:08,930
- comparing
- 562
- 00:22:06,799 --> 00:22:10,879
- apples and oranges though because that
- 563
- 00:22:08,930 --> 00:22:12,650
- commercial m2 Drive will have its own
- 564
- 00:22:10,880 --> 00:22:15,590
- architecture its own flash controller
- 565
- 00:22:12,650 --> 00:22:17,720
- and so on for example the nvme
- 566
- 00:22:15,589 --> 00:22:19,849
- specification lays out a priority scheme
- 567
- 00:22:17,720 --> 00:22:23,089
- for requests that the m2 drives can use
- 568
- 00:22:19,849 --> 00:22:26,359
- and that scheme is pretty nice but it
- 569
- 00:22:23,089 --> 00:22:29,480
- only has two true priority levels our
- 570
- 00:22:26,359 --> 00:22:31,039
- drive supports six we can hook up a
- 571
- 00:22:29,480 --> 00:22:33,559
- drive with only two priority levels
- 572
- 00:22:31,039 --> 00:22:35,629
- definitely but our custom IO unit has to
- 573
- 00:22:33,559 --> 00:22:37,700
- arbitrate the extra priorities rather
- 574
- 00:22:35,630 --> 00:22:39,950
- than the m2 drives flash controller and
- 575
- 00:22:37,700 --> 00:22:41,809
- so the m2 drive needs a little extra
- 576
- 00:22:39,950 --> 00:22:44,269
- speed to take care of issues arising
- 577
- 00:22:41,809 --> 00:22:45,710
- from the different approach that
- 578
- 00:22:44,269 --> 00:22:47,960
- Commercial Drive also needs to
- 579
- 00:22:45,710 --> 00:22:50,380
- physically fit inside of the bay we
- 580
- 00:22:47,960 --> 00:22:53,029
- created in PlayStation 5 for m2 drives
- 581
- 00:22:50,380 --> 00:22:55,580
- unlike internal hard drives there's
- 582
- 00:22:53,029 --> 00:22:58,190
- unfortunately no standard for the height
- 583
- 00:22:55,579 --> 00:23:00,409
- of an m2 Drive and some m2 drives have
- 584
- 00:22:58,190 --> 00:23:03,650
- giant heat sinks in fact some of them
- 585
- 00:23:00,410 --> 00:23:05,360
- even have their own fans right now we're
- 586
- 00:23:03,650 --> 00:23:07,850
- getting em to drive samples and
- 587
- 00:23:05,359 --> 00:23:09,949
- benchmarking them in various ways when
- 588
- 00:23:07,849 --> 00:23:11,629
- games hit in beta as they get ready for
- 589
- 00:23:09,950 --> 00:23:13,730
- the PlayStation 5 launch at year-end
- 590
- 00:23:11,630 --> 00:23:15,020
- we'll also be doing some compatibility
- 591
- 00:23:13,730 --> 00:23:17,329
- testing to make sure that the
- 592
- 00:23:15,019 --> 00:23:18,980
- architecture of particular M 2 drives
- 593
- 00:23:17,329 --> 00:23:20,809
- isn't too foreign for the games to
- 594
- 00:23:18,980 --> 00:23:22,940
- handle once we've done that
- 595
- 00:23:20,809 --> 00:23:24,740
- compatibility testing we should be able
- 596
- 00:23:22,940 --> 00:23:26,630
- to start letting you know which drives
- 597
- 00:23:24,740 --> 00:23:28,400
- will physically fit and which drive
- 598
- 00:23:26,630 --> 00:23:31,280
- samples have benchmark appropriately
- 599
- 00:23:28,400 --> 00:23:32,930
- high in our testing it would be great if
- 600
- 00:23:31,279 --> 00:23:35,660
- that happened by launch but it's likely
- 601
- 00:23:32,930 --> 00:23:37,940
- to be a bit past it so please hold off
- 602
- 00:23:35,660 --> 00:23:40,960
- on getting that M to drive until you
- 603
- 00:23:37,940 --> 00:23:43,880
- hear from us ok back to our principles
- 604
- 00:23:40,960 --> 00:23:45,799
- balancing evolution and revolution is
- 605
- 00:23:43,880 --> 00:23:49,970
- the second of them this was definitely a
- 606
- 00:23:45,799 --> 00:23:52,490
- recurring theme with the GPU we need new
- 607
- 00:23:49,970 --> 00:23:54,049
- GPU features and capabilities if if we
- 608
- 00:23:52,490 --> 00:23:56,329
- only have more performance it's not
- 609
- 00:23:54,049 --> 00:23:58,609
- really a new generation of console of
- 610
- 00:23:56,329 --> 00:24:00,859
- course many of these capabilities result
- 611
- 00:23:58,609 --> 00:24:03,049
- in more performance that's part of why a
- 612
- 00:24:00,859 --> 00:24:05,209
- Playstation 5 teraflop is more powerful
- 613
- 00:24:03,049 --> 00:24:06,799
- than a Playstation 4 teraflop but we
- 614
- 00:24:05,210 --> 00:24:09,140
- aren't just looking for the performance
- 615
- 00:24:06,799 --> 00:24:11,419
- we also need the ability to do something
- 616
- 00:24:09,140 --> 00:24:14,360
- with the GPU that could not have been
- 617
- 00:24:11,420 --> 00:24:15,560
- done before and we need higher
- 618
- 00:24:14,359 --> 00:24:17,569
- performance per watt
- 619
- 00:24:15,559 --> 00:24:20,609
- every time we double the performance of
- 620
- 00:24:17,569 --> 00:24:22,500
- some GPU component we don't want to find
- 621
- 00:24:20,609 --> 00:24:25,288
- we've doubled the power consumed and the
- 622
- 00:24:22,500 --> 00:24:27,869
- heat produced but at the same time we
- 623
- 00:24:25,288 --> 00:24:30,450
- have to make sure the GPU can run ps4
- 624
- 00:24:27,869 --> 00:24:32,308
- games and we have to ensure that the
- 625
- 00:24:30,450 --> 00:24:35,399
- architecture is easy for the developers
- 626
- 00:24:32,308 --> 00:24:37,980
- to adopt now backwards compatibility was
- 627
- 00:24:35,398 --> 00:24:40,109
- handled masterfully by AMD they treated
- 628
- 00:24:37,980 --> 00:24:42,298
- it as a key need throughout the design
- 629
- 00:24:40,109 --> 00:24:44,158
- process as our solution to adding new
- 630
- 00:24:42,298 --> 00:24:46,408
- features without blindsiding developers
- 631
- 00:24:44,159 --> 00:24:48,269
- we made sure that if there were new
- 632
- 00:24:46,409 --> 00:24:51,330
- significant features it would be
- 633
- 00:24:48,269 --> 00:24:52,859
- optional to use them the GPU supports
- 634
- 00:24:51,329 --> 00:24:55,319
- ray tracing but you don't have to use
- 635
- 00:24:52,859 --> 00:24:57,028
- ray tracing to make your game the GPU
- 636
- 00:24:55,319 --> 00:24:58,918
- supports primitive shaders but you can
- 637
- 00:24:57,028 --> 00:25:02,038
- release your first game on PlayStation 5
- 638
- 00:24:58,919 --> 00:25:04,350
- without making any use of them before I
- 639
- 00:25:02,038 --> 00:25:06,028
- get into the capabilities of the GPU I'd
- 640
- 00:25:04,349 --> 00:25:09,538
- like to make clear two points that can
- 641
- 00:25:06,028 --> 00:25:12,769
- be quite confusing first we have a
- 642
- 00:25:09,538 --> 00:25:16,019
- custom AMD GPU based on there are DNA 2
- 643
- 00:25:12,769 --> 00:25:18,089
- technology what does that mean AMD is
- 644
- 00:25:16,019 --> 00:25:20,370
- continuously improving and revising
- 645
- 00:25:18,089 --> 00:25:23,369
- their tech for our DNA to their goals
- 646
- 00:25:20,369 --> 00:25:25,619
- were roughly speaking to reduce power of
- 647
- 00:25:23,369 --> 00:25:27,209
- consumption by rhe architecting the GPU
- 648
- 00:25:25,619 --> 00:25:30,178
- to put data close to where it's needed
- 649
- 00:25:27,210 --> 00:25:32,548
- to optimize the GPU for performance and
- 650
- 00:25:30,179 --> 00:25:36,028
- to adding new more advanced feature set
- 651
- 00:25:32,548 --> 00:25:38,369
- but that feature set is malleable which
- 652
- 00:25:36,028 --> 00:25:40,470
- is to say that we have our own needs for
- 653
- 00:25:38,369 --> 00:25:43,109
- PlayStation and that can factor into
- 654
- 00:25:40,470 --> 00:25:45,808
- what the AMD roadmap becomes so
- 655
- 00:25:43,109 --> 00:25:47,759
- collaboration is born if we bring
- 656
- 00:25:45,808 --> 00:25:50,038
- concepts to AMD that are felt to be
- 657
- 00:25:47,759 --> 00:25:52,169
- widely useful then they can be adopted
- 658
- 00:25:50,038 --> 00:25:55,888
- into our DNA - and used broadly
- 659
- 00:25:52,169 --> 00:25:57,659
- including in PC GPUs if the ideas are
- 660
- 00:25:55,888 --> 00:25:58,709
- sufficiently specific to what we're
- 661
- 00:25:57,659 --> 00:26:00,929
- trying to accomplish
- 662
- 00:25:58,710 --> 00:26:02,788
- like the GPU cache scrubbers I was
- 663
- 00:26:00,929 --> 00:26:06,240
- talking about then they end up being
- 664
- 00:26:02,788 --> 00:26:09,869
- just for us if you see a similar
- 665
- 00:26:06,240 --> 00:26:11,700
- discrete GPU available as a PC card at
- 666
- 00:26:09,869 --> 00:26:13,888
- roughly the same time as we release our
- 667
- 00:26:11,700 --> 00:26:16,860
- console that means our collaboration
- 668
- 00:26:13,888 --> 00:26:19,319
- with AMD succeeded in producing
- 669
- 00:26:16,859 --> 00:26:21,509
- technology useful in both worlds it
- 670
- 00:26:19,319 --> 00:26:23,788
- doesn't mean that we as sony simply
- 671
- 00:26:21,509 --> 00:26:26,669
- incorporated the pc part into our
- 672
- 00:26:23,788 --> 00:26:29,038
- console this continuous improvement in
- 673
- 00:26:26,669 --> 00:26:30,870
- AMD technology means it's dangerous to
- 674
- 00:26:29,038 --> 00:26:32,669
- rely on teraflops as an absolute
- 675
- 00:26:30,869 --> 00:26:34,678
- indicator of performance and
- 676
- 00:26:32,669 --> 00:26:37,710
- see you count should be avoided as well
- 677
- 00:26:34,679 --> 00:26:39,989
- in the case of CPUs we all understand
- 678
- 00:26:37,710 --> 00:26:42,690
- this the PlayStation 4 and PlayStation 5
- 679
- 00:26:39,989 --> 00:26:43,919
- each have eight CPUs but we never think
- 680
- 00:26:42,690 --> 00:26:46,558
- that meant the capabilities and
- 681
- 00:26:43,919 --> 00:26:48,299
- performance are equal it's the same for
- 682
- 00:26:46,558 --> 00:26:50,190
- see use for one thing they've been
- 683
- 00:26:48,298 --> 00:26:52,739
- getting much larger over time
- 684
- 00:26:50,190 --> 00:26:55,769
- adding new features means adding lots of
- 685
- 00:26:52,739 --> 00:26:59,730
- transistors in fact the transistor count
- 686
- 00:26:55,769 --> 00:27:01,259
- for a Playstation 5 CU is 62% larger
- 687
- 00:26:59,730 --> 00:27:05,009
- than the transistor count for a
- 688
- 00:27:01,259 --> 00:27:07,710
- playstation 4 CU second the playstation
- 689
- 00:27:05,009 --> 00:27:10,618
- 5 and GPU is backwards compatible with
- 690
- 00:27:07,710 --> 00:27:11,999
- playstation 4 what does that mean one
- 691
- 00:27:10,618 --> 00:27:14,038
- way you can achieve backwards
- 692
- 00:27:11,999 --> 00:27:16,319
- compatibility is to put the previous
- 693
- 00:27:14,038 --> 00:27:18,298
- consoles chipset in the new console like
- 694
- 00:27:16,319 --> 00:27:20,548
- we did with some PlayStation 3s but
- 695
- 00:27:18,298 --> 00:27:23,099
- that's of course extremely expensive a
- 696
- 00:27:20,548 --> 00:27:24,720
- better way is to incorporate any
- 697
- 00:27:23,099 --> 00:27:27,509
- differences in the previous consoles
- 698
- 00:27:24,720 --> 00:27:30,149
- logic into the new consoles custom chips
- 699
- 00:27:27,509 --> 00:27:32,249
- meaning that even as the technology
- 700
- 00:27:30,148 --> 00:27:34,349
- evolves the logic and feature set that
- 701
- 00:27:32,249 --> 00:27:36,808
- PlayStation 4 and PlayStation 4 Pro
- 702
- 00:27:34,349 --> 00:27:39,388
- titles rely on is still available in
- 703
- 00:27:36,808 --> 00:27:41,668
- backwards compatibility modes one
- 704
- 00:27:39,388 --> 00:27:43,288
- advantage of this strategy is that once
- 705
- 00:27:41,669 --> 00:27:46,528
- backwards compatibility is in the
- 706
- 00:27:43,288 --> 00:27:48,960
- console it's in if not as if a cost down
- 707
- 00:27:46,528 --> 00:27:51,839
- will remove backwards compatibility like
- 708
- 00:27:48,960 --> 00:27:54,028
- it did on PlayStation 3 achieving this
- 709
- 00:27:51,839 --> 00:27:56,668
- unification of functionality took years
- 710
- 00:27:54,028 --> 00:27:58,409
- of efforts by AMD as any roadmap
- 711
- 00:27:56,669 --> 00:28:02,309
- advancement creates a potential
- 712
- 00:27:58,409 --> 00:28:04,169
- divergence in logic running ps4 and PS 4
- 713
- 00:28:02,308 --> 00:28:06,628
- titles at boosted frequencies has also
- 714
- 00:28:04,169 --> 00:28:08,340
- added complexity the boost is truly
- 715
- 00:28:06,628 --> 00:28:10,709
- massive this time around and some game
- 716
- 00:28:08,339 --> 00:28:13,249
- code just can't handle it testing has to
- 717
- 00:28:10,710 --> 00:28:16,019
- be done on the title by title basis
- 718
- 00:28:13,249 --> 00:28:17,399
- results are excellent though we recently
- 719
- 00:28:16,019 --> 00:28:19,528
- took a look at the top hundred
- 720
- 00:28:17,398 --> 00:28:22,349
- PlayStation 4 titles as ranked by play
- 721
- 00:28:19,528 --> 00:28:24,179
- time and we're expecting almost all of
- 722
- 00:28:22,349 --> 00:28:27,898
- them to be playable at launch on
- 723
- 00:28:24,179 --> 00:28:30,119
- playstation 5 with regards to new
- 724
- 00:28:27,898 --> 00:28:32,219
- features as I said our strategy was to
- 725
- 00:28:30,118 --> 00:28:35,038
- try to break new ground but at the same
- 726
- 00:28:32,220 --> 00:28:38,399
- time not to require use of the new GPU
- 727
- 00:28:35,038 --> 00:28:40,259
- capabilities for more than a decade GPUs
- 728
- 00:28:38,398 --> 00:28:42,538
- have imposed a restriction on game
- 729
- 00:28:40,259 --> 00:28:43,980
- engines software handles vertex
- 730
- 00:28:42,538 --> 00:28:45,400
- processing but for the most part
- 731
- 00:28:43,980 --> 00:28:47,529
- dedicated hardware
- 732
- 00:28:45,400 --> 00:28:49,960
- responsible for the triangles and other
- 733
- 00:28:47,529 --> 00:28:52,660
- geometry that the vertices form that
- 734
- 00:28:49,960 --> 00:28:54,789
- means it's not possible to do even basic
- 735
- 00:28:52,660 --> 00:28:56,769
- optimizations such as aborting
- 736
- 00:28:54,789 --> 00:29:00,879
- processing of a vertex if all geometry
- 737
- 00:28:56,769 --> 00:29:03,369
- that uses it is off screen PlayStation 5
- 738
- 00:29:00,880 --> 00:29:04,870
- has a new unit called the geometry
- 739
- 00:29:03,369 --> 00:29:06,819
- engine which brings handling of
- 740
- 00:29:04,869 --> 00:29:09,399
- triangles and other primitives under
- 741
- 00:29:06,819 --> 00:29:11,079
- full programmatic control as a game
- 742
- 00:29:09,400 --> 00:29:13,600
- developer you're free to ignore its
- 743
- 00:29:11,079 --> 00:29:15,309
- existence and use the PlayStation 5 GPU
- 744
- 00:29:13,599 --> 00:29:18,549
- as if it were no more capable than the
- 745
- 00:29:15,309 --> 00:29:21,730
- ps4 GPU or you can use this new
- 746
- 00:29:18,549 --> 00:29:23,769
- intelligence in various ways simple
- 747
- 00:29:21,730 --> 00:29:25,599
- usage could be performance optimizations
- 748
- 00:29:23,769 --> 00:29:28,119
- such as removing back faced or
- 749
- 00:29:25,599 --> 00:29:30,099
- off-screen vertices and triangles more
- 750
- 00:29:28,119 --> 00:29:31,869
- complex usage involves something called
- 751
- 00:29:30,099 --> 00:29:34,480
- primitive shaders which allow the game
- 752
- 00:29:31,869 --> 00:29:36,609
- to synthesize geometry on-the-fly as
- 753
- 00:29:34,480 --> 00:29:39,370
- it's being rendered it's a brand new
- 754
- 00:29:36,609 --> 00:29:41,409
- capability using primitive shaders on
- 755
- 00:29:39,369 --> 00:29:43,989
- PlayStation 5 will allow for a broad
- 756
- 00:29:41,410 --> 00:29:46,420
- variety of techniques including smoothly
- 757
- 00:29:43,990 --> 00:29:48,400
- varying level of detail addition of
- 758
- 00:29:46,420 --> 00:29:50,529
- procedural detail to close up objects
- 759
- 00:29:48,400 --> 00:29:53,230
- and improvements to particle effects and
- 760
- 00:29:50,529 --> 00:29:55,809
- other visual special effects another
- 761
- 00:29:53,230 --> 00:29:58,539
- major new feature of our custom our DNA
- 762
- 00:29:55,809 --> 00:30:01,649
- 2 based GPU is ray tracing using the
- 763
- 00:29:58,539 --> 00:30:05,109
- same strategy as AMD's upcoming PC GPUs
- 764
- 00:30:01,650 --> 00:30:07,120
- the ciues contain a new specialized unit
- 765
- 00:30:05,109 --> 00:30:09,099
- called the intersection engine which can
- 766
- 00:30:07,119 --> 00:30:11,289
- calculate the intersection of rays with
- 767
- 00:30:09,099 --> 00:30:13,389
- boxes and triangles to use the
- 768
- 00:30:11,289 --> 00:30:15,670
- intersection engine first you build what
- 769
- 00:30:13,390 --> 00:30:18,100
- is called an acceleration structure its
- 770
- 00:30:15,670 --> 00:30:20,230
- data in RAM that contains all of your
- 771
- 00:30:18,099 --> 00:30:22,689
- geometry there's a specific set of
- 772
- 00:30:20,230 --> 00:30:25,750
- formats you can use their variations on
- 773
- 00:30:22,690 --> 00:30:28,240
- the same BVH concept then in your shader
- 774
- 00:30:25,750 --> 00:30:30,369
- program you use a new instruction that
- 775
- 00:30:28,240 --> 00:30:33,730
- asks the intersection engine to check
- 776
- 00:30:30,369 --> 00:30:35,589
- array against the BVH while the
- 777
- 00:30:33,730 --> 00:30:37,539
- intersection engine is processing the
- 778
- 00:30:35,589 --> 00:30:39,970
- requested ray triangle or ray box
- 779
- 00:30:37,539 --> 00:30:42,250
- intersections the shaders are free to do
- 780
- 00:30:39,970 --> 00:30:43,900
- other work having said that the ray
- 781
- 00:30:42,250 --> 00:30:46,569
- tracing instruction is pretty memory
- 782
- 00:30:43,900 --> 00:30:49,690
- intensive so it's a good mix with logic
- 783
- 00:30:46,569 --> 00:30:51,939
- heavy code there's of course no need to
- 784
- 00:30:49,690 --> 00:30:54,580
- use ray tracing ps4 graphics engines
- 785
- 00:30:51,940 --> 00:30:56,860
- will run just fine on PlayStation 5 but
- 786
- 00:30:54,579 --> 00:30:59,349
- it presents an opportunity for those
- 787
- 00:30:56,859 --> 00:31:01,418
- interested I'm thinking it'll
- 788
- 00:30:59,349 --> 00:31:03,308
- take less than a million raise a second
- 789
- 00:31:01,419 --> 00:31:05,169
- to have a big impact on audio that
- 790
- 00:31:03,308 --> 00:31:07,960
- should be enough for audio occlusion and
- 791
- 00:31:05,169 --> 00:31:10,120
- some reverb calculations with a bit more
- 792
- 00:31:07,960 --> 00:31:11,769
- of the GPU invested in ray-tracing it
- 793
- 00:31:10,119 --> 00:31:13,769
- should be possible to do some very nice
- 794
- 00:31:11,769 --> 00:31:16,660
- global illumination
- 795
- 00:31:13,769 --> 00:31:18,819
- having said that adding ray-traced
- 796
- 00:31:16,660 --> 00:31:20,590
- shadows and reflections to a traditional
- 797
- 00:31:18,819 --> 00:31:22,720
- graphics engine could easily take
- 798
- 00:31:20,589 --> 00:31:24,730
- hundreds of millions of rays a second
- 799
- 00:31:22,720 --> 00:31:27,579
- and full ray tracing could take billions
- 800
- 00:31:24,730 --> 00:31:28,900
- how far can we go I'm starting to get
- 801
- 00:31:27,579 --> 00:31:31,298
- quite bullish I've already seen a
- 802
- 00:31:28,900 --> 00:31:33,309
- PlayStation 5 title that's successfully
- 803
- 00:31:31,298 --> 00:31:36,308
- using ray tracing based reflections in
- 804
- 00:31:33,308 --> 00:31:39,220
- complex animated scenes with only modest
- 805
- 00:31:36,308 --> 00:31:42,548
- costs another set of issues for the GPU
- 806
- 00:31:39,220 --> 00:31:44,798
- involved size and frequency how big do
- 807
- 00:31:42,548 --> 00:31:47,168
- we make the GPU and what frequency do we
- 808
- 00:31:44,798 --> 00:31:48,700
- run it at this is a balancing act the
- 809
- 00:31:47,169 --> 00:31:50,950
- chip has a cost and there's a cost for
- 810
- 00:31:48,700 --> 00:31:53,919
- whatever we use to supply that chip with
- 811
- 00:31:50,950 --> 00:31:56,080
- power and to cool it in general I like
- 812
- 00:31:53,919 --> 00:32:00,309
- running the GPU at a higher frequency
- 813
- 00:31:56,079 --> 00:32:02,349
- let me show you why here's two possible
- 814
- 00:32:00,308 --> 00:32:04,928
- configurations for a GPU roughly of the
- 815
- 00:32:02,349 --> 00:32:06,369
- level of the PlayStation 4 Pro this is a
- 816
- 00:32:04,929 --> 00:32:09,038
- thought experiment don't take these
- 817
- 00:32:06,369 --> 00:32:11,168
- configurations too seriously if you just
- 818
- 00:32:09,038 --> 00:32:13,960
- calculate teraflops you get the same
- 819
- 00:32:11,169 --> 00:32:16,179
- number but actually the performance is
- 820
- 00:32:13,960 --> 00:32:17,700
- noticeably different because teraflops
- 821
- 00:32:16,179 --> 00:32:21,130
- is defined as the computational
- 822
- 00:32:17,700 --> 00:32:23,380
- capability of the vector ALU that's just
- 823
- 00:32:21,130 --> 00:32:25,809
- one part of the GPU there are a lot of
- 824
- 00:32:23,380 --> 00:32:28,000
- other units and those other units all
- 825
- 00:32:25,808 --> 00:32:30,908
- run faster when the GPU frequency is
- 826
- 00:32:28,000 --> 00:32:34,359
- higher at 33% higher frequency
- 827
- 00:32:30,909 --> 00:32:37,000
- rasterization goes 33% faster processing
- 828
- 00:32:34,359 --> 00:32:40,269
- the command buffer goes that much faster
- 829
- 00:32:37,000 --> 00:32:41,919
- the l2 and other caches have that much
- 830
- 00:32:40,269 --> 00:32:44,288
- higher bandwidth and so on
- 831
- 00:32:41,919 --> 00:32:46,870
- about the only downside is that system
- 832
- 00:32:44,288 --> 00:32:49,690
- memory is 33% further away in terms of
- 833
- 00:32:46,869 --> 00:32:51,788
- cycles but the large number of benefits
- 834
- 00:32:49,690 --> 00:32:54,610
- more than counterbalanced that as a
- 835
- 00:32:51,788 --> 00:32:58,419
- friend of mine says a rising tide lifts
- 836
- 00:32:54,609 --> 00:33:01,418
- all boats also it's easier to fully use
- 837
- 00:32:58,419 --> 00:33:04,299
- 36c use in parallel than it is to fully
- 838
- 00:33:01,419 --> 00:33:06,520
- use 48c use when triangles are small
- 839
- 00:33:04,298 --> 00:33:09,339
- it's much harder to fill although sea
- 840
- 00:33:06,519 --> 00:33:11,650
- use with useful work so there's a lot to
- 841
- 00:33:09,339 --> 00:33:12,799
- be said for faster assuming you can
- 842
- 00:33:11,650 --> 00:33:15,650
- handle the resulting
- 843
- 00:33:12,799 --> 00:33:18,019
- power and heat issues which frankly we
- 844
- 00:33:15,650 --> 00:33:19,700
- haven't always done the best Java
- 845
- 00:33:18,019 --> 00:33:22,279
- part of the reason for that is
- 846
- 00:33:19,700 --> 00:33:24,289
- historically our process for setting CPU
- 847
- 00:33:22,279 --> 00:33:26,029
- and GPU frequencies has relied on some
- 848
- 00:33:24,289 --> 00:33:28,069
- heavy duty guesswork with regards to how
- 849
- 00:33:26,029 --> 00:33:30,200
- much electrical power games will consume
- 850
- 00:33:28,069 --> 00:33:33,079
- and how much heat will be produced as a
- 851
- 00:33:30,200 --> 00:33:35,150
- result inside of the console power
- 852
- 00:33:33,079 --> 00:33:37,579
- consumption varies a lot from game to
- 853
- 00:33:35,150 --> 00:33:40,009
- game when I play god of war on my ps4
- 854
- 00:33:37,579 --> 00:33:42,919
- Pro I know the power consumption is high
- 855
- 00:33:40,009 --> 00:33:45,349
- just by the fan noise but power isn't
- 856
- 00:33:42,920 --> 00:33:46,880
- simply about engine quality it's about
- 857
- 00:33:45,349 --> 00:33:49,730
- the minutiae of what's being displayed
- 858
- 00:33:46,880 --> 00:33:51,890
- and how it's counterintuitive but
- 859
- 00:33:49,730 --> 00:33:53,509
- processing dense geometry typically
- 860
- 00:33:51,890 --> 00:33:56,390
- consumes less power than processing
- 861
- 00:33:53,509 --> 00:33:58,819
- simple geometry which is I suspect why
- 862
- 00:33:56,390 --> 00:34:01,910
- horizons map screen with its low
- 863
- 00:33:58,819 --> 00:34:05,629
- triangle count makes my ps4 pro heat up
- 864
- 00:34:01,910 --> 00:34:07,070
- so much our process on previous consoles
- 865
- 00:34:05,630 --> 00:34:09,289
- has been to try to guess what the
- 866
- 00:34:07,069 --> 00:34:11,569
- maximum power consumption during the
- 867
- 00:34:09,289 --> 00:34:14,210
- entire console lifetime might be which
- 868
- 00:34:11,570 --> 00:34:17,269
- is to say the worst case scene in the
- 869
- 00:34:14,210 --> 00:34:19,429
- worst case game and prepare a cooling
- 870
- 00:34:17,269 --> 00:34:22,969
- solution that we think will be quiet at
- 871
- 00:34:19,429 --> 00:34:25,340
- that power level if we get it right fan
- 872
- 00:34:22,969 --> 00:34:27,109
- noise is minimal if we get it wrong the
- 873
- 00:34:25,340 --> 00:34:28,880
- console will be quite loud for the
- 874
- 00:34:27,110 --> 00:34:30,289
- higher power games and there's even a
- 875
- 00:34:28,880 --> 00:34:33,880
- chance that it might overheat and shut
- 876
- 00:34:30,289 --> 00:34:36,168
- down if we miss estimate power too badly
- 877
- 00:34:33,880 --> 00:34:39,829
- PlayStation 5 is especially challenging
- 878
- 00:34:36,168 --> 00:34:41,889
- because the CPU supports 256 bit native
- 879
- 00:34:39,829 --> 00:34:44,389
- instructions that consume a lot of power
- 880
- 00:34:41,889 --> 00:34:47,539
- these are great here and there but
- 881
- 00:34:44,389 --> 00:34:50,599
- presumably only minimally used or are
- 882
- 00:34:47,539 --> 00:34:53,090
- they if we plan for major 256 bit
- 883
- 00:34:50,599 --> 00:34:55,489
- instruction usage we need to set the CPU
- 884
- 00:34:53,090 --> 00:34:57,410
- clock substantially lower or noticeably
- 885
- 00:34:55,489 --> 00:35:01,669
- increase the size of the power supply
- 886
- 00:34:57,409 --> 00:35:03,440
- and fan so after much discussion we
- 887
- 00:35:01,670 --> 00:35:06,800
- decided to go with a very different
- 888
- 00:35:03,440 --> 00:35:11,389
- direction on PlayStation 5 we built a
- 889
- 00:35:06,800 --> 00:35:14,120
- GPU with 36c use mind you our DNA to see
- 890
- 00:35:11,389 --> 00:35:15,739
- use our large each has 62% more
- 891
- 00:35:14,119 --> 00:35:18,469
- transistors than the CIE use we were
- 892
- 00:35:15,739 --> 00:35:21,559
- using on PlayStation 4 so if we compare
- 893
- 00:35:18,469 --> 00:35:24,409
- transistor counts 36 our DNA to see use
- 894
- 00:35:21,559 --> 00:35:26,329
- equates to roughly 58 PlayStation 4 C
- 895
- 00:35:24,409 --> 00:35:29,779
- use it is a fairly
- 896
- 00:35:26,329 --> 00:35:31,909
- sizeable GPU then we went with a
- 897
- 00:35:29,780 --> 00:35:33,890
- variable frequency strategy for
- 898
- 00:35:31,909 --> 00:35:36,799
- PlayStation 5 which is to say we
- 899
- 00:35:33,889 --> 00:35:39,679
- continuously run the GPU and CPU in
- 900
- 00:35:36,800 --> 00:35:41,840
- boost mode we supply a generous amount
- 901
- 00:35:39,679 --> 00:35:44,269
- of electrical power and then increase
- 902
- 00:35:41,840 --> 00:35:46,100
- the frequency of GPU and CPU until they
- 903
- 00:35:44,269 --> 00:35:48,679
- reach the capabilities of the system's
- 904
- 00:35:46,099 --> 00:35:50,719
- cooling solution it's a completely
- 905
- 00:35:48,679 --> 00:35:52,759
- different paradigm rather than running
- 906
- 00:35:50,719 --> 00:35:55,129
- at constant frequency and letting power
- 907
- 00:35:52,760 --> 00:35:57,170
- vary based on the workload we run at
- 908
- 00:35:55,130 --> 00:35:59,059
- essentially constant power and let the
- 909
- 00:35:57,170 --> 00:36:02,300
- frequency band vary based on the
- 910
- 00:35:59,059 --> 00:36:04,009
- workload we then tackled the engineering
- 911
- 00:36:02,300 --> 00:36:05,630
- challenge of a cost-effective and
- 912
- 00:36:04,010 --> 00:36:08,300
- high-performance cooling solution
- 913
- 00:36:05,630 --> 00:36:10,400
- designed for that specific power level
- 914
- 00:36:08,300 --> 00:36:11,810
- in some ways it becomes a simpler
- 915
- 00:36:10,400 --> 00:36:14,240
- problem because there are no more
- 916
- 00:36:11,809 --> 00:36:16,190
- unknowns there's no need to guess what
- 917
- 00:36:14,239 --> 00:36:18,979
- power consumption the worst case game
- 918
- 00:36:16,190 --> 00:36:21,019
- might have as for the details of the
- 919
- 00:36:18,980 --> 00:36:22,699
- cooling solution we're saving them for
- 920
- 00:36:21,019 --> 00:36:24,409
- our teardown I think you'll be quite
- 921
- 00:36:22,699 --> 00:36:28,609
- happy with what the engineering team
- 922
- 00:36:24,409 --> 00:36:31,579
- came up with so how fast can we run the
- 923
- 00:36:28,610 --> 00:36:33,200
- GPU and CPU with this strategy the
- 924
- 00:36:31,579 --> 00:36:35,210
- simplest approach would be to look at
- 925
- 00:36:33,199 --> 00:36:36,980
- the actual temperature of the silicon
- 926
- 00:36:35,210 --> 00:36:39,409
- die and throttle the frequency on that
- 927
- 00:36:36,980 --> 00:36:41,210
- basis but that won't work it fails to
- 928
- 00:36:39,409 --> 00:36:43,579
- create a consistent PlayStation 5
- 929
- 00:36:41,210 --> 00:36:45,740
- experience it wouldn't do to run a
- 930
- 00:36:43,579 --> 00:36:48,529
- console slower simply because it was in
- 931
- 00:36:45,739 --> 00:36:50,750
- a hot room so rather than look at the
- 932
- 00:36:48,530 --> 00:36:53,000
- actual temperature of the silicon die we
- 933
- 00:36:50,750 --> 00:36:54,980
- look at the activities that the GPU and
- 934
- 00:36:53,000 --> 00:36:56,989
- CPU are performing and set the
- 935
- 00:36:54,980 --> 00:36:59,380
- frequencies on that basis which makes
- 936
- 00:36:56,989 --> 00:37:02,269
- everything deterministic and repeatable
- 937
- 00:36:59,380 --> 00:37:04,369
- while we're at it we also use AMD's
- 938
- 00:37:02,269 --> 00:37:07,610
- smart shift technology and send any
- 939
- 00:37:04,369 --> 00:37:10,699
- unused power from the CPU to the GPU so
- 940
- 00:37:07,610 --> 00:37:13,370
- it can squeeze out a few more pixels the
- 941
- 00:37:10,699 --> 00:37:16,849
- benefits of this strategy are quite
- 942
- 00:37:13,369 --> 00:37:18,889
- large running a GPU at two gigahertz was
- 943
- 00:37:16,849 --> 00:37:21,380
- looking like an unreachable target with
- 944
- 00:37:18,889 --> 00:37:23,900
- the old fixed frequency strategy with
- 945
- 00:37:21,380 --> 00:37:26,510
- this new paradigm we're able to run way
- 946
- 00:37:23,900 --> 00:37:28,340
- over that in fact we have to cap the GPU
- 947
- 00:37:26,510 --> 00:37:30,230
- frequency at two point two three
- 948
- 00:37:28,340 --> 00:37:35,000
- gigahertz so that we can guarantee that
- 949
- 00:37:30,230 --> 00:37:37,190
- the on chip logic operates properly 36c
- 950
- 00:37:35,000 --> 00:37:38,889
- use at two point two three gigahertz is
- 951
- 00:37:37,190 --> 00:37:41,380
- ten point three teraflops
- 952
- 00:37:38,889 --> 00:37:44,108
- and we expect the GPU to spend most of
- 953
- 00:37:41,380 --> 00:37:45,450
- its time at or close to that frequency
- 954
- 00:37:44,108 --> 00:37:48,219
- and performance
- 955
- 00:37:45,449 --> 00:37:49,989
- similarly running the CPU at 3 gigahertz
- 956
- 00:37:48,219 --> 00:37:52,689
- was causing headaches with the old
- 957
- 00:37:49,989 --> 00:37:55,750
- strategy but now we can run it as high
- 958
- 00:37:52,690 --> 00:37:59,170
- as 3.5 gigahertz in fact it spends most
- 959
- 00:37:55,750 --> 00:38:00,909
- of its time at that frequency that
- 960
- 00:37:59,170 --> 00:38:03,430
- doesn't mean all games will be running
- 961
- 00:38:00,909 --> 00:38:06,308
- in 2.2 3 gigahertz and 3.5 gigahertz
- 962
- 00:38:03,429 --> 00:38:09,068
- when that worst case game arrives it
- 963
- 00:38:06,309 --> 00:38:11,650
- will run at a lower clock speed but not
- 964
- 00:38:09,068 --> 00:38:13,420
- too much lower to reduce power by 10% it
- 965
- 00:38:11,650 --> 00:38:15,250
- only takes a couple of percent reduction
- 966
- 00:38:13,420 --> 00:38:17,889
- in frequency so I'd expect any down
- 967
- 00:38:15,250 --> 00:38:19,539
- clocking to be pretty minor all things
- 968
- 00:38:17,889 --> 00:38:21,818
- considered the change to a variable
- 969
- 00:38:19,539 --> 00:38:24,579
- frequency approach will show significant
- 970
- 00:38:21,818 --> 00:38:26,048
- gains for PlayStation gamers the final
- 971
- 00:38:24,579 --> 00:38:28,720
- of our three principals was about
- 972
- 00:38:26,048 --> 00:38:30,969
- finding new dreams it's important for us
- 973
- 00:38:28,719 --> 00:38:33,818
- on the hardware team to find new ways to
- 974
- 00:38:30,969 --> 00:38:37,959
- expand or deepen gaming and that's what
- 975
- 00:38:33,818 --> 00:38:39,489
- led us to a focus on 3d audio as players
- 976
- 00:38:37,960 --> 00:38:41,318
- we experience the game through the
- 977
- 00:38:39,489 --> 00:38:43,000
- visuals through audio and through the
- 978
- 00:38:41,318 --> 00:38:46,028
- feedback we received from the controller
- 979
- 00:38:43,000 --> 00:38:48,099
- such as Rumble or haptics personally I
- 980
- 00:38:46,028 --> 00:38:50,858
- feel a game is just dead without audio
- 981
- 00:38:48,099 --> 00:38:54,160
- visuals are of course important but the
- 982
- 00:38:50,858 --> 00:38:55,869
- impact of audio is huge as well at the
- 983
- 00:38:54,159 --> 00:38:57,578
- same time the audio team on a game
- 984
- 00:38:55,869 --> 00:38:59,890
- project has to do a lot with a little
- 985
- 00:38:57,579 --> 00:39:02,200
- for example on PlayStation 4 there's
- 986
- 00:38:59,889 --> 00:39:04,538
- fierce competition for the Jaguar CPU
- 987
- 00:39:02,199 --> 00:39:07,358
- cores audio typically ends up getting
- 988
- 00:39:04,539 --> 00:39:09,220
- just a fraction of a core that's not
- 989
- 00:39:07,358 --> 00:39:11,170
- much of a computational resource
- 990
- 00:39:09,219 --> 00:39:13,750
- particularly when you consider that the
- 991
- 00:39:11,170 --> 00:39:16,000
- visuals run at 30 or 60 frames a second
- 992
- 00:39:13,750 --> 00:39:20,469
- but audio processing needs to happen at
- 993
- 00:39:16,000 --> 00:39:22,358
- almost 200 times a second so it's been
- 994
- 00:39:20,469 --> 00:39:23,768
- tough going making forward progress on
- 995
- 00:39:22,358 --> 00:39:26,170
- audio with Playstation 4
- 996
- 00:39:23,768 --> 00:39:29,169
- particularly when PlayStation 3 was such
- 997
- 00:39:26,170 --> 00:39:31,210
- a beast when it came to audio the SPU's
- 998
- 00:39:29,170 --> 00:39:33,430
- and cell were almost a perfect device
- 999
- 00:39:31,210 --> 00:39:35,318
- for audio rendering simple pipeline
- 1000
- 00:39:33,429 --> 00:39:37,838
- algorithms could really take advantage
- 1001
- 00:39:35,318 --> 00:39:39,818
- of asynchronous DMA and frequently
- 1002
- 00:39:37,838 --> 00:39:41,588
- reached a hundred percent utilization of
- 1003
- 00:39:39,818 --> 00:39:43,420
- the floating-point unit there's
- 1004
- 00:39:41,588 --> 00:39:46,838
- unfortunately nothing comparable on
- 1005
- 00:39:43,420 --> 00:39:49,119
- PlayStation 4 probably the most dramatic
- 1006
- 00:39:46,838 --> 00:39:51,788
- progress in the PlayStation 4 generation
- 1007
- 00:39:49,119 --> 00:39:52,559
- has been with Virtual Reality the PSB
- 1008
- 00:39:51,789 --> 00:39:54,990
- are hard
- 1009
- 00:39:52,559 --> 00:39:57,539
- has its own audio unit it supports about
- 1010
- 00:39:54,989 --> 00:40:00,029
- fifty pretty decent 3d sound sources and
- 1011
- 00:39:57,539 --> 00:40:02,070
- this provided a hint as to where we
- 1012
- 00:40:00,030 --> 00:40:05,400
- could go with audio as well as some
- 1013
- 00:40:02,070 --> 00:40:08,280
- valuable experience not to oversimplify
- 1014
- 00:40:05,400 --> 00:40:11,309
- but here were our goals for audio on
- 1015
- 00:40:08,280 --> 00:40:14,220
- PlayStation 5 the first goal was great
- 1016
- 00:40:11,309 --> 00:40:16,529
- audio for everyone not just VR users or
- 1017
- 00:40:14,219 --> 00:40:18,000
- sound bar owners or headphone users that
- 1018
- 00:40:16,530 --> 00:40:18,570
- meant audio had to be part of the
- 1019
- 00:40:18,000 --> 00:40:21,599
- console
- 1020
- 00:40:18,570 --> 00:40:23,490
- it couldn't be a peripheral the second
- 1021
- 00:40:21,599 --> 00:40:25,440
- goal was to support hundreds of sound
- 1022
- 00:40:23,489 --> 00:40:27,449
- sources we didn't want developers to
- 1023
- 00:40:25,440 --> 00:40:29,220
- have to pick and choose what sounds
- 1024
- 00:40:27,449 --> 00:40:31,529
- would get 3d effects and which wouldn't
- 1025
- 00:40:29,219 --> 00:40:34,709
- we wanted every sound in the game to
- 1026
- 00:40:31,530 --> 00:40:37,050
- have dimensionality and finally we
- 1027
- 00:40:34,710 --> 00:40:40,650
- wanted to really take on the challenges
- 1028
- 00:40:37,050 --> 00:40:42,930
- of presence and locality now when we say
- 1029
- 00:40:40,650 --> 00:40:45,660
- presence we mean the feeling that you're
- 1030
- 00:40:42,929 --> 00:40:47,849
- actually there you've entered the matrix
- 1031
- 00:40:45,659 --> 00:40:49,799
- it's not of course something we thought
- 1032
- 00:40:47,849 --> 00:40:51,750
- we could perfectly achieve but the idea
- 1033
- 00:40:49,800 --> 00:40:54,750
- was that if we stopped using just a rain
- 1034
- 00:40:51,750 --> 00:40:56,579
- sound and instead use lots of 3d audio
- 1035
- 00:40:54,750 --> 00:40:58,530
- sources for raindrops hitting the ground
- 1036
- 00:40:56,579 --> 00:41:00,809
- at all sorts of locations around you
- 1037
- 00:40:58,530 --> 00:41:02,430
- then at some point your brain would take
- 1038
- 00:41:00,809 --> 00:41:05,579
- a leap and you'd begin to have this
- 1039
- 00:41:02,429 --> 00:41:07,259
- feeling this feeling of real presence
- 1040
- 00:41:05,579 --> 00:41:09,869
- inside the virtual world of the game
- 1041
- 00:41:07,260 --> 00:41:12,570
- this has the capacity to affect your
- 1042
- 00:41:09,869 --> 00:41:16,349
- appreciation of the game just like music
- 1043
- 00:41:12,570 --> 00:41:18,300
- in a game does the concept of locality
- 1044
- 00:41:16,349 --> 00:41:20,400
- is simpler it's just your sense of where
- 1045
- 00:41:18,300 --> 00:41:22,710
- the audio is coming from to the right of
- 1046
- 00:41:20,400 --> 00:41:24,809
- you behind you above you this can
- 1047
- 00:41:22,710 --> 00:41:27,619
- immerse you further in the game and it
- 1048
- 00:41:24,809 --> 00:41:30,989
- can also directly enhance the gameplay
- 1049
- 00:41:27,619 --> 00:41:33,690
- to use dead space as an example I know
- 1050
- 00:41:30,989 --> 00:41:37,109
- old school you're fighting enemies in
- 1051
- 00:41:33,690 --> 00:41:38,970
- fairly dark spooky locations back in the
- 1052
- 00:41:37,110 --> 00:41:40,500
- day if you played the game using the TV
- 1053
- 00:41:38,969 --> 00:41:42,539
- speakers you could tell that there was
- 1054
- 00:41:40,500 --> 00:41:44,699
- one last enemy growling and hunting you
- 1055
- 00:41:42,539 --> 00:41:47,550
- down but it was difficult to tell quite
- 1056
- 00:41:44,699 --> 00:41:49,379
- where that enemy was with headphones you
- 1057
- 00:41:47,550 --> 00:41:51,210
- can tell that the enemy was somewhere on
- 1058
- 00:41:49,380 --> 00:41:52,710
- the right which lets you deduce if you
- 1059
- 00:41:51,210 --> 00:41:55,769
- couldn't see it that it must be
- 1060
- 00:41:52,710 --> 00:41:58,019
- somewhere behind and to your right but
- 1061
- 00:41:55,769 --> 00:42:00,179
- with 3d audio with good locality the
- 1062
- 00:41:58,019 --> 00:42:03,980
- idea is you know the enemy is precisely
- 1063
- 00:42:00,179 --> 00:42:06,839
- there and you turn and you take it out
- 1064
- 00:42:03,980 --> 00:42:09,929
- so how do we know where a sound is
- 1065
- 00:42:06,840 --> 00:42:12,120
- coming from in the first place well all
- 1066
- 00:42:09,929 --> 00:42:14,699
- those bumps and folds in the ear have a
- 1067
- 00:42:12,119 --> 00:42:16,109
- meaning evolutionarily speaking based on
- 1068
- 00:42:14,699 --> 00:42:18,299
- what direction the sound is coming from
- 1069
- 00:42:16,110 --> 00:42:19,860
- sound waves bounce around inside the ear
- 1070
- 00:42:18,300 --> 00:42:21,720
- there's some constructive and
- 1071
- 00:42:19,860 --> 00:42:24,599
- destructive interference and the result
- 1072
- 00:42:21,719 --> 00:42:26,669
- is a change in volume the phase of the
- 1073
- 00:42:24,599 --> 00:42:28,559
- sound also shifts depending on what path
- 1074
- 00:42:26,670 --> 00:42:31,500
- the sound wave took to reach the ear
- 1075
- 00:42:28,559 --> 00:42:33,269
- canal these volume changes and phase
- 1076
- 00:42:31,500 --> 00:42:35,940
- shifts are different for each direction
- 1077
- 00:42:33,269 --> 00:42:38,670
- and also vary depending on the frequency
- 1078
- 00:42:35,940 --> 00:42:40,740
- of the sound head size and head shape
- 1079
- 00:42:38,670 --> 00:42:43,289
- also impact the sound in a similar
- 1080
- 00:42:40,739 --> 00:42:45,719
- fashion the way that the sound changes
- 1081
- 00:42:43,289 --> 00:42:47,279
- based on direction and frequency can be
- 1082
- 00:42:45,719 --> 00:42:50,129
- encoded in a table called the head
- 1083
- 00:42:47,280 --> 00:42:53,010
- related transfer function or HR TF
- 1084
- 00:42:50,130 --> 00:42:55,680
- here's part of one the vertical axis is
- 1085
- 00:42:53,010 --> 00:42:57,750
- the frequency the horizontal axis is the
- 1086
- 00:42:55,679 --> 00:43:00,149
- direction front back left right and the
- 1087
- 00:42:57,750 --> 00:43:03,539
- color gives the degree of attenuation of
- 1088
- 00:43:00,150 --> 00:43:05,760
- the sound at that frequency the HRT F is
- 1089
- 00:43:03,539 --> 00:43:07,980
- as unique to an individual as a
- 1090
- 00:43:05,760 --> 00:43:10,920
- fingerprint is in fact you're looking at
- 1091
- 00:43:07,980 --> 00:43:13,199
- mine right now here is how we measure in
- 1092
- 00:43:10,920 --> 00:43:15,809
- h RTF we've taken hundreds of people
- 1093
- 00:43:13,199 --> 00:43:17,969
- through this process we put a microphone
- 1094
- 00:43:15,809 --> 00:43:21,269
- in the subjects left and right ear
- 1095
- 00:43:17,969 --> 00:43:24,389
- canals and then sit the subject down in
- 1096
- 00:43:21,269 --> 00:43:26,639
- the middle of an array of 22 speakers we
- 1097
- 00:43:24,389 --> 00:43:29,400
- then play an audio sweep from each
- 1098
- 00:43:26,639 --> 00:43:31,139
- speaker as we rotate the subject in the
- 1099
- 00:43:29,400 --> 00:43:34,019
- course of ten or twenty minutes we're
- 1100
- 00:43:31,139 --> 00:43:37,049
- able to sample the H RTF at over 1,000
- 1101
- 00:43:34,019 --> 00:43:39,480
- locations using an H RTF when rendering
- 1102
- 00:43:37,050 --> 00:43:42,330
- audio creates unparalleled quality but
- 1103
- 00:43:39,480 --> 00:43:44,340
- it's computationally expensive the
- 1104
- 00:43:42,329 --> 00:43:46,409
- simplest way to use an H RTF is to
- 1105
- 00:43:44,340 --> 00:43:47,700
- process a sound source to make it appear
- 1106
- 00:43:46,409 --> 00:43:49,909
- as if it's coming from one of those
- 1107
- 00:43:47,699 --> 00:43:51,989
- thousand locations we sample
- 1108
- 00:43:49,909 --> 00:43:53,699
- unfortunately the processing has to be
- 1109
- 00:43:51,989 --> 00:43:55,709
- done in frequency domain rather than
- 1110
- 00:43:53,699 --> 00:43:57,359
- time domain so there's multiple fast
- 1111
- 00:43:55,710 --> 00:43:59,670
- Fourier transforms needed for every
- 1112
- 00:43:57,360 --> 00:44:03,210
- sound source for every audio tech that's
- 1113
- 00:43:59,670 --> 00:44:04,950
- a lot of multiplies this computational
- 1114
- 00:44:03,210 --> 00:44:06,960
- complexity was the determining factor
- 1115
- 00:44:04,949 --> 00:44:08,969
- for our strategy Ament we had to bite
- 1116
- 00:44:06,960 --> 00:44:11,820
- the bullet and design and build a custom
- 1117
- 00:44:08,969 --> 00:44:13,529
- hardware unit for 3d audio collectively
- 1118
- 00:44:11,820 --> 00:44:16,230
- we're referring to the hardware unit and
- 1119
- 00:44:13,530 --> 00:44:20,220
- the proprietary algorithms we run on it
- 1120
- 00:44:16,230 --> 00:44:22,170
- tempest 3d audio Tech the meaning of 3d
- 1121
- 00:44:20,219 --> 00:44:23,009
- audio and technology should be pretty
- 1122
- 00:44:22,170 --> 00:44:25,860
- obvious here
- 1123
- 00:44:23,010 --> 00:44:28,020
- as for tempest I feel it really reflects
- 1124
- 00:44:25,860 --> 00:44:30,599
- our goals with audio it suggests a
- 1125
- 00:44:28,019 --> 00:44:32,849
- certain intensity of experience and also
- 1126
- 00:44:30,599 --> 00:44:34,589
- hints at your presence within it we're
- 1127
- 00:44:32,849 --> 00:44:37,319
- calling the hardware unit that we built
- 1128
- 00:44:34,590 --> 00:44:40,079
- the tempest engine it's based on AMD's
- 1129
- 00:44:37,320 --> 00:44:42,510
- GPU technology we modified a compute
- 1130
- 00:44:40,079 --> 00:44:44,789
- unit in such a way as to make it very
- 1131
- 00:44:42,510 --> 00:44:46,320
- close to the SPU is in PlayStation 3
- 1132
- 00:44:44,789 --> 00:44:49,440
- remember when I said that they were
- 1133
- 00:44:46,320 --> 00:44:52,590
- ideal for audio so the tempest engine
- 1134
- 00:44:49,440 --> 00:44:56,490
- has no caches just like an SPU all data
- 1135
- 00:44:52,590 --> 00:44:58,680
- access is via DMA just like an SPU our
- 1136
- 00:44:56,489 --> 00:45:01,079
- target was that it would have more power
- 1137
- 00:44:58,679 --> 00:45:03,449
- than a CPU thanks to the parallelism
- 1138
- 00:45:01,079 --> 00:45:05,639
- that a GPU can achieve and then it would
- 1139
- 00:45:03,449 --> 00:45:08,309
- be more efficient than our GPU thanks to
- 1140
- 00:45:05,639 --> 00:45:10,799
- the SPU like architecture the goal being
- 1141
- 00:45:08,309 --> 00:45:15,029
- to make possible near 100% utilization
- 1142
- 00:45:10,800 --> 00:45:17,730
- of the C use vector units where we ended
- 1143
- 00:45:15,030 --> 00:45:20,220
- up is a unit with roughly the same sim D
- 1144
- 00:45:17,730 --> 00:45:22,889
- power and bandwidth as all eight Jaguar
- 1145
- 00:45:20,219 --> 00:45:24,750
- cores in the PlayStation 4 combined if
- 1146
- 00:45:22,889 --> 00:45:27,049
- we were to use the same algorithms as
- 1147
- 00:45:24,750 --> 00:45:30,030
- psvr that's enough for something like
- 1148
- 00:45:27,050 --> 00:45:32,010
- 5,000 sound sources but of course we
- 1149
- 00:45:30,030 --> 00:45:34,260
- want to use more complex algorithms and
- 1150
- 00:45:32,010 --> 00:45:37,650
- we don't need anything like that number
- 1151
- 00:45:34,260 --> 00:45:40,200
- of sounds it would have been wonderful
- 1152
- 00:45:37,650 --> 00:45:42,360
- if a simpler strategy such as using
- 1153
- 00:45:40,199 --> 00:45:44,129
- Dolby Atmos peripherals could have
- 1154
- 00:45:42,360 --> 00:45:46,170
- achieved our goals but we wanted 3d
- 1155
- 00:45:44,130 --> 00:45:49,170
- audio for all not just those with
- 1156
- 00:45:46,170 --> 00:45:50,849
- licensed sound bars or the like also we
- 1157
- 00:45:49,170 --> 00:45:52,800
- wanted many hundreds of sound sources
- 1158
- 00:45:50,849 --> 00:45:55,079
- not just the 32 that at most supports
- 1159
- 00:45:52,800 --> 00:45:57,180
- and finally we wanted to be able to
- 1160
- 00:45:55,079 --> 00:45:59,039
- throw an overwhelming amount of
- 1161
- 00:45:57,179 --> 00:46:00,899
- processing power at the problem and it
- 1162
- 00:45:59,039 --> 00:46:03,869
- wasn't clear what any peripheral might
- 1163
- 00:46:00,900 --> 00:46:04,710
- have inside of it in fact with the
- 1164
- 00:46:03,869 --> 00:46:06,630
- tempest engine
- 1165
- 00:46:04,710 --> 00:46:08,940
- we've even got enough power that we can
- 1166
- 00:46:06,630 --> 00:46:10,490
- allocate some to the games to the extent
- 1167
- 00:46:08,940 --> 00:46:13,110
- that games want to make use of
- 1168
- 00:46:10,489 --> 00:46:14,429
- convolution reverb and other algorithms
- 1169
- 00:46:13,110 --> 00:46:17,370
- that are either computationally
- 1170
- 00:46:14,429 --> 00:46:19,679
- expensive or need high bandwidth but the
- 1171
- 00:46:17,369 --> 00:46:24,539
- primary purpose of the tempest engine
- 1172
- 00:46:19,679 --> 00:46:27,089
- remains 3d audio now 3d audio is a major
- 1173
- 00:46:24,539 --> 00:46:28,670
- academic research topic it's safe to say
- 1174
- 00:46:27,090 --> 00:46:30,440
- that no one in the world
- 1175
- 00:46:28,670 --> 00:46:32,480
- all of the answers and the set of
- 1176
- 00:46:30,440 --> 00:46:34,400
- algorithms that has to be invented tuned
- 1177
- 00:46:32,480 --> 00:46:38,780
- or implemented to realize our vision for
- 1178
- 00:46:34,400 --> 00:46:42,108
- 3d audio is immense for example use of
- 1179
- 00:46:38,780 --> 00:46:43,910
- HR TFS in games is quite complex before
- 1180
- 00:46:42,108 --> 00:46:46,519
- I talked about making a sound source
- 1181
- 00:46:43,909 --> 00:46:48,889
- appear as if it's coming from one of
- 1182
- 00:46:46,519 --> 00:46:52,309
- those thousand HR TF sample locations
- 1183
- 00:46:48,889 --> 00:46:54,650
- but for high quality 3d game audio we
- 1184
- 00:46:52,309 --> 00:46:56,450
- have to handle other possibilities the
- 1185
- 00:46:54,650 --> 00:46:58,460
- sound source might not be at one of the
- 1186
- 00:46:56,449 --> 00:47:01,039
- thousand HR TF sample locations so we
- 1187
- 00:46:58,460 --> 00:47:02,990
- have to blend the HR TF data from the
- 1188
- 00:47:01,039 --> 00:47:05,150
- closest locations that we have sampled
- 1189
- 00:47:02,989 --> 00:47:07,098
- the sound source might be moving which
- 1190
- 00:47:05,150 --> 00:47:09,139
- needs very special handling as that
- 1191
- 00:47:07,099 --> 00:47:11,510
- blend keeps changing and that can cause
- 1192
- 00:47:09,139 --> 00:47:14,389
- phase artifacts in the resulting audio
- 1193
- 00:47:11,510 --> 00:47:16,069
- or the sound source might have a size to
- 1194
- 00:47:14,389 --> 00:47:18,618
- it meaning it should feel as if it's
- 1195
- 00:47:16,068 --> 00:47:22,159
- coming from an area rather than a single
- 1196
- 00:47:18,619 --> 00:47:24,440
- point there's also whole categories of
- 1197
- 00:47:22,159 --> 00:47:26,779
- approaches to be handled 3d audio can be
- 1198
- 00:47:24,440 --> 00:47:29,510
- implemented using individual processing
- 1199
- 00:47:26,780 --> 00:47:31,670
- of 3d sound sources but alternatively
- 1200
- 00:47:29,510 --> 00:47:33,890
- ambisonics can be used for 3d audio
- 1201
- 00:47:31,670 --> 00:47:36,170
- ambisonics speak somewhat like the
- 1202
- 00:47:33,889 --> 00:47:38,420
- spherical harmonics used in computer
- 1203
- 00:47:36,170 --> 00:47:40,548
- graphics and finally there's audio
- 1204
- 00:47:38,420 --> 00:47:42,619
- devices the player might be using
- 1205
- 00:47:40,548 --> 00:47:44,358
- headphones or TV speakers or have a
- 1206
- 00:47:42,619 --> 00:47:46,490
- higher end surround sound set up with
- 1207
- 00:47:44,358 --> 00:47:49,338
- six or more speakers all of which need
- 1208
- 00:47:46,489 --> 00:47:51,259
- different approaches that's a lot of
- 1209
- 00:47:49,338 --> 00:47:53,269
- variations it's nice to have the
- 1210
- 00:47:51,260 --> 00:47:55,460
- computational resources of the tempest
- 1211
- 00:47:53,269 --> 00:47:57,440
- engine but it's clear that achieving our
- 1212
- 00:47:55,460 --> 00:48:00,220
- ultimate goals with 3d audio is going to
- 1213
- 00:47:57,440 --> 00:48:02,389
- be a multi-year step-by-step process
- 1214
- 00:48:00,219 --> 00:48:04,519
- having said that headphone audio
- 1215
- 00:48:02,389 --> 00:48:06,769
- implementation is largely complete at
- 1216
- 00:48:04,519 --> 00:48:08,420
- this time it was a natural place for us
- 1217
- 00:48:06,769 --> 00:48:10,219
- to start with headphones we control
- 1218
- 00:48:08,420 --> 00:48:12,260
- exactly what each ear hears and
- 1219
- 00:48:10,219 --> 00:48:13,699
- therefore the algorithmic development
- 1220
- 00:48:12,260 --> 00:48:16,849
- and implementation are more
- 1221
- 00:48:13,699 --> 00:48:18,679
- straightforward for TV speakers and
- 1222
- 00:48:16,849 --> 00:48:21,230
- stereo speakers were in the process of
- 1223
- 00:48:18,679 --> 00:48:22,969
- implementing virtual surround sound the
- 1224
- 00:48:21,230 --> 00:48:25,250
- idea being that if you're sitting in a
- 1225
- 00:48:22,969 --> 00:48:26,899
- sweet spot in front of the TV then the
- 1226
- 00:48:25,250 --> 00:48:28,880
- sound can be made to feel as if it's
- 1227
- 00:48:26,900 --> 00:48:29,650
- coming from any direction even behind
- 1228
- 00:48:28,880 --> 00:48:32,000
- you
- 1229
- 00:48:29,650 --> 00:48:34,130
- virtual surround sound has a lot in
- 1230
- 00:48:32,000 --> 00:48:37,130
- common with 3d audio on headphones but
- 1231
- 00:48:34,130 --> 00:48:38,630
- it's more complex because the left ear
- 1232
- 00:48:37,130 --> 00:48:40,880
- can hear the right speaker and
- 1233
- 00:48:38,630 --> 00:48:42,619
- vice-versa we have a basic
- 1234
- 00:48:40,880 --> 00:48:44,150
- implementation of virtual surround
- 1235
- 00:48:42,619 --> 00:48:46,160
- up and running we're now looking at
- 1236
- 00:48:44,150 --> 00:48:48,588
- increasing the size of that sweet spot
- 1237
- 00:48:46,159 --> 00:48:51,259
- which is to say making the area you need
- 1238
- 00:48:48,588 --> 00:48:53,119
- to be in to feel the 3d effect larger
- 1239
- 00:48:51,259 --> 00:48:56,358
- and we're also working to boost the
- 1240
- 00:48:53,119 --> 00:48:58,309
- sense of locality headphone audio is the
- 1241
- 00:48:56,358 --> 00:49:00,139
- current gold standard for 3d audio on
- 1242
- 00:48:58,309 --> 00:49:01,910
- playstation 5 but we're going to see
- 1243
- 00:49:00,139 --> 00:49:04,608
- what we can do to bring virtual surround
- 1244
- 00:49:01,909 --> 00:49:06,440
- sound to a similar level after which
- 1245
- 00:49:04,608 --> 00:49:08,150
- we'll start in on setups with more
- 1246
- 00:49:06,440 --> 00:49:10,729
- speakers such as 6 channel surround
- 1247
- 00:49:08,150 --> 00:49:12,139
- sound it's now to the point where some
- 1248
- 00:49:10,728 --> 00:49:13,998
- of the playstation 5 games in
- 1249
- 00:49:12,139 --> 00:49:16,308
- development are extensively using these
- 1250
- 00:49:13,998 --> 00:49:17,718
- systems one of the game demos allows you
- 1251
- 00:49:16,309 --> 00:49:20,690
- to toggle between conventional
- 1252
- 00:49:17,719 --> 00:49:23,539
- PlayStation 4 style stereo audio and our
- 1253
- 00:49:20,690 --> 00:49:25,309
- new 3d audio I listened with just an
- 1254
- 00:49:23,539 --> 00:49:27,710
- ordinary pair of over the Year
- 1255
- 00:49:25,309 --> 00:49:30,289
- headphones and wow I could feel a
- 1256
- 00:49:27,710 --> 00:49:32,210
- difference 3d audio has that dimensional
- 1257
- 00:49:30,289 --> 00:49:35,329
- feel to it conventional stereo audio
- 1258
- 00:49:32,210 --> 00:49:38,749
- feels smashed flat by comparison the
- 1259
- 00:49:35,329 --> 00:49:40,910
- improvement is obvious so a big
- 1260
- 00:49:38,748 --> 00:49:43,308
- advancement but have I entered the
- 1261
- 00:49:40,909 --> 00:49:45,139
- matrix does my brain believe I'm really
- 1262
- 00:49:43,309 --> 00:49:47,778
- there like I was talking about earlier
- 1263
- 00:49:45,139 --> 00:49:50,690
- when I explained our target of presence
- 1264
- 00:49:47,778 --> 00:49:52,489
- well the answer is no but you've
- 1265
- 00:49:50,690 --> 00:49:55,548
- probably caught on to what's missing
- 1266
- 00:49:52,489 --> 00:49:58,880
- here namely whose HRT F was being used
- 1267
- 00:49:55,548 --> 00:50:01,159
- it wasn't mine it was the default HRT F
- 1268
- 00:49:58,880 --> 00:50:02,539
- the audio team analyzed the hundreds
- 1269
- 00:50:01,159 --> 00:50:04,248
- that they measured and chose the one
- 1270
- 00:50:02,539 --> 00:50:06,920
- they felt with the closest fit to the
- 1271
- 00:50:04,248 --> 00:50:09,439
- total game playing audience this shows a
- 1272
- 00:50:06,920 --> 00:50:11,838
- piece of the default HRT F on the left
- 1273
- 00:50:09,440 --> 00:50:13,338
- and my HRT F on the right you can see
- 1274
- 00:50:11,838 --> 00:50:16,239
- that the general features are much the
- 1275
- 00:50:13,338 --> 00:50:19,369
- same but the details are quite different
- 1276
- 00:50:16,239 --> 00:50:21,739
- with the default HRT F as I said the 3d
- 1277
- 00:50:19,369 --> 00:50:24,619
- audio sounds pretty great when I use my
- 1278
- 00:50:21,739 --> 00:50:27,289
- HRT F though the audio reaches a higher
- 1279
- 00:50:24,619 --> 00:50:30,160
- level of realism which is to say that
- 1280
- 00:50:27,289 --> 00:50:32,690
- when using headphones and my HRT F I
- 1281
- 00:50:30,159 --> 00:50:34,909
- occasionally get fooled and even think a
- 1282
- 00:50:32,690 --> 00:50:38,019
- sound is coming from the real world when
- 1283
- 00:50:34,909 --> 00:50:40,159
- it's actually coming from the game a
- 1284
- 00:50:38,018 --> 00:50:42,498
- corollary to this is that there are a
- 1285
- 00:50:40,159 --> 00:50:45,170
- few people whose HRT FS are sufficiently
- 1286
- 00:50:42,498 --> 00:50:47,209
- far from the default HRT F that's the
- 1287
- 00:50:45,170 --> 00:50:49,909
- red dot here that they can toggle
- 1288
- 00:50:47,210 --> 00:50:52,849
- between ps4 style and PS 5 style audio
- 1289
- 00:50:49,909 --> 00:50:55,518
- and not sense much difference I've had a
- 1290
- 00:50:52,849 --> 00:50:56,450
- few people describe the playstation 5 3d
- 1291
- 00:50:55,518 --> 00:50:58,719
- audio is sounding
- 1292
- 00:50:56,449 --> 00:51:00,889
- like a bit better stereo audio
- 1293
- 00:50:58,719 --> 00:51:04,789
- presumably they're the ones at the very
- 1294
- 00:51:00,889 --> 00:51:07,368
- edges of this diagram which means what
- 1295
- 00:51:04,789 --> 00:51:08,989
- HRT F you're using is key I'd like
- 1296
- 00:51:07,369 --> 00:51:11,150
- everyone to be able to experience what
- 1297
- 00:51:08,989 --> 00:51:13,549
- I'm experiencing but obviously it's not
- 1298
- 00:51:11,150 --> 00:51:16,369
- possible to measure the HRT F of every
- 1299
- 00:51:13,550 --> 00:51:18,740
- PlayStation user that means HRT F
- 1300
- 00:51:16,369 --> 00:51:21,170
- selection and synthesis are going to be
- 1301
- 00:51:18,739 --> 00:51:24,139
- big topics going forward as the tempest
- 1302
- 00:51:21,170 --> 00:51:26,150
- technology matures at PlayStation 5
- 1303
- 00:51:24,139 --> 00:51:28,730
- launch will be offering a choice of five
- 1304
- 00:51:26,150 --> 00:51:29,869
- HRT FS there's a simple test where you
- 1305
- 00:51:28,730 --> 00:51:32,179
- pick the one that gives you the best
- 1306
- 00:51:29,869 --> 00:51:34,430
- locality that's just the first step
- 1307
- 00:51:32,179 --> 00:51:37,129
- though this is an open-ended research
- 1308
- 00:51:34,429 --> 00:51:39,139
- topic maybe you'll be sending us a photo
- 1309
- 00:51:37,130 --> 00:51:41,630
- of your ear and we'll choose a neural
- 1310
- 00:51:39,139 --> 00:51:43,670
- network to pick the closest HRT F in our
- 1311
- 00:51:41,630 --> 00:51:45,950
- library maybe you'll be sending us a
- 1312
- 00:51:43,670 --> 00:51:47,690
- video of your ears and your head and
- 1313
- 00:51:45,949 --> 00:51:50,480
- we'll make a 3d model of them and
- 1314
- 00:51:47,690 --> 00:51:53,179
- synthesize the HRT F maybe you'll play
- 1315
- 00:51:50,480 --> 00:51:55,639
- an audio game to tune your HRT F will be
- 1316
- 00:51:53,179 --> 00:51:57,529
- subtly changing it as you play and home
- 1317
- 00:51:55,639 --> 00:51:59,509
- in on the HRT F that gives you the
- 1318
- 00:51:57,530 --> 00:52:02,900
- highest score meaning that it matches
- 1319
- 00:51:59,510 --> 00:52:04,579
- you the best this is a journey we'll all
- 1320
- 00:52:02,900 --> 00:52:04,940
- be taking together over the next few
- 1321
- 00:52:04,579 --> 00:52:06,950
- years
- 1322
- 00:52:04,940 --> 00:52:09,260
- ultimately we're committing to enabling
- 1323
- 00:52:06,949 --> 00:52:13,549
- everyone to experience that next level
- 1324
- 00:52:09,260 --> 00:52:15,230
- of realism hopefully I've been able to
- 1325
- 00:52:13,550 --> 00:52:17,599
- illustrate a bit about our design and
- 1326
- 00:52:15,230 --> 00:52:19,550
- decision making process today and why
- 1327
- 00:52:17,599 --> 00:52:21,920
- PlayStation 5 has the feature set that
- 1328
- 00:52:19,550 --> 00:52:23,780
- it does now comes the fun part we get to
- 1329
- 00:52:21,920 --> 00:52:26,420
- see how the development community takes
- 1330
- 00:52:23,780 --> 00:52:28,579
- advantage of that feature set I'm hoping
- 1331
- 00:52:26,420 --> 00:52:30,800
- for the completely unexpected will it
- 1332
- 00:52:28,579 --> 00:52:33,050
- come from audio ray-tracing the
- 1333
- 00:52:30,800 --> 00:52:36,130
- capabilities of the SSD or something
- 1334
- 00:52:33,050 --> 00:52:40,510
- else I guess we'll find out soon enough
- 1335
- 00:52:36,130 --> 00:52:40,510
- thank you for your time today
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement