vulkan 简介
vulkan是一个用于图形和计算设备的编程接口。vulkan设备通常由一个处理器和一定数量的固定功能硬件模块组成,用于加速图形和计算操作。通常,设备中的处理器是高度线程化的,所以在极大程度上vulkan里的计算模型是基于并行计算的。vulkan还可以访问运行应用程序的主处理器上的共享或非共享内存。vulkan也会给开发人员提供这个内存。
vulkan是个显式的api,也就是说,几乎所有的事情你都需要亲自负责。驱动程序是一个软件,用于接收api调用传递过来的指令和数据,并将它们进行转换,使得硬件可以理解。在老的api(例如opengl)里,驱动程序会跟踪大量对象的状态,自动管理内存和同步,以及在程序运行时检查错误。这对开发人员非常友好,但是在应用程序经过调试并且正确运行时,会消耗宝贵的cpu性能。vulkan解决这个问题的方式是,将状态跟踪、同步和内存管理交给了应用程序开发人员,同时将正确性检查交给各个层进行代理,而要想使用这些层必须手动启用。这些层在正常情况下不会在应用程序里执行。
由于这些原因,vulkan难以使用,并且在一定程度上很不稳定。你需要做大量的工作来保证vulkan运行正常,并且api的错误使用经常会导致图形错乱甚至程序崩溃,而在传统的图形api里你通常会提前收到用于帮助解决问题的错误消息。以此为代价,vulkan提供了对设备的更多控制、清晰的线程模型以及比传统api高得多的性能。
另外,vulkan不仅仅被设计成图形api,它还用作异构设备,例如图形处理单元(graphics processing unit,gpu)、数字信号处理器(digital signal processor,dsp)和固定功能硬件。功能可以粗略地划分为几类。vulkan的当前版本定义了传输类别——用于复制数据;计算类别——用于运行着色器进行计算工作;图形类别——包括光栅化、图元装配、混合、深度和模板测试,以及图形程序员所熟悉的其他功能。
vulkan设备对每个分类的支持都是可选的,甚至可以根本不支持图形。因此,将图像显示到适配器设备上的api(这个过程叫作展示)不但是可选择的功能,而且是扩展功能,而不是核心api。
vulkan 特征
同 opengl® 一样,vulkan™ 也由 khronos 集团开发。它是 amd mantle 的后续版本,继承了前者强大的低开销架构,使软件开发人员能够全面获取 radeon™ gpu 与多核 cpu 的性能、效率和功能。
相对于 opengl,vulkan™ 大幅降低了cpu 在提供重要特性、性能和影像质量时的“api 开销” (cpu 在分析游戏的硬件需求时所执行的后台工作),而且可以使用通常通过 opengl 无法访问的 gpu 硬件特性。
独特的跨 os 支持
vulkan™ 能够支持深入硬件底层的控制,为 windows® 7、windows® 8.1、windows® 10 和 linux® 带来更快的性能和更高的影像质量。vulkan™api 还提供超高的 os 兼容性、渲染特性和硬件效率。
自动兼容 gcn 架构
目前只有基于gcn架构 的radeon™显卡拥有强大的“异步计算”功能,使显卡得以并行处理3d几何图形与计算工作量。例如,当游戏需要同时计算复杂照明与渲染人物时,这种功能就找到了用武之地。这些任务并不需要在radeon™ 显卡上串行运行,因此可以节约时间、提升整体帧速率。现在,设计vulkan应用的游戏开发者可以在所有近期版本的windows和linux系统中利用这种独特硬件特性。
高德红外黄立:锻造红外科技领军人才团队,研发人员达1800余人
淘汰还是新生?关于机器人换人的思考
台积电第二代 5nm 工艺性能提升水平有望高于预期
氮化镓功率芯片:革命性的半导体技术
GTEM小室在电磁兼容测试中的应用
Vulkan编程接口的特征
美国5G发展竞赛输中国?全球5G发展现状
旁路电容和去耦电容的差异在哪?
OPPOR1S拆解 看下这款手机内部做工如何
IDT推出双通道RF至IF混频器IDT F1150
Google已删除了被Joker恶意软件感染的17个应用程序
基于AT89C55单片机和PCA82C250实现分布式通信网络的设计
基于STM32F103C8T6单片机的智能疫苗箱
安徽十三五:新能源发展战略规划
全国产EtherCAT运动控制边缘控制器(四):轴参数配置与单轴运动PC上位机C++控制
三轴按键试验机:原理、应用与性能分析
针对UltraScale/UltraScale+芯片DFX应考虑的因素有哪些(1)
制造过程监测中多传感器测量与数据融合技术的综述
ADXRS453BEYZ 工业、仪表仪器和高振动环境中稳定应用的角速率传感器(陀螺仪)的中文资料
多谐振荡器双闪灯电路设计与制作