加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • Part 01●??GPU主要用途及相關(guān)API標(biāo)準(zhǔn)?●
    • Part 02●??圖形渲染API標(biāo)準(zhǔn)?●
    • Part 03●??通用計(jì)算API標(biāo)準(zhǔn)?●
    • Part 04●?視頻編解碼API標(biāo)準(zhǔn)?●
    • Part 05●??國(guó)產(chǎn)GPU支持現(xiàn)狀及總結(jié)?●
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | GPU API介紹及國(guó)產(chǎn)GPU支持現(xiàn)狀

2023/08/28
3395
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者:廖長(zhǎng)軍、仇昌棟,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心成都分公司

在大國(guó)博弈、貿(mào)易摩擦的大背景之下,反制“卡脖子”的國(guó)產(chǎn)化替代浪潮滾滾而來(lái)。本期內(nèi)容將為大家?guī)?lái)我們對(duì)GPU國(guó)產(chǎn)化替代的初步探索:GPU API的主要用途及國(guó)內(nèi)主流GPU對(duì)這些API的支持現(xiàn)狀。

Part 01●??GPU主要用途及相關(guān)API標(biāo)準(zhǔn)?

本期內(nèi)容探索的GPU主要用途包括:圖形渲染、計(jì)算加速、視頻編解碼。

圖形渲染:GPU可以加速三維圖形的渲染,使得復(fù)雜的三維場(chǎng)景可以以流暢的幀率顯示在屏幕上;也能支持多種圖形效果,如陰影、反射、抗鋸齒等,可以提高圖像的真實(shí)感和美觀度。

計(jì)算加速:GPU擁有比CPU更強(qiáng)的并行計(jì)算能力,可以加速各種計(jì)算密集型任務(wù),例如對(duì)圖像進(jìn)行濾波、變換等操作。

視頻編解碼:GPU可以加速視頻編解碼的過(guò)程,使得視頻的壓縮和解壓縮速度更快。GPU可以通過(guò)硬件加速的方式來(lái)處理視頻編解碼,從而減輕CPU的負(fù)擔(dān),提高視頻處理的速度和效率。

基于這些主要用途,每個(gè)分類都有對(duì)應(yīng)的API標(biāo)準(zhǔn)支持,分別是圖形渲染API標(biāo)準(zhǔn)、通用計(jì)算API標(biāo)準(zhǔn)和視頻編解碼API標(biāo)準(zhǔn)。

Part 02●??圖形渲染API標(biāo)準(zhǔn)?

GPU的圖形渲染API標(biāo)準(zhǔn)主要有:OpenGL、Vulkan、DirectX。(注意:本文中OpenGL泛指OpenGL家族相關(guān)API,包括:OpenGL、OpenGL ES、WebGL等。)

2.1 OpenGL

OpenGL(Open Graphics Library)是一種用于渲染2D和3D圖形的跨平臺(tái)圖形庫(kù),它提供了一組功能強(qiáng)大的API,用于管理圖形渲染流程和圖形硬件的交互。它可以在多個(gè)操作系統(tǒng)和硬件平臺(tái)上運(yùn)行:

Windows:OpenGL在Windows操作系統(tǒng)上廣泛支持,甚至Windows95也能找到OpenGL的支持。

Linux:幾乎所有的Linux發(fā)行版都支持OpenGL。

MacOS:OpenGL是MacOS的默認(rèn)圖形庫(kù)。

Android:開(kāi)發(fā)者可以使用OpenGL ES(OpenGL for Embedded Systems)來(lái)創(chuàng)建移動(dòng)設(shè)備上的圖形應(yīng)用程序。

iOS:與Android類似,可以通過(guò)OpenGL ES來(lái)創(chuàng)建iOS設(shè)備(如:iPhone、iPad等)上的圖形應(yīng)用程序。

Web:在Web瀏覽器中,可以通過(guò)WebGL(Web Graphics Library)來(lái)實(shí)時(shí)渲染2D或3D圖形。WebGL是一種基于OpenGL ES的Web標(biāo)準(zhǔn)。

2.2 Vulkan

Vulkan與OpenGL一樣由Khronos Group開(kāi)發(fā),它旨在提供更高效、更可擴(kuò)展的圖形和計(jì)算性能,同時(shí)保持跨平臺(tái)兼容性。相對(duì)于OpenGL,Vulkan有以下優(yōu)勢(shì):

更高的性能:Vulkan能夠更好地利用多核處理器和GPU的并行計(jì)算能力,提供更高的幀率和更低的延遲。

更好的可擴(kuò)展性:Vulkan的設(shè)計(jì)允許開(kāi)發(fā)者更好地管理資源和內(nèi)存,并能夠更好地適應(yīng)不同的硬件平臺(tái)。

更嚴(yán)格的驗(yàn)證:Vulkan強(qiáng)制執(zhí)行更嚴(yán)格的規(guī)則和驗(yàn)證,以避免錯(cuò)誤,提高穩(wěn)定性和可靠性。

更靈活的管道:Vulkan的管道可以通過(guò)自定義擴(kuò)展來(lái)適應(yīng)不同的需求,從而提供更大的靈活性。

更好的跨平臺(tái)兼容性:Vulkan支持更多的操作系統(tǒng),可以在各種平臺(tái)上實(shí)現(xiàn)更高的性能。

但也有以下劣勢(shì):

學(xué)習(xí)曲線陡峭:開(kāi)發(fā)過(guò)程需要維護(hù)更多與GPU硬件交互的細(xì)節(jié),需要更多的時(shí)間和精力來(lái)學(xué)習(xí)和掌握。

缺乏成熟的工具和庫(kù):相對(duì)于OpenGL,Vulkan的支持工具和庫(kù)還不夠成熟,需要更多的自行開(kāi)發(fā)和定制。

更多的代碼:相對(duì)于OpenGL,Vulkan需要更多的代碼來(lái)實(shí)現(xiàn)相同的功能,需要更多的開(kāi)發(fā)時(shí)間和勞動(dòng)力。

2.3 DirectX

DirectX是微軟開(kāi)發(fā)的一套多媒體編程接口,包含Direct3D、Direct2D等等多個(gè)不同用途的子部分,用于游戲開(kāi)發(fā)、圖像處理等領(lǐng)域。它主要支持:2D渲染、3D渲染、多媒體處理、輸入輸出設(shè)備管理、網(wǎng)絡(luò)通信等。

相對(duì)于OpenGL與Vulkan:

DirectX只能在Windows或者Xbox系統(tǒng)上使用;

采用C++編程開(kāi)發(fā),不支持多語(yǔ)言開(kāi)發(fā);

Part 03●??通用計(jì)算API標(biāo)準(zhǔn)?

GPU的通用計(jì)算API標(biāo)準(zhǔn)主要有:OpenCL、CUDA。

3.1 OpenCL

OpenCL(Open Computing Language)是一個(gè)為異構(gòu)平臺(tái)編寫程序的框架,提供了基于任務(wù)分割和數(shù)據(jù)分割的并行計(jì)算機(jī)制。OpenCL的主要功能特性如下:

并行計(jì)算:支持并行執(zhí)行計(jì)算任務(wù),使得計(jì)算速度提高。

跨平臺(tái)支持:是一個(gè)跨平臺(tái)的開(kāi)發(fā)框架,可以在不同的操作系統(tǒng)和硬件上運(yùn)行,比如:Windows、Linux、MacOS、Android等。但是,OpenCL的支持程度取決于硬件廠商和驅(qū)動(dòng)程序的實(shí)現(xiàn)。通常,NVIDIAAMD、Intel等主流GPU廠商在硬件以及驅(qū)動(dòng)層面都提供了對(duì)OpenCL的支持,國(guó)產(chǎn)大部分GPU廠商也提供了對(duì)OpenGL的支持,如:摩爾線程、景嘉微、芯動(dòng)科技、格蘭菲等。

多設(shè)備支持:支持多種設(shè)備,包括CPU、GPU、DSPFPGA等。

多線程支持:支持多線程執(zhí)行計(jì)算任務(wù),可以充分利用多核CPU和GPU的性能。

動(dòng)態(tài)編譯:支持動(dòng)態(tài)編譯,可以根據(jù)不同的硬件環(huán)境進(jìn)行優(yōu)化。

內(nèi)存管理:提供了內(nèi)存管理功能,可以對(duì)內(nèi)存進(jìn)行分配、釋放、傳輸?shù)炔僮鳌?/p>

數(shù)學(xué)庫(kù)支持:提供了數(shù)學(xué)庫(kù)支持,可以進(jìn)行向量、矩陣計(jì)算等操作。

圖像處理:提供了圖像處理功能,可以進(jìn)行圖像處理、濾波、變換等操作。

3.2 CUDA

CUDA(Compute Unified Device Architecture)是NVIDIA推出的一種用于GPU并行計(jì)算的平臺(tái)和編程模型。它允許開(kāi)發(fā)者使用GPU來(lái)加速計(jì)算密集型應(yīng)用程序,包括科學(xué)計(jì)算、深度學(xué)習(xí)、圖形處理、大規(guī)模數(shù)據(jù)分析等領(lǐng)域。CUDA提供了一種高效的編程模型和工具鏈,使得開(kāi)發(fā)者可以充分利用GPU的并行計(jì)算能力,從而加速應(yīng)用程序的運(yùn)行速度。

CUDA支持的主要功能如下:

并行計(jì)算:允許程序在GPU上并行執(zhí)行,從而充分利用GPU的并行計(jì)算能力。開(kāi)發(fā)者可以使用CUDA C/C++語(yǔ)言編寫并行計(jì)算程序,或者使用CUDA工具鏈將現(xiàn)有的C/C++代碼轉(zhuǎn)化為CUDA代碼。

GPU加速:提供一種高效的GPU加速技術(shù),可以將計(jì)算密集型任務(wù)移植到GPU上,從而大大提高應(yīng)用程序的運(yùn)行速度。

大規(guī)模數(shù)據(jù)處理:處理大規(guī)模數(shù)據(jù),包括圖像數(shù)據(jù)、視頻數(shù)據(jù)等。開(kāi)發(fā)者可以利用CUDA的并行計(jì)算能力,快速處理這些數(shù)據(jù),從而加速應(yīng)用程序的運(yùn)行速度。

深度學(xué)習(xí):提供了一種高效的深度學(xué)習(xí)平臺(tái),可以加速深度學(xué)習(xí)模型的訓(xùn)練和推理。開(kāi)發(fā)者可以使用CUDA加速深度學(xué)習(xí)框架,如TensorFlow、PyTorch等。

圖形處理:加速圖形處理任務(wù),如圖像處理、計(jì)算機(jī)視覺(jué)等。

Part 04●?視頻編解碼API標(biāo)準(zhǔn)?

基于GPU的視頻編解碼API標(biāo)準(zhǔn)主要有:OpenMAX DL、VDPAU、VA-API、NVENC/NVDEC等。

4.1 OpenMAX DL

OpenMAX是一個(gè)不需要授權(quán)、跨平臺(tái)的用來(lái)處理多媒體內(nèi)容的軟件抽象層API集合。OpenMAX包含三層API:應(yīng)用層(OpenMAX AL)、整合層(OpenMAX IL)、開(kāi)發(fā)層(OpenMAX DL)。涉及視頻編解碼標(biāo)準(zhǔn)的API則位于OpenMAX DL。

OpenMAX DL API定義了一組低層級(jí)的多媒體內(nèi)核或媒體處理API標(biāo)準(zhǔn),包含多個(gè)方面:

a.信號(hào)處理(signal processing):通用音頻處理函數(shù)

b.圖像處理(image processing):通用圖像處理函數(shù)

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 系統(tǒng)視頻解碼/顯示制定的開(kāi)源的API標(biāo)準(zhǔn)。VDPAU 允許視頻程序訪問(wèn) GPU 上的專用視頻解碼組件(ASIC),以將部分視頻解碼和視頻處理過(guò)程從 CPU 調(diào)度到 GPU進(jìn)行。

當(dāng)前能夠通過(guò)VDPAU調(diào)度到GPU上的處理過(guò)程包括對(duì)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規(guī)范。最初由Intel為其特有GPU硬件設(shè)計(jì),目前已不局限于Intel特定硬件,其他廠商的硬件也可以免費(fèi)使用并支持這個(gè)開(kāi)放API標(biāo)準(zhǔn)。

類似VDPAU,VA-API 的主要目的也是為視頻編解碼的過(guò)程中的多個(gè)環(huán)節(jié)提供硬件加速功能。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通過(guò)獨(dú)立于 CUDA 核心的編/解碼器(對(duì)應(yīng)NVENC/NVDEC)為幾種主要的編碼格式提供基于硬件的視頻編解碼加速,包括:AV1、MPEG-2、H.264/MPEG-4 AVC、H.265/HEVC、VC-1、VP8、VP9等。

Part 05●??國(guó)產(chǎn)GPU支持現(xiàn)狀及總結(jié)?

結(jié)合團(tuán)隊(duì)目前調(diào)研的云VR渲染應(yīng)用場(chǎng)景,我們重點(diǎn)關(guān)注國(guó)產(chǎn)GPU的以下方面:

虛擬化,使得一張物理GPU支持多個(gè)虛擬機(jī)。

圖形渲染算力及API支持情況。

操作系統(tǒng)支持,主流及國(guó)產(chǎn)OS。

綜合以上維度,國(guó)內(nèi)最新GPU產(chǎn)品詳細(xì)對(duì)比如下(通用計(jì)算領(lǐng)域GPU除外):

綜上對(duì)比信息,MTT S3000和風(fēng)華1號(hào)在云渲染領(lǐng)域具有較大優(yōu)勢(shì)。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ATXMEGA32A4U-AU 1 Microchip Technology Inc IC MCU 8BIT 32KB FLASH 44TQFP

ECAD模型

下載ECAD模型
$3.78 查看
ATMEGA128A-MUR 1 Microchip Technology Inc IC MCU 8BIT 128KB FLASH 64QFN
$7.34 查看
ATXMEGA192D3-MH 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, 9 X 9 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, MO-220VMMD, MLF-64
$5.62 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

移動(dòng)Labs是中國(guó)移動(dòng)的社交化新媒體平臺(tái),是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進(jìn)門戶。