Vulkan

绘图应用程序接口
收藏
0有用+1
0
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.3.280.0
支持平台
WindowsLinuxAndroid
发表时间
2015年

特性介绍

播报
编辑
O说台penGL已经发展了25年以上,并不断满足行业需求,但是现已经逐渐满足不了行业的需要。
GPU的可编程性越来越强,越来越多的平台开始支持加速图形,计算,视觉和深度学习。灵活性和可移植性变得很重要。
Vulkan logo
性能上,OpenGL也不能充分发挥现代CPU多核多线程的性能优势。
为了解决上述问题,行业对新一代GPU API的提出了更高的要求:
  • Explicit(明确、透明)
    • GPU driver做更少的事情,把更多的控制权交给开发者
  • Streamlined(精简)
    • 更快的性能,更低的开销,更少的延迟
  • Portable(可移植)
    • 云端,桌面,游戏主机,移动设备以及嵌入式设备
  • Extensible (可扩展)
    • 支持新功能的扩展,推动行业技术进步
以下是Vulka悼拘n相对于上一代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]

支持显卡

播报
编辑
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]