题
上次,我听到很多人声称细胞处理器已经死亡,这主要是由于以下原因:
- 在新的PlayStation 3中缺乏支持,因为用户无法安装Linux
- GPU的加工能力及其成本下降
- 对于不同的GPU而非CBE的统一编程方法(OPENCL)的存在(今天宣布了该单元格!)
- 现实世界中使用细胞的示例(除学术界除外)
- 全球失败的感觉
你怎么看?如果您在两三年前开始编程该单元格,您是否会继续进行此操作,还是考虑切换到GPU?该单元的新版本即将到来吗?
谢谢
解决方案
我会说缺乏细胞开发的原因更接近:
- PS3缺乏成功(由于索尼的许多错误以及Xbox 360的激烈竞争)
- 低制造业产量,高成本(部分是由于产量低),并且除了PS3以外的负担得起的硬件系统缺乏
- 开发难度(单元格是一个不寻常的处理器,缺乏工具)
- 与现有的基于X86的商品硬件相比,未能实现重大绩效差异。即使是Xbox 360的几年历史的三核功率体系结构处理器也证明了竞争力,与现代的Core2 Quad处理器相比,该单元格的优势并不明显。
- 增加了GPU通用计算平台(例如CUDA)的竞争
其他提示
编写1000个线程的并行程序比10s线程更容易。 GPU具有1000个线程,具有硬件线程调度和负载平衡。尽管当前的GPU主要适用于数据平行的小核,但它们具有使进行此类编程的工具。单元格在消费者配置中只有少数10s的处理器。 (超级计算机中使用的细胞衍生物越过线路,并具有100秒的处理器。)
恕我直言,细胞最大的问题之一是缺乏指令缓存。 (我在2005年从微型会议上回来的飞机上的牢房建筑师争论着这一点。尽管他们不同意我,但我从Cell的Bigsuper计算机使用者中听到了同样的消息。)人们可以应付适合固定尺寸的数据记忆力 - GPU虽然抱怨,但也有同样的问题。但是将代码拟合到固定尺寸指令记忆中是一种痛苦。添加IF语句,性能可能会从悬崖上掉落,因为您必须开始使用叠加层。控制数据结构要比避免在开发周期后期添加代码来修复错误要容易得多。
GPU最初与细胞存在相同的问题 - 没有缓存,我也没有D。
但是GPU做了更多的线程,数据并行性比单元要好得多,以至于他们吃了这个市场。仅将其锁定在控制台客户中,并且比GPU更复杂,但比CPU代码复杂。挤在中间。
而且,与此同时,GPU正在添加I $和D $。因此,它们变得更容易编程。
细胞为什么死亡?
1)SDK很恐怖。我看到一些非常聪明的开发人员抓眼睛通过IBM邮件列表倾泻而出,试图找出这个问题或使用Cell SDK。
2)计算单元之间的公共汽车开始显示缩放问题,并且永远不会到32个内核。
3)Opencl大约3 - 4年太晚了,无法使用任何用途。
如果您在两三年前开始编程该单元格,您是否会继续进行此操作,还是考虑切换到GPU?
我本来以为90%的为细胞处理器编程的人没有可以任意决定停止编程的位置。您是否将这个问题瞄准一个非常特定的发展社区?