在大國博弈、貿易摩擦的大背景之下,反制“卡脖子”的國產化替代浪潮滾滾而來。本期內容將為大家帶來我們對GPU國產化替代的初步探索:GPU API的主要用途及國內主流GPU對這些API的支持現狀。
作者:廖長軍、仇昌棟
Part 01 ●??GPU主要用途及相關API標準?●?
本期內容探索的GPU主要用途包括:圖形渲染、計算加速、視頻編解碼。
圖形渲染:GPU可以加速三維圖形的渲染,使得復雜的三維場景可以以流暢的幀率顯示在屏幕上;也能支持多種圖形效果,如陰影、反射、抗鋸齒等,可以提高圖像的真實感和美觀度。
計算加速:GPU擁有比CPU更強的并行計算能力,可以加速各種計算密集型任務,例如對圖像進行濾波、變換等操作。
視頻編解碼:GPU可以加速視頻編解碼的過程,使得視頻的壓縮和解壓縮速度更快。GPU可以通過硬件加速的方式來處理視頻編解碼,從而減輕CPU的負擔,提高視頻處理的速度和效率。
基于這些主要用途,每個分類都有對應的API標準支持,分別是圖形渲染API標準、通用計算API標準和視頻編解碼API標準。
Part 02 ●??圖形渲染API標準?●?
GPU的圖形渲染API標準主要有:OpenGL、Vulkan、DirectX。(注意:本文中OpenGL泛指OpenGL家族相關API,包括:OpenGL、OpenGL ES、WebGL等。)
2.1 OpenGL
OpenGL(Open Graphics Library)是一種用于渲染2D和3D圖形的跨平臺圖形庫,它提供了一組功能強大的API,用于管理圖形渲染流程和圖形硬件的交互。它可以在多個操作系統和硬件平臺上運行:
Windows:OpenGL在Windows操作系統上廣泛支持,甚至Windows95也能找到OpenGL的支持。
Linux:幾乎所有的Linux發行版都支持OpenGL。
MacOS:OpenGL是MacOS的默認圖形庫。
Android:開發者可以使用OpenGL ES(OpenGL for Embedded Systems)來創建移動設備上的圖形應用程序。
iOS:與Android類似,可以通過OpenGL ES來創建iOS設備(如:iPhone、iPad等)上的圖形應用程序。
Web:在Web瀏覽器中,可以通過WebGL(Web Graphics Library)來實時渲染2D或3D圖形。WebGL是一種基于OpenGL ES的Web標準。
2.2 Vulkan
Vulkan與OpenGL一樣由Khronos Group開發,它旨在提供更高效、更可擴展的圖形和計算性能,同時保持跨平臺兼容性。相對于OpenGL,Vulkan有以下優勢:
更高的性能:Vulkan能夠更好地利用多核處理器和GPU的并行計算能力,提供更高的幀率和更低的延遲。
更好的可擴展性:Vulkan的設計允許開發者更好地管理資源和內存,并能夠更好地適應不同的硬件平臺。
更嚴格的驗證:Vulkan強制執行更嚴格的規則和驗證,以避免錯誤,提高穩定性和可靠性。
更靈活的管道:Vulkan的管道可以通過自定義擴展來適應不同的需求,從而提供更大的靈活性。
更好的跨平臺兼容性:Vulkan支持更多的操作系統,可以在各種平臺上實現更高的性能。
但也有以下劣勢:
學習曲線陡峭:開發過程需要維護更多與GPU硬件交互的細節,需要更多的時間和精力來學習和掌握。
缺乏成熟的工具和庫:相對于OpenGL,Vulkan的支持工具和庫還不夠成熟,需要更多的自行開發和定制。
更多的代碼:相對于OpenGL,Vulkan需要更多的代碼來實現相同的功能,需要更多的開發時間和勞動力。
2.3 DirectX
DirectX是微軟開發的一套多媒體編程接口,包含Direct3D、Direct2D等等多個不同用途的子部分,用于游戲開發、圖像處理等領域。它主要支持:2D渲染、3D渲染、多媒體處理、輸入輸出設備管理、網絡通信等。
相對于OpenGL與Vulkan:
DirectX只能在Windows或者Xbox系統上使用;
采用C++編程開發,不支持多語言開發;
Part 03 ●??通用計算API標準?●?
GPU的通用計算API標準主要有:OpenCL、CUDA。
3.1 OpenCL
OpenCL(Open Computing Language)是一個為異構平臺編寫程序的框架,提供了基于任務分割和數據分割的并行計算機制。OpenCL的主要功能特性如下:
并行計算:支持并行執行計算任務,使得計算速度提高。
跨平臺支持:是一個跨平臺的開發框架,可以在不同的操作系統和硬件上運行,比如:Windows、Linux、MacOS、Android等。但是,OpenCL的支持程度取決于硬件廠商和驅動程序的實現。通常,NVIDIA、AMD、Intel等主流GPU廠商在硬件以及驅動層面都提供了對OpenCL的支持,國產大部分GPU廠商也提供了對OpenGL的支持,如:摩爾線程、景嘉微、芯動科技、格蘭菲等。
多設備支持:支持多種設備,包括CPU、GPU、DSP、FPGA等。
多線程支持:支持多線程執行計算任務,可以充分利用多核CPU和GPU的性能。
動態編譯:支持動態編譯,可以根據不同的硬件環境進行優化。
內存管理:提供了內存管理功能,可以對內存進行分配、釋放、傳輸等操作。
數學庫支持:提供了數學庫支持,可以進行向量、矩陣計算等操作。
圖像處理:提供了圖像處理功能,可以進行圖像處理、濾波、變換等操作。
3.2 CUDA
CUDA(Compute Unified Device Architecture)是NVIDIA推出的一種用于GPU并行計算的平臺和編程模型。它允許開發者使用GPU來加速計算密集型應用程序,包括科學計算、深度學習、圖形處理、大規模數據分析等領域。CUDA提供了一種高效的編程模型和工具鏈,使得開發者可以充分利用GPU的并行計算能力,從而加速應用程序的運行速度。
CUDA支持的主要功能如下:
并行計算:允許程序在GPU上并行執行,從而充分利用GPU的并行計算能力。開發者可以使用CUDA C/C++語言編寫并行計算程序,或者使用CUDA工具鏈將現有的C/C++代碼轉化為CUDA代碼。
GPU加速:提供一種高效的GPU加速技術,可以將計算密集型任務移植到GPU上,從而大大提高應用程序的運行速度。
大規模數據處理:處理大規模數據,包括圖像數據、視頻數據等。開發者可以利用CUDA的并行計算能力,快速處理這些數據,從而加速應用程序的運行速度。
深度學習:提供了一種高效的深度學習平臺,可以加速深度學習模型的訓練和推理。開發者可以使用CUDA加速深度學習框架,如TensorFlow、PyTorch等。
圖形處理:加速圖形處理任務,如圖像處理、計算機視覺等。
Part 04 ●?視頻編解碼API標準?●?
基于GPU的視頻編解碼API標準主要有:OpenMAX DL、VDPAU、VA-API、NVENC/NVDEC等。
4.1 OpenMAX DL
OpenMAX是一個不需要授權、跨平臺的用來處理多媒體內容的軟件抽象層API集合。OpenMAX包含三層API:應用層(OpenMAX AL)、整合層(OpenMAX IL)、開發層(OpenMAX DL)。涉及視頻編解碼標準的API則位于OpenMAX DL。
OpenMAX DL API定義了一組低層級的多媒體內核或媒體處理API標準,包含多個方面:
a.信號處理(signal processing):通用音頻處理函數
b.圖像處理(image processing):通用圖像處理函數
c.音頻編解碼(audio coding):音頻編解碼器(MP3 解碼器和 AAC 解碼器組件)
d.圖像編解碼(image coding):圖像編解碼器(JPEG 組件)
e.視頻編解碼(video coding):視頻編解碼器(H.264 和 MP4 組件)
4.2 VDPAU
VDPAU(Video Decode and Presentation API for Unix) 是為UNIX 系統視頻解碼/顯示制定的開源的API標準。VDPAU 允許視頻程序訪問 GPU 上的專用視頻解碼組件(ASIC),以將部分視頻解碼和視頻處理過程從 CPU 調度到 GPU進行。
當前能夠通過VDPAU調度到GPU上的處理過程包括對MPEG-1、MPEG-2、H.263/MPEG-4 ASP、H.264/MPEG-4 AVC、H.265/HEVC、VC-1、WMV3、WMV9等編碼視頻的Deblocking工作。
4.3 VA-API
VA-API(Video Acceleration API)是一種允許視頻程序使用GPU提供的硬件視頻加速功能的API規范。最初由Intel為其特有GPU硬件設計,目前已不局限于Intel特定硬件,其他廠商的硬件也可以免費使用并支持這個開放API標準。
類似VDPAU,VA-API 的主要目的也是為視頻編解碼的過程中的多個環節提供硬件加速功能。VA-API主要支持的編碼格式包括:MPEG-2、H.263/MPEG-4 ASP、H.264/MPEG-4 AVC、H.265/HEVC、VC-1、VP9等。
4.4 NVENC/NVDEC
NVIDIA GPU通過獨立于 CUDA 核心的編/解碼器(對應NVENC/NVDEC)為幾種主要的編碼格式提供基于硬件的視頻編解碼加速,包括:AV1、MPEG-2、H.264/MPEG-4 AVC、H.265/HEVC、VC-1、VP8、VP9等。
Part 05 ●??國產GPU支持現狀及總結?●?
結合團隊目前調研的云VR渲染應用場景,我們重點關注國產GPU的以下方面:
虛擬化,使得一張物理GPU支持多個虛擬機。
圖形渲染算力及API支持情況。
操作系統支持,主流及國產OS。
綜合以上維度,國內最新GPU產品詳細對比如下(通用計算領域GPU除外):
綜上對比信息,MTT S3000和風華1號在云渲染領域具有較大優勢。
編輯:黃飛
評論
查看更多