» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 63 12345
发新话题
打印

[业评] 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占用率……
剩下的东西(视频压缩)之类的还没用上,暂时就不发表评论了


请业内来点评一下


TOP

399美元垃圾货:D :D :D
请PC爹爹点评



TOP

posted by wap, platform: iPhone
确实是目前次时代机能垫底主机。


TOP

APU不就这样

TOP

看描述,怎么感觉PS4的开发环境还不如现在的X1?

TOP

拼优化拼美工

TOP

我的i7泰坦已经饥渴难耐

TOP

不懂,但是可以预见X1要悲剧.....

TOP

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

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

TOP

用汇编么 都要跟寄存器打交道 喷了

TOP

posted by wap, platform: ZTE
幸好3DS用的是FCRAM,分辨率也不是虚高……

TOP

成本摆在那里,无他。

TOP

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

毕竟是被默秒全的东西

TOP

X1呢,呼唤业内解释。
给游戏机编程还真是一个力气活。

TOP

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


起码X1在通用计算这一块有现成的解决方案——DX API所专属的Direct Compute

TOP

 63 12345
发新话题
     
官方公众号及微博