你可能也曾是一個(gè)PlayStation3玩家,也曾是《戰(zhàn)神3》《神秘海域》《殺戮地帶》愛(ài)好者。關(guān)于這款主機(jī),曾有個(gè)有趣的冷知識(shí):2010年,美國(guó)空軍用1760臺(tái)PS3搭建了一個(gè)集群,組成了當(dāng)時(shí)全球第33強(qiáng)的超級(jí)計(jì)算機(jī),專(zhuān)門(mén)用于處理高清衛(wèi)星圖像。
在21世紀(jì),用游戲主機(jī)組建超算集群已不算什么新鮮事。早在2000年,就有消息稱(chēng)伊拉克總統(tǒng)薩達(dá)姆試圖進(jìn)口4000臺(tái)PlayStation2主機(jī),宣稱(chēng)是“作為禮物送給國(guó)內(nèi)兒童”,卻被有關(guān)機(jī)構(gòu)懷疑PS2主機(jī)的芯片被用于制造遠(yuǎn)程導(dǎo)彈,認(rèn)為其強(qiáng)大的運(yùn)算能力可以提升伊拉克戰(zhàn)術(shù)導(dǎo)彈的地形適配能力,最后也是真假難辨。但用家用游戲主機(jī)組成超級(jí)電腦這樣的操作,以后恐怕再也見(jiàn)不到了。
PlayStation3集群是怎么搭建的?
當(dāng)年,索尼允許玩家通過(guò)“OtherOS”功能在PS3上安裝其他操作系統(tǒng)。這個(gè)官方功能可以讓玩家裝上YellowDogLinux、Fedora、Ubuntu之類(lèi)的系統(tǒng)——不過(guò)2010年索尼以安全為由移除了它。后來(lái)黑客們靠自定義固件繼續(xù)在PS3上跑Linux,但這讓該功能徹底脫離了游戲功能,索尼還因此惹上集體訴訟,差不多十年后才向每位原告賠償了10.07美元。
據(jù)《Phys》雜志報(bào)道,這個(gè)名叫“神鷹集群(CondorCluster)”的超級(jí)計(jì)算機(jī),每秒能完成500萬(wàn)億次浮點(diǎn)運(yùn)算(TFLOPS),成本卻只相當(dāng)于相同性能的“正經(jīng)”超級(jí)計(jì)算機(jī)的5%到10%。美國(guó)空軍買(mǎi)每臺(tái)PS3花了400美元(按照當(dāng)時(shí)匯率相當(dāng)于2700人民幣),而同等性能的專(zhuān)用設(shè)備單臺(tái)要1萬(wàn)美元,整個(gè)項(xiàng)目下來(lái)才花了200萬(wàn)美元。更厲害的是,PS3的能效高得驚人——神鷹集群的能耗,只有同性能超級(jí)計(jì)算機(jī)的10%。
至于怎么讓這么多PS3連起來(lái)干活?靠的是消息傳遞接口(MPI)工具,比如OpenMPI或MPICH;集群軟件像TORQUE(萬(wàn)億級(jí)開(kāi)源資源與隊(duì)列管理器)、Slurm或HTCondor,則負(fù)責(zé)調(diào)度任務(wù)和分配資源。最后再搭個(gè)共享存儲(chǔ),讓集群里所有設(shè)備能并行訪(fǎng)問(wèn)同一批數(shù)據(jù)。
其實(shí)在“神鷹集群”項(xiàng)目之前,馬薩諸塞大學(xué)達(dá)特茅斯分校物理系也曾用近200臺(tái)PS3游戲機(jī)搭建了一臺(tái)類(lèi)似的超算,主要用于天體物理模擬,可能是當(dāng)時(shí)“PS3模擬地球”這個(gè)梗的由來(lái)。
我們都知道,當(dāng)年P(guān)S3對(duì)游戲開(kāi)發(fā)者相當(dāng)不友好,它使用的是IBM的Cell處理器——Valve的加布?紐維爾(G胖)曾直言這玩意兒“純屬浪費(fèi)大家時(shí)間”。雖說(shuō)這處理器性能確實(shí)強(qiáng),但PS3的硬件和當(dāng)時(shí)的Xbox360截然不同,甚至可以說(shuō)和之前幾乎所有計(jì)算設(shè)備都不一樣。它有一個(gè)主處理單元(PPE)和七個(gè)協(xié)同處理單元(SPEs),其實(shí)本來(lái)是八個(gè),不過(guò)為了提高良品率,索尼屏蔽了一個(gè)。開(kāi)發(fā)者得從頭學(xué)起,才能為這種全新架構(gòu)做游戲,這也意味著主機(jī)發(fā)售好幾年后,性能潛力還未被完全挖掘。
時(shí)任索尼電腦娛樂(lè)CEO平井一夫曾在《PlayStation官方雜志》上說(shuō),這是故意設(shè)計(jì)的。
“我們不造開(kāi)發(fā)者想要的‘好編程’主機(jī),因?yàn)椤镁幊獭馕吨l(shuí)都能輕松榨干硬件性能,那接下來(lái)的九年半里,我們還能拿出什么新鮮東西?”
這話(huà)好像有點(diǎn)道理,但給開(kāi)發(fā)者添的麻煩可不小。不過(guò),這種獨(dú)特架構(gòu)雖然讓集群搭建更復(fù)雜,卻也讓PS3成了并行計(jì)算的一把好手。
說(shuō)起來(lái),PS3特別適合組建集群,核心原因就在那八個(gè)SPEs——它們有點(diǎn)像現(xiàn)在的GPU核心,專(zhuān)門(mén)擅長(zhǎng)快速處理大量簡(jiǎn)單運(yùn)算。用PS3組集群,相當(dāng)于用低成本拿到了能并行處理海量數(shù)據(jù)的硬件;再用MPI橋把一堆機(jī)器連起來(lái),自然成了想搭超級(jí)計(jì)算機(jī)的人的香餑餑。
為什么這樣的奇跡再也不會(huì)發(fā)生了?
對(duì)索尼來(lái)說(shuō),PS3能被用來(lái)組超級(jí)計(jì)算機(jī),問(wèn)題主要出在兩方面。首先,PS3史上第一次成功越獄(能讓玩家玩盜版游戲、裝自制程序),就是利用了OtherOS功能。破解思路來(lái)自十幾年前的一個(gè)論壇帖子:“在OtherOS里,七個(gè)SPU都是空閑的。你可以命令一個(gè)SPU(具體怎么做就留給讀者自己琢磨了)加載metldr,再加載你想加載的程序,然后解密任何東西——從安裝包到執(zhí)行文件,包括未來(lái)版本的?!?/p>
意思就是,破解者能利用其中一個(gè)SPE解密機(jī)器上的所有內(nèi)容。SPU是SPE的核心,每個(gè)SPE還有256KB本地存儲(chǔ)和一個(gè)內(nèi)存流控制器(MFC)。簡(jiǎn)單說(shuō),破解者就是靠OtherOS拿到了PS3的密鑰。
既然OtherOS成了PS3的安全漏洞,索尼肯定要鎖死并移除這個(gè)功能。畢竟,有了OtherOS,用戶(hù)就能完全掌控系統(tǒng),美國(guó)空軍能用近2000臺(tái)PS3搭超級(jí)計(jì)算機(jī),靠的也是這個(gè)。雖說(shuō)索尼的虛擬機(jī)監(jiān)控程序本應(yīng)限制對(duì)RSX“現(xiàn)實(shí)合成器”GPU的訪(fǎng)問(wèn),但后來(lái)啟用OtherOS的監(jiān)控程序還是被破解,導(dǎo)致系統(tǒng)被破解者完全掌控。
不過(guò),盜版和安全還不是根本原因。索尼和微軟的每一代主機(jī),在發(fā)售初期大多是虧本賣(mài)的,只為了定一個(gè)對(duì)玩家有吸引力的價(jià)格(當(dāng)然發(fā)售幾年后會(huì)逐漸收回硬件成本)。傳統(tǒng)游戲公司主要靠游戲授權(quán)賺錢(qián),所以主機(jī)售價(jià)可以低于生產(chǎn)成本——反正默認(rèn)買(mǎi)主機(jī)的人會(huì)買(mǎi)游戲,靠游戲把錢(qián)賺回來(lái)。就算主機(jī)虧了,游戲銷(xiāo)量也能補(bǔ)上。
但問(wèn)題來(lái)了:像美國(guó)空軍這樣用PS3組超級(jí)計(jì)算機(jī),索尼賣(mài)一臺(tái)就虧一臺(tái),還沒(méi)法靠游戲把錢(qián)賺回來(lái)。這些主機(jī)根本不會(huì)用來(lái)玩游戲,索尼虧的錢(qián)就成了打水漂。倒不是說(shuō)索尼缺這點(diǎn)錢(qián),而是再推出帶OtherOS這種功能的主機(jī),既不能靠虧本定價(jià)搶占市場(chǎng),還可能給未來(lái)的盜版留口子,實(shí)在沒(méi)好處。
如今的主機(jī)市場(chǎng)雖說(shuō)有變化,但虧本賣(mài)主機(jī)的做法還挺常見(jiàn)。2021年,索尼CFO十時(shí)裕樹(shù)說(shuō),500美元的帶光驅(qū)版PS5一開(kāi)始是虧本賣(mài)的,后來(lái)才盈利;而數(shù)字版PS5在發(fā)售一年后還在繼續(xù)虧本。XboxSeriesX當(dāng)時(shí)也虧本賣(mài),直到現(xiàn)在似乎仍未實(shí)現(xiàn)硬件盈利。不過(guò)任天堂不太一樣,主機(jī)自從NGC之后一直走低性能賽道,只有特價(jià)后的3DS和WiiU曾虧本賣(mài)過(guò)。
PS5和XboxSeriesX均采用基于AMD架構(gòu)的定制化硬件設(shè)計(jì),核心架構(gòu)圍繞x86-64指令集,已與個(gè)人PC無(wú)異,失去了組建集群的意義,當(dāng)年P(guān)S3的壯舉恐怕再也不會(huì)重現(xiàn)了。