用於安全關鍵型圖形、視覺和運算的開放標準加速API

作者 : Neil Trevett,Nvidia開發者生態系統副總裁暨Khronos Group總裁

20多年來,Khronos一直在致力於創建開放、免授權金的API標準,幫助軟體應用程式庫和引擎利用半導體硬體加速的動能來滿足要求苛刻的應用…

嵌入式市場對繪圖和運算加速的需求正在日益成長。相機和感測器陣列在從汽車到工業等不同產業的許多應用案例中日益重要,並且正在生成越來越多需要複雜處理的資料流程。與此同時,業界正在開發使用高品質3D圖形甚至擴增實境(AR)技術的高階使用者介面。然而,部署加速處理的需求,再加上安全關鍵型認證的複雜性,造成了處理器、加速器、編譯器、API和庫的混亂局面,同時推高了嵌入式加速器的整合成本,進而限制了創新和產品上市效率。

開放標準在協助硬體和軟體供應商駕馭這種複雜技術環境方面發揮著重要作用。嵌入式市場的加速標準,可以實現跨平台軟體的再使用性,為軟體和硬體開發鬆綁,從而能夠更輕鬆地部署和整合新元件,並提供產品跨代再使用性,提高現場升級能力。這些標準降低了成本,縮短了上市時間,並減少了在熱門的現實產品中使用推理和視   覺加速等先進技術的障礙。

Khronos加速標準

20多年來,Khronos一直在致力於創建開放、免授權金的API標準,幫助軟體應用程式庫和引擎利用半導體硬體加速的動能來滿足要求苛刻的應用,例如3D圖形、AR和虛擬實境(VR)、平行運算、視覺處理和推理等。

 

圖1:Khronos開放、免授權金的互通性標準一覽。

 

由於許多專家警告摩爾定律(Moore’s Law)即將終結,業界對平行運算的興趣越來越大。平行運算將加速的重點從提升單核心頻率轉移到大型陣列核心處理器的運用上,以實施加速資料平行算法。

廣義上來說,用於平行運算的Khronos加速標準可以分為兩組。高階程式設計框架(例如SYCL和OpenVX),專注於簡化開發,並具有跨多個硬體架構的有效性能可攜性。相比之下,OpenCL和Vulkan等低階API使用核心和著色器程式的SPIR-V中間表徵,提供對硬體資源的直接、顯式訪問,以實現最大的靈活性和控制。

 

2:Khronos系列運算加速標準系列。

 

SYCL允許使用標準C++語言,將用於異質處理器的程式碼與主機應用程式碼一起編寫在「單一來源」檔案中,並在種類廣泛的硬體上實現可攜性加速。SYCL通常會將要卸載到加速處理器上的C++應用程式部分編譯成較低等級的API,例如OpenCL。

OpenVX (VX代表視覺加速)透過連接一組函數或「節點」提供圖形等級抽象來建構成像和推理功能。高等級抽象可以協助晶片供應商最佳化OpenVX驅動程式,以便可以在幾乎任何處理器架構上高效執行。OpenVX圖形可以將視覺處理和神經網路節點相結合,以實現全域最佳化,並且可以直接吸收採用Khronos的NNEF格式的完整訓練網路,該格式為來自不同神經網路框架的開源轉換器提供了穩定的規範。

Vulkan是對現代GPU進行高效、跨平台訪問的唯一開放標準。利用運算著色器和圖形渲染,Vulkan可對任何相容GPU的運算操作實施加速。Vulkan為下一代3D圖形和運算平台的開發人員帶來諸多好處,包括更簡單的驅動程式;直接和明確的GPU控制;用於多執行緒應用程式的多個圖形、命令和DMA佇列;適合多種著色語言的離線前端編譯器。

 

圖3:Khronos安全關鍵型3D API演進。

 

OpenCL是一種低等級標準,支援對PC、伺服器、行動裝置和嵌入式裝置中的各種異質處理器(包括GPU、DSP和FPGA)進行跨平台平行程式設計。OpenCL支援基於C和C++的語言編寫核心程式,這些程式可以在系統中的任何處理器上平行編譯和執行,並明確控制哪些核心在哪些處理器上執行。透過提供更簡單的程式設計模型、相對羽量級的運作、更大的語言靈活性和更嚴格定義的運算操作精確度,OpenCL對純GPU的API進行了有效補強。

簡化功能性安全認證

在汽車、自動駕駛、醫學成像、運輸、工業、能源和航空電子設備等市場中,安全認證都至關重要。凡是運算或顯示子系統故障會帶來重大安全風險的系統,都要求通過系統級功能性安全認證,並符合相關安全標準,例如RTCADO-178C A級/EASA ED-12C A級(航空電子設備)、ISO 26262 ASIL D (汽車)、IEC 61508 (工業)和IEC 62304 (醫療),並遵守汽車產業軟體可靠性協會(MISRA)和車輛開放系統架構(AUTOSAR)等產業組織的指導準則。

這些市場對先進的加速圖形和運算的需求正在日益成長,加速器必須包含在系統級安全認證中。安全認證的高昂成本推動了開放標準加速API的開發,以簡化系統級認證過程。這些方案透過消除嵌入式領域不必要的功能,減少了API表面積,增加了運作確定性並提供了更具強建的錯誤處理能力。

從2003年的OpenGL SC 1.0算起,Khronos擁有近20年為安全關鍵型市場適時提供主流加速API的歷史。這些API都經過驗證,並得到多種出貨晶片的支援,開發人員也已經非常熟悉。

最近發佈的Vulkan SC 1.0簡化了Vulkan SC 1.2 API,並提高了運作時的確定性。Vulkan SC管線可以離線編譯和靜態分析,非常方便用來掌控資料流程和記憶體的使用情況。在建構元件時,還可以將管線執行所需的記憶體保留為固定大小的池,從而最大限度地減少總體記憶體使用量,並省去了運作時記憶體分配的需求。Vulkan SC可以協助系統設計師部署GPU加速繪圖和運算,來滿足安全關鍵型義務,並以更低的成本和工作量提供認證證據封包。即使沒有獲得正式的安全認證,對於即時嵌入式應用程式來說,這點也是非常寶貴的。

OpenVX的安全關鍵型設定檔,支援快速部署經過訓練的神經網路模型,並用OpenVX作為推理引擎,因此非常適合安全關鍵型應用。透過將OpenVX圖形的開發與其執行分開,OpenVX安全關鍵型設定檔最大限度地減少了運作時API表面積和運作的大小。這是透過讓運作時能夠理解已離線預編譯的二進位圖形定義來實現。另外,還利用功能性要求標籤號對OpenVX規範進行了注釋,並且OpenVX字頭符合MISRA C指南。

Khronos最近成立了SYCL安全關鍵型開發論壇,旨在調查在安全關鍵型應用中,利用SYCL標準C++單一來源程式設計模型,進行加速運算的通用平行程式設計API的產業需求。以硬體為中心的API設計,也越來越多地與複雜的編譯器技術融合在一起,因此在利用硬體進行運算加速的同時,也帶來了更高水準的可程式設計靈活性和可攜性。SYCL SC開發論壇尚處於探索階段,欲在開始標準化工作之前瞭解產業要求,並就產業需求達成共識。任何受邀公司加入開發論壇都是免費的,且沒有任何智慧財產權授權義務。

標準組織間協同

產業中有許多標準開發組織(SDO),每個組織都有自己的專業領域。因此,SDO之間必須建立富有成效的聯絡關係,以避免重複工作,並確保來自不同組織的標準能夠很好地協同工作。

Khronos最近宣佈與AUTOSAR全球發展夥伴關係建立了聯繫,該夥伴關係由眾多汽車製造商、供應商、業務提供商,以及來自汽車電子、半導體和軟體產業的眾多公司共同建立。合作協定鼓勵資訊的有效流動,同時尊重兩個組織的機密性和智慧財產權框架。它將協助Khronos成員接收有關AUTOSAR活動的資訊和見解,反之亦然。最終目標是讓AUTOSAR應用案例與要求指導和影響Khronos標準的發展,並促使AUTOSAR平台有效地利用這些Khronos API。

在過去兩年中,Khronos還與歐洲機器視覺協會(EMVA)密切合作,建立了Khronos相機工作小組(Khronos Camera Working Group),該工作小組目前正在建構用於控制嵌入式相機的開放標準API。

 

圖4:對開放標準相機API的需求。

 

複雜的光學系統、影像感測器和視覺處理器的發展正在加速,嵌入式系統通常會將相機感測器與影像、視覺和推理加速器緊湊整合到獨立的系統中。雖然上述Khronos API可用於視覺和推理加速,但尚缺乏經廣泛採用的、開放標準的、跨供應商的API,用來簡化新的相機子系統的軟體整合,從而導致相機技術的整合成本過高。

Khronos和EMVA成員正在設計的相機API,透過精確定義的介面,為應用程式、庫和框架提供對相機執行時間的顯式控制,這種介面支援應用程式碼的跨供應商移植,能更輕鬆地實現與新的相機和感測器系統的整合。新的API還能使應用程式碼相容多代相機和感測器,並能實現對感測器資料流程生成的複雜控制,從而提高下游處理效率。

 

圖5:開發中的Khronos相機API概覽。

 

在嵌入式產品中越來越多地使用運算、視覺和推理加速,這為市場帶來了重要的新商機。Khronos正在開發一系列不斷增加的開放、免授權金的API標準,用於滿足嵌入式和安全關鍵型領域快速發展的需求。透過在開放標準上的合作,Khronos致力於為相關公司提供一個安全的發展空間,使這些公司的業務和更廣泛的產業進而獲益。

(參考原文:Open-Standard Acceleration APIs for Safety-Critical Graphics, Vision, and Compute,by Neil Trevett)

本文同步刊登於《電子工程專輯》雜誌2022年11月號

 

 

 

加入我們官方帳號LINE@,最新消息一手掌握!

發表評論