Vulkan 簡介
Vulkan是一個(gè)用于圖形和計(jì)算設(shè)備的編程接口。Vulkan設(shè)備通常由一個(gè)處理器和一定數(shù)量的固定功能硬件模塊組成,用于加速圖形和計(jì)算操作。通常,設(shè)備中的處理器是高度線程化的,所以在極大程度上Vulkan里的計(jì)算模型是基于并行計(jì)算的。Vulkan還可以訪問運(yùn)行應(yīng)用程序的主處理器上的共享或非共享內(nèi)存。Vulkan也會(huì)給開發(fā)人員提供這個(gè)內(nèi)存。
Vulkan是個(gè)顯式的API,也就是說,幾乎所有的事情你都需要親自負(fù)責(zé)。驅(qū)動(dòng)程序是一個(gè)軟件,用于接收API調(diào)用傳遞過來的指令和數(shù)據(jù),并將它們進(jìn)行轉(zhuǎn)換,使得硬件可以理解。在老的API(例如OpenGL)里,驅(qū)動(dòng)程序會(huì)跟蹤大量對象的狀態(tài),自動(dòng)管理內(nèi)存和同步,以及在程序運(yùn)行時(shí)檢查錯(cuò)誤。這對開發(fā)人員非常友好,但是在應(yīng)用程序經(jīng)過調(diào)試并且正確運(yùn)行時(shí),會(huì)消耗寶貴的CPU性能。Vulkan解決這個(gè)問題的方式是,將狀態(tài)跟蹤、同步和內(nèi)存管理交給了應(yīng)用程序開發(fā)人員,同時(shí)將正確性檢查交給各個(gè)層進(jìn)行代理,而要想使用這些層必須手動(dòng)啟用。這些層在正常情況下不會(huì)在應(yīng)用程序里執(zhí)行。
由于這些原因,Vulkan難以使用,并且在一定程度上很不穩(wěn)定。你需要做大量的工作來保證Vulkan運(yùn)行正常,并且API的錯(cuò)誤使用經(jīng)常會(huì)導(dǎo)致圖形錯(cuò)亂甚至程序崩潰,而在傳統(tǒng)的圖形API里你通常會(huì)提前收到用于幫助解決問題的錯(cuò)誤消息。以此為代價(jià),Vulkan提供了對設(shè)備的更多控制、清晰的線程模型以及比傳統(tǒng)API高得多的性能。
另外,Vulkan不僅僅被設(shè)計(jì)成圖形API,它還用作異構(gòu)設(shè)備,例如圖形處理單元(Graphics Processing Unit,GPU)、數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)和固定功能硬件。功能可以粗略地劃分為幾類。Vulkan的當(dāng)前版本定義了傳輸類別——用于復(fù)制數(shù)據(jù);計(jì)算類別——用于運(yùn)行著色器進(jìn)行計(jì)算工作;圖形類別——包括光柵化、圖元裝配、混合、深度和模板測試,以及圖形程序員所熟悉的其他功能。
Vulkan設(shè)備對每個(gè)分類的支持都是可選的,甚至可以根本不支持圖形。因此,將圖像顯示到適配器設(shè)備上的API(這個(gè)過程叫作展示)不但是可選擇的功能,而且是擴(kuò)展功能,而不是核心API。
Vulkan 特征
同 OpenGL? 一樣,Vulkan? 也由 Khronos 集團(tuán)開發(fā)。它是 AMD Mantle 的后續(xù)版本,繼承了前者強(qiáng)大的低開銷架構(gòu),使軟件開發(fā)人員能夠全面獲取 Radeon? GPU 與多核 CPU 的性能、效率和功能。
相對于 OpenGL,Vulkan? 大幅降低了CPU 在提供重要特性、性能和影像質(zhì)量時(shí)的“API 開銷” (CPU 在分析游戲的硬件需求時(shí)所執(zhí)行的后臺(tái)工作),而且可以使用通常通過 OpenGL 無法訪問的 GPU 硬件特性。
獨(dú)特的跨 OS 支持
Vulkan? 能夠支持深入硬件底層的控制,為 Windows? 7、Windows? 8.1、Windows? 10 和 Linux? 帶來更快的性能和更高的影像質(zhì)量。Vulkan?API 還提供超高的 OS 兼容性、渲染特性和硬件效率。
自動(dòng)兼容 GCN 架構(gòu)
目前只有基于GCN架構(gòu) 的Radeon?顯卡擁有強(qiáng)大的“異步計(jì)算”功能,使顯卡得以并行處理3D幾何圖形與計(jì)算工作量。例如,當(dāng)游戲需要同時(shí)計(jì)算復(fù)雜照明與渲染人物時(shí),這種功能就找到了用武之地。這些任務(wù)并不需要在Radeon? 顯卡上串行運(yùn)行,因此可以節(jié)約時(shí)間、提升整體幀速率。現(xiàn)在,設(shè)計(jì)Vulkan應(yīng)用的游戲開發(fā)者可以在所有近期版本的Windows和Linux系統(tǒng)中利用這種獨(dú)特硬件特性。
-
接口
+關(guān)注
關(guān)注
33文章
9301瀏覽量
155621 -
API
+關(guān)注
關(guān)注
2文章
1965瀏覽量
65746
發(fā)布評論請先 登錄
淘寶圖片搜索接口開發(fā)實(shí)戰(zhàn):從 CNN 特征提取到商品匹配(附避坑手冊 + 可復(fù)用代碼)
1688 多模態(tài)搜索從 0 到 1:逆向接口解析與 CLIP 特征匹配實(shí)踐
Imagination GPU 驅(qū)動(dòng)更新:新增多項(xiàng) Vulkan 與 OpenCL 擴(kuò)展支持

基于Vulkan的端側(cè)AI運(yùn)算

Imagination GPU 全面支持 Vulkan 1.4 和 Android 16

可編程電源保護(hù)電路的通信接口有哪些
DLP6500能否用Python編程進(jìn)行開發(fā),是否有API接口?
英偉達(dá)RTX 5070顯卡獲Vulkan1.4認(rèn)證
EE-39:將5V閃存與ADSP-218x接口(字節(jié)編程算法)

BQ78412應(yīng)用程序編程接口

通過DSP的mcbsp和i2c接口實(shí)現(xiàn)對AIC34芯片的操作,如何編程?
什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系
通過JTAG接口對MSP430進(jìn)行編程

特征工程實(shí)施步驟

評論