蘋果新Mac OS X雪豹 為多核未來作準備
轉換64位
三大繪圖芯片商,英特爾、Nvidia和AMD的ATI,都為OpenCL背書。Khronos Group甚至將它列為標準。那代表程序設計師或可在Windows應用軟件重復使用他們的OpenCL程序代碼。繪圖處理器利用平行引擎對許多資料要素執行同樣的處理工作。針對沒有繪圖芯片的電腦,OpenCL也能利用一般多核心處理器的平行執行策略。
蘋果早在多年前的PowerPC處理器時代,就開始其64位轉換工作。在Snow Leopard,幾乎整套Mac軟件,包括Mail、Safari、Finder、iChat和iPhoto,都是64位程序。
現在的英特爾芯片也全是64位,但與32位芯片相比,64位究竟有什么好處?簡單的說,它能讓重量級的程序使用超過4GB的內存,提供更多內存插槽(暫存器),并加速某些數學運算。但轉換到64位設計不一定保證有立即加速的效果。蘋果在一份開發文件中表明:“迷思:我的應用軟件若是原生的64位軟件,執行速度將大幅加快。事實:有些64位軟件在64位英特爾和PowerPC架構上的執行可能更慢。”
蘋果鼓勵程序設計師測試他們的軟件,看64位版是否真的較快。改成64位的蘋果應用軟件全都比較快。不過,MacBook和iMac等消費者產品配搭的Mac OS X的核心元件(kernel),仍是32位軟件。蘋果這么做是讓應用軟件能處理4G以上的內存,核心也完全能應付。
蘋果在其64位表現的開發者文件中表示:“迷思:核心必須是64位才能完全發揮64位處理器的最佳性能。事實:核心不一定需要一次直接處理超過4 GB的RAM。”但蘋果的32位核心碰到非常大量的內存便無法應付。因此,蘋果表示:“從Snow Leopard開始,對于支持如此大量內存組態的硬件,核心也改成64位軟件。”這里指的是Xserve服務器產品線和Mac Pro工作站。
從32位核心改成64位核心的難處,在于驅動程序(讓操作系統與硬表機、硬盤和聲卡等周邊設備溝通的軟件)也必須是64位。如果是蘋果自產的硬件,事情很好處理。問題是第三方設備自有的驅動程序也要轉換。但蘋果認為事情沒那么難。蘋果在參考文件中表示:“身為驅動程序開發者,你必須更新你的驅動程序到64位二進位碼。所幸…許多驅動程序在編譯程序設定變更后,還是有用。”
這一切聽起來似乎非常低層次,但對程序設計師而言,蘋果的層次已屬最高了。那可以是一項有利的資產,因為許多有意采用平行程序設計的單位,其需求通常遠超過多數程序設計師愿意或能夠處理的層次。但吸引程序設計師才是關鍵。畢竟,GCD和OpenCL等蘋果的深層技術計劃,只有在其他開發者愿意使用的情況下,才有可能成功。
【編輯推薦】