Board logo

标题: [业评] ZT PS4编程的点点心得 [打印本页]

作者: 当幸福来敲门    时间: 2014-9-1 22:09     标题: ZT PS4编程的点点心得

http://bbs.a9vg.com/thread-4243232-1-1.html

我的好友最近在日本某公司进行ps4的底层开发工作,感触良多,由于没有发贴权限,委托我进行代发,他会对一些其他问题进行回复,以下正文


现在还是实习生,来年正式工作,不过已经开始给PS4写底层代码了
感想就一个,这“次时代”简直就是笑话
不过说坏话之前说点好话吧,这代主机内存够用是真的
可以直接支配的内存有4.5G,可以从系统借来的内存外加448MB,接近5G内存
跟PS3的120~170M(根据你调用的系统库的数量而不同)简直是天地之差
我甚至花了半天时间写了一个简易的读取缓存——还是用不完(大概是跟我还没机会编写3A大作有关吧)
嗯,这是我能想到PS4的唯一的好处了。剩下的,就是各种无语,郁闷,以及失望。
首先,这CPU没有L3缓存,而且,8核之中是两个4核胶水上的。能用的只有6核就是了。
一个4核被SCE称作“一个集群”,由于没有L3缓存,L2分别由各个集群独享,
所以线程调度时如果一旦被调度到另一个集群,等待着你的就是通过主内存同步前后文数据了——非常慢。
对,说到内存,GDDR5,172GB/s,听起来很美好……但这只是对GPU而言,CPU访问速度只有12GB/s。
更甚,GPU如果试图访问通过CPU缓存的区域,带宽只有20GB/s。
172GB/s?CPU没缓存,读取速度是MB级别的。CPU想访问?GPU带宽只有20GB。
回到CPU,我实在是不明白AMD是抽了什么风,怎么能设计出这么个奇葩玩意。
主频是1.6GHz。1.6GHz!!!我活在什么年代?感觉一夜回到解放前。
而且,不支持FMA……AMD如此推崇的FMA,居然不支持!?本来频率就够低,这样一来性能更上不去。
还有,AVX。是的,AVX是支持的。但是,ALU只有128bit。没错,你需要两个时钟周期执行一个AVX指令!
我想问AVX的意义何在?那256bit寄存器是摆样子看的?
接下来说说GPU。次时代主机里面现在完全就是矮子里拔高个的状态。PS4的GPU接近于R7 265……也就是个主流级别。
于是,GPU很不给力,咱们用GPU通用计算一个是吧?很遗憾,这玩意不支持OpenCL。
你需要编写一个“Compute Shader”,没错,你需要编写一个计算用着色器! 然后把数据预备好,
准备一些GPU渲染指令(当然不是真的来渲染的),给GPU发送指令“执行”,然后等结果。
当然,如果计算是非同步的,不需要前后文相关,相信性能还是可以很不错的,但是这世上有很多运算
你还是需要等前一个计算的结果来进行接下来的计算的。于是,GPU同步又会增加很多Overhead……
总比没有好就是了。
还有一点,这GPU它没有硬解。它没有硬解!!!我又有了一种回到了解放前的感觉!!!
SCE官方提供的解码方案是,CPU负责Demux和CABAC解码,GPU负责iDCT,运动补偿以及Deblock。
即便如此,CPU依然太贫弱。怎么办?SCE官方解决方案:请用4Slice进行压制(这样可以4线程解码,
但是牺牲压缩效率)。即便如此(又一遍),720p30的视频大致需要~20%的CPU,1080p30的视频需要30~40%
1080p60需要超过50%的CPU占用率……
剩下的东西(视频压缩)之类的还没用上,暂时就不发表评论了


请业内来点评一下
作者: Grally    时间: 2014-9-1 22:14

399美元垃圾货:D :D :D
请PC爹爹点评
作者: 富兰克林    时间: 2014-9-1 22:20

posted by wap, platform: iPhone
确实是目前次时代机能垫底主机。
作者: KoeiSangokushi    时间: 2014-9-1 22:23

APU不就这样
作者: KoeiSangokushi    时间: 2014-9-1 22:27

看描述,怎么感觉PS4的开发环境还不如现在的X1?
作者: west2046    时间: 2014-9-1 22:28

拼优化拼美工
作者: 奶茶!    时间: 2014-9-1 22:29

我的i7泰坦已经饥渴难耐
作者: em9527    时间: 2014-9-1 22:38

不懂,但是可以预见X1要悲剧.....
作者: SRX-ATX    时间: 2014-9-1 22:44

posted by wap, platform: Windows
感觉索软两家这次机器的机能都定那么低有很大程度上是被WII所创造出来的低成本+暴利的虚假繁荣的风气给误导了, 认为没有必要再堆硬件. 两家看到任在WII时代那么赚必然会眼红想要模仿.

不过好在让人欣慰的是任在WIIU上还想如法炮制一遍低成本+暴利的玩法终于将自己带到沟里了, X1也因为机能低于PS4而处于劣势,算是给了索软两家好好上了一课. 想必等到PS5那代三家都会吸取这一代的教训认真的重视机能了吧
作者: BlackGod    时间: 2014-9-1 22:44

用汇编么 都要跟寄存器打交道 喷了
作者: ZHENGZHENGZHENG    时间: 2014-9-1 22:45

posted by wap, platform: ZTE
幸好3DS用的是FCRAM,分辨率也不是虚高……
作者: cloudian    时间: 2014-9-1 22:48

成本摆在那里,无他。
作者: lowkey    时间: 2014-9-1 22:49

按摩店的APU能强到哪去?.

毕竟是被默秒全的东西
作者: linkzzy    时间: 2014-9-1 22:53

X1呢,呼唤业内解释。
给游戏机编程还真是一个力气活。
作者: KoeiSangokushi    时间: 2014-9-1 22:55

引用:
原帖由 linkzzy 于 2014-9-1 22:53 发表
X1呢,呼唤业内解释。
给游戏机编程还真是一个力气活。
于是,GPU很不给力,咱们用GPU通用计算一个是吧?很遗憾,这玩意不支持OpenCL。
你需要编写一个“Compute Shader”,没错,你需要编写一个计算用着色器! 然后把数据预备好,
准备一些GPU渲染指令(当然不是真的来渲染的),给GPU发送指令“执行”,然后等结果。


起码X1在通用计算这一块有现成的解决方案——DX API所专属的Direct Compute
作者: 小蛋蛋    时间: 2014-9-1 22:57

posted by wap, platform: iPhone
本来就是这样 你还指望ps4能怎么样 便宜货而已
作者: KoeiSangokushi    时间: 2014-9-1 22:58

还有一点,这GPU它没有硬解。它没有硬解!!!我又有了一种回到了解放前的感觉!!!
SCE官方提供的解码方案是,CPU负责Demux和CABAC解码,GPU负责iDCT,运动补偿以及Deblock。
即便如此,CPU依然太贫弱。怎么办?SCE官方解决方案:请用4Slice进行压制(这样可以4线程解码,
但是牺牲压缩效率)。即便如此(又一遍),720p30的视频大致需要~20%的CPU,1080p30的视频需要30~40%
1080p60需要超过50%的CPU占用率……


这个问题在X1那边应该也不是问题,X1的那块APU有现成的视频解压方案

[ 本帖最后由 KoeiSangokushi 于 2014-9-1 23:06 编辑 ]
作者: 倍舒爽    时间: 2014-9-1 23:03

尽管本代主机很乐色。。
他也可能是业内,但可以确定他不是做ps4软件开发工作的。。
作者: KoeiSangokushi    时间: 2014-9-1 23:05

引用:
原帖由 倍舒爽 于 2014-9-1 23:03 发表
尽管本代主机很乐色。。
他也可能是业内,但可以确定他不是做ps4软件开发工作的。。
为什么要高估中小型日厂的技术水平?
作者: 倍舒爽    时间: 2014-9-1 23:05

引用:
原帖由 KoeiSangokushi 于 2014-9-1 22:58 发表
还有一点,这GPU它没有硬解。它没有硬解!!!我又有了一种回到了解放前的感觉!!!
SCE官方提供的解码方案是,CPU负责Demux和CABAC解码,GPU负责iDCT,运动补偿以及Deblock。
即便如此,CPU依然太贫弱。怎么办? ...
x1的视频codec和ps4一模一样好不好。。
作者: KoeiSangokushi    时间: 2014-9-1 23:06

引用:
原帖由 倍舒爽 于 2014-9-1 23:05 发表


x1的视频codec和ps4一模一样好不好。。
X1在软件层面有现成的方案

[ 本帖最后由 KoeiSangokushi 于 2014-9-1 23:07 编辑 ]
作者: 倍舒爽    时间: 2014-9-1 23:08

引用:
原帖由 KoeiSangokushi 于 2014-9-1 23:06 发表

X1有现成的方案
什么现成方案?
ps4x都是用一模一样的硬编码。。
反正质疑点不少,对ps4的架构以及spec可能还没有一些坛友清楚。。

[ 本帖最后由 倍舒爽 于 2014-9-1 23:09 编辑 ]
作者: KoeiSangokushi    时间: 2014-9-1 23:10

引用:
原帖由 倍舒爽 于 2014-9-1 23:08 发表


反正质疑点不少,对ps4的架构以及spec可能还没有一些坛友清楚。。
大概PS4从软件开发层面留给日本中小型开发商就是这样的观感吧~

就像通用计算和视频解码,微软有现成的方案在,而索尼那边要开发者自己来搞~

什么是现成的方案?比如说X1有提供Direct Compute,就是现成的战力,而PS4不支持OpenCL,需要开发者自己来写

再比如说解码,X1直接丢进去就成,PS4还要开发者自己编写解码方案~

[ 本帖最后由 KoeiSangokushi 于 2014-9-1 23:13 编辑 ]
作者: qyqgpower    时间: 2014-9-1 23:12

PS4开发喷了,都是看了顽皮狗的PPT之后脑补出来的吧233
作者: 倍舒爽    时间: 2014-9-1 23:23

引用:
原帖由 KoeiSangokushi 于 2014-9-1 23:10 发表

大概PS4从软件开发层面留给日本中小型开发商就是这样的观感吧~

就像通用计算和视频解码,微软有现成的方案在,而索尼那边要开发者自己来搞~

什么是现成的方案?比如说X1有提供Direct Compute,就是现成的战力 ...
你信这真的是业内。。??

A developer from Rad Game Tools got in touch with us clarifying that the numbers were incorrectly phrased on their website [which they have corrected now]. The developer also told us that Bink on GPU uses both the CPU and the GPU. The developer shared the following numbers with us:
PC (2.8Ghz Core i5 with 4 cores and AMD R9 290x): CPU: 1.3 ms.  GPU: 1.4 ms.
PS4: CPU 2.3 ms. GPU: 1.6 ms.
Xbox: CPU 2.3 ms. GPU: 2.3 ms.
As you can see, the GPU time is less on the PlayStation 4 since it has more compute units but the time is still limited by the CPU and GPU on both the Xbox One and PS4, resulting into an effective speed of 2.3 ms on both consoles.

Read more at http://gamingbolt.com/new-benchm ... qwirge4CTJlp6H6x.99

当然,这个是完全没有利用到硬件codec的测试,bink2是独立编码方式。。

[ 本帖最后由 倍舒爽 于 2014-9-1 23:26 编辑 ]
作者: KoeiSangokushi    时间: 2014-9-1 23:25

引用:
原帖由 倍舒爽 于 2014-9-1 23:23 发表


你信这真的是业内。。??

A developer from Rad Game Tools got in touch with us clarifying that the numbers were incorrectly phrased on their website [which they have corrected now]. The develop ...
喷了

楼主转的那文又不是在说PS4性能不如X1

只是在吐槽PS4硬件性能不够次世代,以及开发环境不好而已~
作者: yfl2    时间: 2014-9-1 23:25

这文章摆明了是胡扯,ps4开发时候第一重视的就是开发便利性,根本不可能出现这种乌龙
作者: 倍舒爽    时间: 2014-9-1 23:26

引用:
原帖由 KoeiSangokushi 于 2014-9-1 23:25 发表

喷了

楼主转的那文又不是在说PS4性能不如X1

只是在吐槽PS4硬件性能没PC强,以及开发环境不好而已~
别乱喷,你发神经啊?
你看清楚先再说。。
作者: KoeiSangokushi    时间: 2014-9-1 23:29

posted by wap, platform: 小米 MI 1S
引用:
原帖由 @倍舒爽  于 2014-9-1 23:26 发表
别乱喷,你发神经啊?
你看清楚先再说。。
你转的这文我早就看过
作者: leon2510    时间: 2014-9-1 23:42

你这朋友根本不存在吧
作者: bsseven    时间: 2014-9-1 23:46

记得PS4的音视频都是硬编解码的,这文槽点实在太多,等着被打脸
作者: Wuhaok    时间: 2014-9-1 23:51

posted by wap, platform: Galaxy Nexus
我只知道在四公主玩D3比我的PC爽。
作者: 倍舒爽    时间: 2014-9-2 00:03

VCE视频编码处理引擎


  VCE技术是AMD在Tahiti构架中引入的另一个重要改进,相较于UVD3.0的原地踏步,VCE技术的出现可以说是Tahiti构架在视频相关方面最引人注目的亮点。


DirectX11性能大跃进 HD7970首发评测
VCE功能细节

  VCE技术从本质上来说是一组专门负责编码操作的硬件电路,该单元在操作方式上类似Intel Quick Sync Video高速视频编码处理电路,都是通过固定单元来高速完成视频编码过程的Preprossing以及Encode过程,这也是整个视屏编码过程中最为消耗系统运算能力的部分。以专门的电路来完成类似的操作不仅能够提升处理速度,同时还可以大幅降低处理过程所带来的功耗压力。

DirectX11性能大跃进 HD7970首发评测
VCE单元Full模式

  VCE与Quick Sync Video最大的不同,同时也是VCE意义最重大的设计,来自它的异构式处理结构。VCE对视频编码的操作分为两种模式,在Full Mode下,VCE会以自身的硬件单元来完成Preprossing以及Encode的全部过程。而Hybird Mode下,VCE单元会调用Tahiti构架丰富的ALU资源来更高速的完成Preprossing过程,以VCE自身的硬件单元来完成Encode过程。在性能最理想的状态下,VCE可以实现1080P分辨率视频的60帧速率实时编码。

DirectX11性能大跃进 HD7970首发评测
VCE单元Hybird模式

  VCE技术的意义是巨大的,除了在GPU单元中第一次引入了低功耗的专用高速视频编码处理电路之外,VCE体现了AMD多年来一直强调并不断付诸实施的异构计算操作结构。Fusion的精髓便是异构处理和加速,这种整体思路正在逐步融入AMD的每一个产品线甚至每一个适合的产品中


ps4 spec from vgleaks

Extra:

Audio Processor (ACP)
Video encode and decode (VCE/UVD) units
Display ScanOut Engine (DCE)
Zlib Decompression Hardware

[ 本帖最后由 倍舒爽 于 2014-9-2 00:05 编辑 ]
作者: pencil    时间: 2014-9-2 00:24

从雅达利2600到ps4,每代游戏机都能这么抱怨出一篇文章来,你硬要拿本身就是玩具的游戏机开发和性能/价格无上限的pc开发比,只能说还没弄明白这个行业的游戏规则
作者: seek    时间: 2014-9-2 01:38

posted by wap, platform: SONY Xperia ZR
引用:
原帖由 @KoeiSangokushi  于 2014-9-1 23:06 发表
X1在软件层面有现成的方案
我记得以前有报道说ps4是硬件 编解码 的(视频录制用到编码功能),支持avc格式,集成在gpu里。当然,编解码时用到额外cpu gpu资源也是有可能的…

软件层sdk里附带的解决方案也是有的,高层低层都有,高层的有sceAvplayer,与vita sdk里带的那个接口一样的。

本帖最后由 seek 于 2014-9-15 18:04 通过手机版编辑
作者: sumeru    时间: 2014-9-2 05:44

没有openCL不能看作是缺陷,openCL目前没看到游戏界有大规模的应用,不过就是个驱动+编译层面的东西,下边都是同样的GPU,你还能飞上天去吗。

Sony的SDK支持差劲,从ps2时代就看出来了。
作者: 模拟器高手    时间: 2014-9-2 09:23

次时代跨平台,X1继续吊打PS4,就这么滴
作者: leon2236    时间: 2014-9-2 10:00

posted by wap, platform: SONY Z1
引用:
原帖由 @模拟器高手  于 2014-9-2 09:23 发表
次时代跨平台,X1继续吊打PS4,就这么滴
求跨平台x1吊打ps4的作品数量
作者: 马拉多纳    时间: 2014-9-2 10:09

在日本小厂当实习生,日本不是技术落后欧美数个世代吗?
作者: mieumieu    时间: 2014-9-2 11:09

posted by wap, platform: 华为 U9508
引用:
原帖由 @sumeru  于 2014-9-2 05:44 发表
没有openCL不能看作是缺陷,openCL目前没看到游戏界有大规模的应用,不过就是个驱动+编译层面的东西,下边都是同样的GPU,你还能飞上天去吗。

Sony的SDK支持差劲,从ps2时代就看出来了。
跟ps2时代自己控制dma比已经是天上地下了。
作者: polobak    时间: 2014-9-2 11:22

废话,真以为自己是姚明呢。。。
作者: seira1981    时间: 2014-9-2 13:04

没关系,我们有顽皮狗!
作者: cherish_lady    时间: 2014-9-2 14:29

posted by wap, platform: iPhone
这人开发出了什么牛逼画面了?

没点干货光那bb
作者: ABCDE    时间: 2014-9-2 14:29

这不能怪amd啊,你要intel来做也这样。成本放在那里。
作者: 弟弟等等    时间: 2014-9-2 15:07

PS4图像性能是超过ONE  30%的 可是现在实际游戏玩起来没什么区别,可见SONY的开发平台 要加油啊。
作者: jht2batman    时间: 2014-9-2 15:43

日本小厂开发不出真次时代品质的游戏剑指伪次时代主机。
PS4:怪我咯?
作者: darkjack    时间: 2014-9-2 16:05

posted by wap, platform: iPhone
求XBO版本的
作者: otz    时间: 2014-9-2 19:28

posted by wap, platform: iPad
你为什么事事都和pc来比 这是游戏机不是pc
作者: 艾尔沙拉维    时间: 2014-9-3 01:15

这个时候就跪舔日本小厂临时工了?
作者: himura    时间: 2014-9-3 06:15

实习生?  毕业了没?
作者: seek    时间: 2014-9-15 18:17

posted by wap, platform: SONY Xperia ZR
引用:
原帖由 @当幸福来敲门  于 2014-9-1 22:09 发表
http://bbs.a9vg.com/thread424323211.html

说到内存,GDDR5,172GB/s,听起来很美好……但这只是对GPU而言,CPU访问速度只有12GB/s。
更甚,GPU如果试图访问通过CPU缓存的区域,带宽只有20GB/s。
172GB/s?CPU没缓存,读取速度是MB级别的。CPU想访问?GPU带宽只有20GB。
1. cpu访问内存的带宽是20g
2. 被cpu cache住的内存,gpu访问都有20G带宽,还想怎样
3. 最后一句,cpu也可以对某些内存区域放弃缓存,这样gpu就可以172GB/s了。当然,cpu的访问带宽会骤减为10GB/s,不过考虑到cpu直接写显存,省了一次内存拷贝,理论上速度超过pcie3.0

本帖最后由 seek 于 2014-9-15 19:54 通过手机版编辑

[ 本帖最后由 seek 于 2014-9-15 21:18 编辑 ]
作者: nasirjones    时间: 2014-9-15 18:31

太高端了看不懂......
作者: ueol    时间: 2014-9-15 18:34

posted by wap, platform: iPhone
现在关键是并行,

带宽当然是关键,够用就好;

不就是1080p 60

单一线程计算有限,那么就并行计算;

瓶颈总归是有的;

想想当年的PS3,那才是开发者的噩梦
作者: xu33    时间: 2014-9-15 19:00

posted by wap, platform: Chrome
感觉是个半瓶水程序员卖弄专业名词
作者: lili2k2    时间: 2014-9-15 19:02

就那点钱的主机能怎么样,又不是黑科技,随便一个主流中端显卡都上千了,顶一半主机价格。
作者: jiaolu    时间: 2014-9-15 21:05

posted by wap, platform: Nokia
漕点不知道怎么吐?
1。Sony 是支持通用计算,类似于微软的direct compute.
2.有专门的音视频解码。vce
作者: 战神    时间: 2014-9-15 21:53

posted by wap, platform: iPad
很想知道楼主这个朋友参与开发过什么大作?小作也行。
作者: grantliu    时间: 2014-9-15 23:53

posted by wap, platform: Lenovo K910
全场就我看不懂觉得很厉害么?
作者: superDioplus    时间: 2014-9-16 01:48

posted by wap, platform: LG
make一个后面看
作者: coaye    时间: 2014-9-16 02:46

posted by wap, platform: Meizu MX2
说了好多视频解码问题
不懂,问下播片的时候即使占用大部分资源
那又如何,难道还要跟ps1那样边播片边玩?
作者: mieumieu    时间: 2014-9-16 08:29

posted by wap, platform: UC
引用:
原帖由 @coaye  于 2014-9-16 02:46 发表
说了好多视频解码问题
不懂,问下播片的时候即使占用大部分资源
那又如何,难道还要跟ps1那样边播片边玩?
视频解码之后拿来做贴图的应该不少
作者: subway35    时间: 2014-9-16 08:51

这文怎么和DF采访巫师3dev的那篇的结论完全相反阿。。。
作者: zenodante    时间: 2014-9-16 09:46

很多时候就是懒而已,我觉得在这种充满限制和特色鲜明的系统上精心计算,从生肉开始搭起一个效率超高的系统,绝对是程序员的高峰体验.....那种用一堆现成库,无脑堆带宽,用现成通用引擎,像开发pc系统一样的过程,简直毫无激情.....




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0