異質架構的嵌入式運算正快速成為事實。今天,我們確實已經看到許多領先的IP與半導體業者正在開發異質運算的硬件。在本文中,將說明異質運算的一種典型使用案例,以及邁向異質的編程模型時會面臨的挑戰。 圖一:利用多個異質硬件與軟件元件來建置支持美化功能的視訊錄像應用程序。 CPU還可用來決定臉部哪里些部位的膚色,然后GPU會利用雙線性過濾器來使這些紋理變得更為平滑,并移除斑點和皺紋等假影(artefact),同時保留臉部輪廓的銳利度。 轉換過的影像序列會被同時輸出到硬件編碼器以及顯示的子系統,前者是用來錄制到硬盤,而后者是在預覽視窗中進行渲染。若要額外的最佳化處理,CPU會指示硬件編碼器以比背景還高的逼真度來編碼臉部的多個座標,便能同時最佳化視訊質量與檔案大小。在此案例中,至少會有5個不同的硬件元件需存取存儲器中的影像資料。 存儲器帶寬的限制 許多SoC的一個重要特性是具備單一的統一系統存儲器,象是芯片外部的DDR DRAM,而此外部存儲器會被所有硬件元件所共享。這些元件通常會利用一個共享的匯流排或互連架構與其它的元件和存儲器進行通訊,而此匯流排和互連架構的帶寬由于考慮建置面積和成本,通常是非常有限的。 圖二:行動嵌入式SoC的存儲器帶寬較桌上型計算機低了許多。 與配備PCI Express匯流排的桌上型計算機等級的裝置相比,SoC的帶寬通常會少了10倍,這是常見的效能瓶頸 ─ 在多個硬件元件都想要同時存取存儲器和其它I/O的案例中更是如此。 此外,當應用程序將資料的所有權在不同的硬件元件間傳遞時,底層的操作系統會在存儲器中產生重復的資料復本。在某些案例下,這可能是由于硬件的限制所造成,例如,GPU必須存取CPU配置在虛擬存儲器中的資料,而此虛擬存儲器是CPU可任意在硬盤中編頁的空間。 在其它的案例中,這可能是與影像格式有關;例如,ISP是以YUV格式來產生影像傳感器資料,但是CPU或GPU需要在RGB色彩空間中過濾此資料。 相反地,有些操作系統象是Android,能在將資料提供給開發人員之前自動把影像從YUV格式轉換到RGB格式(例如:OGLES_TEXTURE_2D紋理);對許多僅需要處理影像亮度資料的視覺算法來說,這會降低它們的效率。當以視訊速率處理高分辨率影像資料時,這些幕后資料復本所導致的效率低落會變得更為嚴重。 為了解決這些問題,并協助開發人員開發高效能、低功耗的異質運算應用程序,Imagination已發表了專為SoC設計人員、OEM業者與開發人員所提供的影像架構。本文中所討論的特性在OpenCL驅動程序中都能完整支持,而目前市場上多款的行動平臺均已內建了OpenCL驅動程序。 Imagination的PowerVR影像架構能讓開發人員利用精致的影像資料操作來打造各種新的使用者體驗,從智能視覺系統、到擴增實境應用以及虛擬人物建立等等。設計人員可發揮無窮的創造力,唯一的限制只在于手機的處理能力了! |