複製鏈接
請複製以下鏈接發送給好友

Vulkan

鎖定
Vulkan是一個跨平台的2D和3D繪圖應用程序接口API),最早由科納斯組織(Khronos Group [1]  在2015年遊戲開發者大會GDC)上發表。
科納斯最先把VulkanAPI稱為“下一代OpenGL行動”(next generation OpenGL initiative)或“glNext”, [2]  但在正式宣佈Vulkan之後這些名字就沒有再使用了。就像OpenGL,Vulkan針對實時3D程序(如電子遊戲)設計,Vulkan並計劃提供高性能和低CPU管理負擔(overhead),這也是Direct3D12和AMD的Mantle的目標。Vulkan兼容Mantle的一個分支,並使用了Mantle的一些組件。
Vulkan旨在提供更低的CPU開銷與更直接的GPU控制,其理念大致與Direct3D 12和Mantle類似。 [2-3] 
外文名
Vulkan
開發商
Khronos Group [1] 
最新版本
1.2.154.1
支持平台
Windows、LinuxAndroid
發表時間
2015年

Vulkan特性介紹

OpenGL已經發展了25年以上,並不斷滿足行業需求,但是現已經逐漸滿足不了行業的需要。
GPU的可編程性越來越強,越來越多的平台開始支持加速圖形,計算,視覺和深度學習。靈活性和可移植性變得很重要。
Vulkan logo Vulkan logo
性能上,OpenGL也不能充分發揮現代CPU多核多線程的性能優勢。
為了解決上述問題,行業對新一代GPU API的提出了更高的要求:
  • Explicit(明確、透明)
    • GPU driver做更少的事情,把更多的控制權交給開發者
  • Streamlined(精簡)
    • 更快的性能,更低的開銷,更少的延遲
  • Portable(可移植)
    • 雲端,桌面,遊戲主機,移動設備以及嵌入式設備
  • Extensible (可擴展)
    • 支持新功能的擴展,推動行業技術進步
以下是Vulkan相對於上一代API的優勢:
  • Vulkan API適用於從高性能電腦到移動低功耗設備的顯卡(OpenGL具有名為OpenGL ES的移動設備API子集,它仍是支持Vulkan設備的備選API)。
  • 相比於Direct3D 12,Vulkan與前身OpenGL類似,受多種操作系統支持。Vulkan已經能在Windows 7、Windows 8、Windows 10、Tizen、Linux與Android上運行(iOS和macOS有第三方支持)。
  • 通過批量處理(Batching)減少CPU負載,使CPU可以執行更多其他的計算或渲染任務。
  • 在多核心CPU上,Vulkan能對核心與線程進行優化。Direct3D 11與OpenGL 4最初為單核心CPU設計,儘管後來出現了針對多核心CPU優化的擴展,不過與Vulkan相比,優化仍不是很好。
  • 減少了驅動程序的開銷與維護工作。OpenGL使用高級着色語言GLSL編寫着色器,不同的驅動在程序運行時需要執行自身的GLSL編譯器,將程序的着色器轉換為GPU可執行的機器代碼。而Vulkan驅動將着色器語言預先轉化為SPIR-V(Standard Portable Intermediate Representation)的中間二進制格式,其行為類似於Direct3D的HLSL着色器。通過着色器預編譯,應用程序加載速度更快,並且3D場景可以使用更多種着色器。Vulkan驅動只需對GPU進行優化並生成代碼,這使得驅動程序更容易維護,驅動程序包更小(GPU供應商仍需在驅動程序中提供OpenGL與OpenCL的支持)。
  • 計算與圖形處理的統一管理,因此Vulkan無需與單獨的計算API配合使用。
英偉達指出,由於OpenGL的複雜度和維護難度比Vulkan低很多,在多數情況下也能提供理想的整體性能,現階段OpenGL仍是個很好的選擇。 AMD表示, Vulkan支持Close-To-Metal控制的獨特能力可加快跨 Windows和 Linux的性能並且提高影像質量。現今無其他圖形 API 提供如此強大的操作系統兼容性、成像功能和硬件效率組合 。 例如,CPU中包含的集成GPU可與高端專用GPU結合使用,以略微提高性能。
Vulkan 1.1
科納斯在SIGGRAPH2016上宣佈Vulkan將支持自動多GPU功能,類似於Direct3D 12所提供的功能,顯示驅動程序不再需要處理多個GPU的使用,相反,兩個或更多完全不同的GPU之間可以智能地分配工作負載。
科納斯於2018年3月7日發佈了Vulkan 1.1。它擴展了幾個核心功能,包括子集操作,例如多視圖、設備組、高級渲染和編輯操作程序跨流程API交互操作。這些核心功能還包括16位內存獲取高級計算,HLSL內存分佈支持,視頻流的顯示,處理和編程,通過許多視頻編輯解碼器生成的YCbcRr顏色格式化紋理的直接抽樣。同時,它還帶來了與DirectX 12的更好兼容性,顯式支持多GPU,光線跟蹤支持,為下一代GPU奠定了基礎。
vulkan 1.2
2020年1月15日,科納斯組織發佈了Vulkan 1.2,將23個已經通過驗證的擴展集成到基本Vulkan標準中[35],大部分用來幫助提升Vulkan與其他圖形API之間的兼容層性能。
計劃中的功能
科納斯在SIGGRAPH 2016上宣佈,Vulkan將提供類似於Direct3D 12的多卡互聯功能。通過Vulkan,不同型號的顯卡也能協同工作,而無需NVIDIA SLI或AMD Crossfire的支持。Vulkan多卡互聯功能允許API在多個不同的顯卡之間智能分配負載,例如,CPU上的集成顯卡與高端獨立顯卡協同工作,能夠略微提升顯示性能
OpenCL 2.2規範發佈時,科納斯宣佈OpenCL將在未來融入Vulkan。
獨特的跨 OS 支持
Vulkan™ 能夠支持深入硬件底層的控制,為 Windows® 7、Windows® 8.1、Windows® 10 和 Linux® [4]  帶來更快的性能和更高的影像質量。Vulkan™ API 還提供超高的 OS 兼容性、渲染特性和硬件效率。 [4] 
Android 7.0 開發者預覽版開始,Google便在系統平台中添加了對Vulkan的API支持。 [1] 
自動兼容 GCN 架構
只有基於GCN架構 的Radeon™ 顯卡擁有強大的“異步計算”功能,使顯卡得以並行處理3D幾何圖形與計算工作量。例如,當遊戲需要同時計算複雜照明與渲染人物時,這種功能就找到了用武之地。這些任務並不需要在Radeon™ 顯卡上串行運行,因此可以節約時間、提升整體幀速率。設計Vulkan應用的遊戲開發者可以在所有近期版本的Windows和Linux系統中利用這種獨特硬件特性。 [4] 

Vulkan支持顯卡

AMD Radeon Software Crimson 版 16.3 及更新版本在 Windows® 7、Window® 8.1、Windows® 10 和 Linux® 中支持基於次世代圖形核心架構的以下 AMD APU 和 Radeon™ 顯卡: [4] 
  • AMD Radeon™ R9 系列顯卡
  • AMD Radeon™ R7 系列顯卡
  • AMD Radeon™ R5 240 顯卡
  • AMD Radeon™ HD 8000 系列 OEM 系統顯卡(HD 8570 及更高級別)
  • AMD Radeon™ HD 8000M 系列筆記本顯卡
  • AMD Radeon™ HD 7000 系列顯卡(HD 7730 及更高級別)
  • AMD Radeon™ HD 7000M 系列筆記本顯卡(HD 7730M 及更高級別)
  • AMD A4/A6/A8/A10-7000 系列 APU
  • AMD A6/A8/A10 PRO-7000 系列 APU
  • AMD A6/A8/A10/FX™ 8000 系列 APU
  • AMD E1/A4/A10 Micro-6000 系列 APU
  • AMD E1/E2/A4/A6/A8-6000 系列 APU
  • AMD A4-1200、A4-1300 和 A6-1400 系列 APU
  • AMD E1-2000、E2-3000、A4-5000、A6-5000 和 A4 Pro-3000 系列 APU [4] 
參考資料