如果您一直在關注我寫的有關異構計算的系列博客,應該記得我之前解釋過為什么新興應用需要異構計算,為什么處理器多樣化很重要。而在最近的博客中,我解釋了采用系統級方式運用異構計算的重要性。然而,要想真正充分釋放異構計算的潛能,除了出色的硬件,還需要很棒的軟件和工具。那么,下一個問題自然是:開發者如何利用異構計算? 美國高通技術公司在近期的一次網絡研討會上論述了這個問題,總結了我們為移動異構計算提供的軟件,包括訪問多種處理核心的不同方式。我從網絡研討會得出的兩個要點是: • 美國高通技術公司提供全面的異構計算軟件解決方案滿足開發者的多種需求 • 異構計算目前正廣泛存在于各種應用程序中 全面的異構計算軟件解決方案 開發者在訪問一個異構計算系統的多種處理核心時有著不同需求。一種極端情況是,一些精通編程和處理器架構的開發者希望能夠深度優化某種特定處理核心的算法。另一種極端是,一些開發者更希望基礎處理器架構被剔除掉,只留下容易操作的高級函數調用和應用程序接口(API)。 如下圖所示,美國高通技術公司為開發者提供訪問驍龍處理器內多種異構核心的渠道分為三個級別:域庫、新興行業環境和本地訪問。 對于那些希望利用異構計算的益處、又想避免進行處理核心精確編程的開發者來說,美國高通技術公司為不同處理核心優化了許多域庫。“域庫”旨在向應用開發者提供常見用戶體驗所需的關鍵功能。例如,FastCV能加快如實時計算機視覺(CV)應用所需的人臉檢測等關鍵功能。美國高通技術公司優化了FastCV的各種功能,讓這些功能在適合的處理核心上運行,比如使某些功能在CPU、VeNum、GPU或DSP上運行,實現以最低的功耗提供最高的性能。事實上,內部測試顯示,某些FastCV功能的性能提升了51倍。 對于那些在不同處理核心之間尋求一致編程環境的開發者,美國高通技術公司提供RenderScript和OpenCL等新興行業環境。事實上,美國高通技術公司在所有Adreno 3xx GPU上都支持OpenCL,涵蓋從大眾市場層級到最高層級的驍龍處理器。 對于那些熟悉基礎處理器架構并希望從硬件中“榨取”最大性能和功率效率的專家級開發者,美國高通技術公司提供本地訪問處理核心的幾種工具:例如用于DSP的Hexagon軟件開發工具包(SDK);用于CPU的驍龍LLVM;以及用于GPU的Adreno軟件開發工具包。“本地訪問”是一種編程模型,它最小化地從不同處理核心的指令集架構中提取內容,讓開發者能夠最大限度地接近硬件。對于需要特定處理核心的全功率和專用功能的高強度計算來說,這種訪問級別十分必要。美國高通技術公司通過本地訪問構建優化的新興行業環境和域庫。 此外,美國高通技術公司還為開發者提供全面的工具、手冊和參考代碼,讓異構計算編程變得更加容易。 異構計算正在進行時 借助在系統架構和軟件領域的專業技術,美國高通技術公司通過對關鍵功能進行系統級編程,充分利用異構計算的優勢,從而在異構計算方面樹立領先地位。OEM廠商和獨立軟件開發商(ISV)還利用異構計算提供關鍵的差異化性能。 此外,網絡研討會還得出一個重要結論:許多開發者正從異構計算中受益,即便他們不知道自己正在運用異構計算。例如,Vuforia擴增實境平臺就使用FastCV。市場上目前有4000多種Vuforia應用,均采用異構計算。還有許多應用程序采用針對異構計算而優化的其他域庫。 另外,開發者也已開始意識到新興行業環境和本地訪問帶來的益處。異構計算帶來的功率和性能方面的巨大優化,我相信會有越來越多的應用程序采用該技術。 總之,美國高通技術公司正在三個關鍵領域大規模提供異構計算,具體包括:提供具有不同軟件訪問級別的綜合工具、多種處理核心,以及覆蓋大眾市場及頂級移動終端的全線產品組合。 欲了解高通關于異構計算的更多觀點,敬請關注之后的博客和研討會。 出自:高通公司 |