很多人都不知道看似輕描淡寫的這2行敘述,對cell的影響有多重大!
其實要發揮cell的實力,如何在cell架構上 programming 是最難的問題!
別以為寫cell的program只是把code寫好然後給compiler吃,compiler就會自動生出完美的parallelized executable,
哪個部分PPE該做 哪個部分給SPE平行做都自動切的整整齊齊,各個SPE隨時工作滿檔,
都處於peak performance的狀態,218GFLOPS輕鬆達成
哪有這麼好康的事?
相反的,PPE跑的code跟SPE跑的code是分開來寫的、分開compile的,
要叫SPE做事的話PPE就要自己開1個SPE thread叫某個SPE做事,SPE不會沒事自己找work來做,
所以SPE再多你的program無法平行化給SPE做也是沒用。
此外,cell的PPE和SPE的addressing space不一樣,PPE有64bit的定址能力,
而SPE只看的到自己256KB的local storage(LS),所以要將之前在shared memor...