找回密码
 立即注册
搜索
查看: 7066|回复: 35

[PS4/5] 【代发】PS4编程的点点心得

[复制链接]
     
发表于 2014-9-1 21:25 | 显示全部楼层 |阅读模式
我的好友最近在日本某公司进行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占用率……
剩下的东西(视频压缩)之类的还没用上,暂时就不发表评论了


回复

使用道具 举报

头像被屏蔽
发表于 2014-9-1 21:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-9-1 21:46 来自手机 | 显示全部楼层
本次代 xone wiiu ps4哪个开发是最坑爹的?
回复

使用道具 举报

     
发表于 2014-9-1 21:46 来自手机 | 显示全部楼层
肯定有ff15的开发人员跳出来打脸

----发送自 HTC HTC 919d,Android 4.4.2
回复

使用道具 举报

头像被屏蔽
发表于 2014-9-1 21:48 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2014-9-1 21:54 | 显示全部楼层
LZ的好友是哪家日本公司的?这是我唯一关心的!ps4机能低常常听到,难开发我到现在还是第一次听到。
回复

使用道具 举报

     
发表于 2014-9-1 21:57 | 显示全部楼层
PS3 CPU比较烂?Compute Shader比 OpenCL难用,不过前者是针对游戏的

申请过Xbox One的SDK,结果微软没给我
回复

使用道具 举报

     
发表于 2014-9-1 21:58 | 显示全部楼层
大致就是PS4的CPU部分实在太贫弱,发布时不都知道么,美洲豹构架可是对位atom的
回复

使用道具 举报

     
发表于 2014-9-1 21:59 | 显示全部楼层
我觉得这就是程序员水平了
回复

使用道具 举报

     
发表于 2014-9-1 22:06 | 显示全部楼层
咦,各方关于ps4开放的主论调不是都说好么
回复

使用道具 举报

     
发表于 2014-9-1 22:07 | 显示全部楼层
实习生……
回复

使用道具 举报

     
发表于 2014-9-1 22:09 | 显示全部楼层
这是程序员水平问题吧······
回复

使用道具 举报

     
发表于 2014-9-1 22:12 | 显示全部楼层
体制的错 发表于 2014-9-1 21:48
肯定是Wii U啦,连宫本茂都嫌弃

宫本茂又不编程,瞎说。
回复

使用道具 举报

     
发表于 2014-9-1 22:12 | 显示全部楼层
拉屎不出赖地硬
回复

使用道具 举报

     
发表于 2014-9-1 22:13 | 显示全部楼层
这帖发硬件区会比较容易讨论起来。游戏区这边给我感觉没什么人真关心硬件
回复

使用道具 举报

     
发表于 2014-9-1 22:17 | 显示全部楼层
程序员水平问题,这是做产品又不是搞研发,什么都给你最好的,你来负责多出来的成本吗?
回复

使用道具 举报

     
发表于 2014-9-1 22:40 | 显示全部楼层
顽皮狗费了九牛二虎之力才将The Last of Us Remastered搞上1080p60f,阴影效果缩水

程序员在微博上也承认了PS4不那么powerful
回复

使用道具 举报

     
发表于 2014-9-1 23:00 | 显示全部楼层
价格这么低的主机,性能达不到主流PC太正常不过了,索尼不是作高端硬件玩具的
低价游戏设备不就是取舍个性能和价格的平衡么
回复

使用道具 举报

体制改革 该用户已被删除
发表于 2014-9-1 23:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2014-9-1 23:38 | 显示全部楼层
我来说一句吧。

这是典型的做惯了PC开发,第一次搞主机开发,完全带着PC开发的眼光看主机开发。
回复

使用道具 举报

     
发表于 2014-9-1 23:41 | 显示全部楼层
本帖最后由 oz01 于 2014-9-1 23:54 编辑
还有,AVX。是的,AVX是支持的。但是,ALU只有128bit。没错,你需要两个时钟周期执行一个AVX指令!
我想问AVX的意义何在?那256bit寄存器是摆样子看的?

这位同学还真打算在游戏里用avx么

对,说到内存,GDDR5,172GB/s,听起来很美好……但这只是对GPU而言,CPU访问速度只有12GB/s。
更甚,GPU如果试图访问通过CPU缓存的区域,带宽只有20GB/s。
172GB/s?CPU没缓存,读取速度是MB级别的。CPU想访问?GPU带宽只有20GB。

20G/s都不够用
同学你到底想干啥?
想拿cpu算柔体mesh么

于是,GPU很不给力,咱们用GPU通用计算一个是吧?很遗憾,这玩意不支持OpenCL。
你需要编写一个“Compute Shader”,没错,你需要编写一个计算用着色器! 然后把数据预备好,
准备一些GPU渲染指令(当然不是真的来渲染的),给GPU发送指令“执行”,然后等结果。
当然,如果计算是非同步的,不需要前后文相关,相信性能还是可以很不错的,但是这世上有很多运算
你还是需要等前一个计算的结果来进行接下来的计算的。于是,GPU同步又会增加很多Overhead……
总比没有好就是了。

这位同学似乎对opencl存在不切实际的幻想
通用计算着色器确实麻烦点,可你要真去用opencl那也是把自己往火坑里推
非要用gpu玩串行计算这也是够新颖的了

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

你真是来开发游戏的?
你难道还要拿1080P的视频当模型贴图不成
回复

使用道具 举报

     
发表于 2014-9-1 23:42 来自手机 | 显示全部楼层
我的理解是文章本身没啥问题,但要只想想历代主机的游戏开发,其实都能挑出各种各样令程序员不满的地方,这毕竟是游戏机,是市场,价格,商业合作和恶性竞争互相调和牵制之后的产物,你不能一股脑拿机能几乎无上限不计成本和优化的高端pc配置比
回复

使用道具 举报

     
发表于 2014-9-1 23:45 | 显示全部楼层
w酱 发表于 2014-9-1 23:00
价格这么低的主机,性能达不到主流PC太正常不过了,索尼不是作高端硬件玩具的
低价游戏设备不就是取舍个性 ...

这些问题除了opencl和l3缓存之外
pc都有,部分问题更严重
而且pc上要是游戏用opencl可是个大坑,除非放弃显卡兼容性或者干脆就软加速
回复

使用道具 举报

发表于 2014-9-1 23:49 | 显示全部楼层
跟PC比你不是找死么,得纵向跟前几代比啊。97年前后PC是166/200MHz的时候PS主机是33MHz主频,2003年左右PC是2GHz的时候PS2是300MHz,等等…………比起那些时代已经很好了好吗。
回复

使用道具 举报

发表于 2014-9-2 01:06 | 显示全部楼层
看上去像是只做过PC完全按照PC看的w
回复

使用道具 举报

     
发表于 2014-9-2 01:46 | 显示全部楼层
狗屁心得,技术的日厂+实习生光这两条就可以知道这文章没啥参考价值了,整篇就是一个不懂主机游戏开发的程序员在那瞎抱怨。
回复

使用道具 举报

头像被屏蔽
发表于 2014-9-2 03:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-9-2 05:07 | 显示全部楼层
我倒是觉得就是拿着看高端PC的眼光看主机开发,觉得架构各种坑,机能各种翔而已。。。
回复

使用道具 举报

头像被屏蔽
     
发表于 2014-9-2 06:57 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-9-2 08:31 | 显示全部楼层
darkfall 发表于 2014-9-2 01:06
看上去像是只做过PC完全按照PC看的w

也可能是做过pc,不知道听了什么奇怪的消息,以为ps4就是神仙pc解决不了的东西ps4全能搞定就是速度慢点
回复

使用道具 举报

     
发表于 2014-9-2 08:58 | 显示全部楼层
其实就是中二吐槽,实习生的年纪是频发期,啥事都要发出来让别人关注下
回复

使用道具 举报

     
发表于 2014-9-2 09:10 来自手机 | 显示全部楼层
不明觉厉
回复

使用道具 举报

     
发表于 2014-9-2 10:34 | 显示全部楼层
长见识
回复

使用道具 举报

头像被屏蔽
     
发表于 2014-9-2 11:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2014-9-2 12:46 | 显示全部楼层
怨妇贴。和pc比有啥意义,主机各平台之间对比才有价值
回复

使用道具 举报

     
发表于 2014-9-2 13:40 | 显示全部楼层
啥意思?为什么游戏机需要 opencl 。相对于游戏开发opencl 对于compute shader 有什么优势? 有什么事情是opencl能做而compute shader 做不到了。
ps3/ps4 libnm 这个跟opengl/opencl 完全不是一个体系吧。

既然是实习生的意见。真的需要费口水理论么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-29 15:50 , Processed in 0.199977 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表