Grafische standaard Vulkan 1.3 gepubliceerd

Na twee jaar werk heeft het Khronos-consortium, dat verantwoordelijk is voor de ontwikkeling van grafische standaarden, de specificatie van Vulkan 1.3 gepubliceerd, die de API definieert voor toegang tot de grafische en rekencapaciteiten van GPU's. De nieuwe specificatie bevat de correcties en uitbreidingen die in de afgelopen twee jaar zijn verzameld. Er wordt opgemerkt dat de vereisten van de Vulkan 1.3-specificatie zijn bedoeld voor grafische hardware van het niveau OpenGL ES 3.1, wat ervoor zal zorgen dat de ondersteuning voor de nieuwe grafische API mogelijk is op alle GPU's die Vulkan 1.2 ondersteunen. Het Vulkan SDK wordt verwacht medio februari te worden gepubliceerd. Naast de hoofd specificatie zijn er aanvullende uitbreidingen gepland voor mobiele en desktopapparaten van middelmatige en hoge klasse, waarvan de ondersteuning zal worden aangeboden binnen de editie 'Vulkan Milestone'.

Tegelijkertijd is er een plan gepresenteerd voor de implementatie van ondersteuning voor de nieuwe specificatie en aanvullende uitbreidingen in grafische kaarten en apparaatdrijvers. Producten met ondersteuning voor Vulkan 1.3 worden voorbereid door bedrijven zoals Intel, AMD, ARM en NVIDIA. Bijvoorbeeld, het bedrijf AMD heeft aangekondigd binnenkort ondersteuning voor Vulkan 1.3 te bieden in de serie grafische kaarten AMD Radeon RX Vega, evenals in alle kaarten die zijn gebaseerd op de AMD RDNA-architectuur. Het bedrijf NVIDIA is van plan om drijvers met ondersteuning voor Vulkan 1.3 voor Linux en Windows te publiceren. Het bedrijf ARM zal ondersteuning voor Vulkan 1.3 toevoegen aan de Mali GPU.

Belangrijkste vernieuwingen:

  • Ondersteuning is gerealiseerd voor gestroomlijnde renderdoorlopen (Streamlining Render Passes, VK_KHR_dynamic_rendering), waardoor het mogelijk is om te beginnen met renderen zonder renderdoorlopen en framebufferobjecten aan te maken.
  • Nieuwe uitbreidingen zijn toegevoegd voor het vereenvoudigen van het beheer van de compilatie van de grafische pipeline (pipeline, een set operaties die vector grafische primitieven en texturen omzetten in een pixelrepresentatie).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 — voegen extra dynamische toestanden toe om het aantal te compileren en toe te passen toestandsobjecten te verminderen.
    • VK_EXT_pipeline_creation_cache_control — biedt geavanceerde tools voor het beheren van wanneer en hoe pipelines worden gecompileerd.
    • VK_EXT_pipeline_creation_feedback — biedt informatie over gecompileerde pipelines ter vereenvoudiging van profilering en debugging.
  • Een aantal mogelijkheden zijn verplaatst van optioneel naar verplicht. Bijvoorbeeld, de implementatie van bufferadressen (VK_KHR_buffer_device_address) en het geheugenmodel van Vulkan, dat bepaalt hoe parallel uitgevoerde threads toegang hebben tot gedeelde gegevens en synchronisatie-operaties, is nu verplicht.
  • Er zijn middelen voor nauwkeurige controle over subgroepen (VK_EXT_subgroup_size_control) geleverd, waarmee fabrikanten ondersteuning voor meerdere subgroepgroottes kunnen bieden, en ontwikkelaars de vereiste grootte kunnen kiezen.
  • De extensie VK_KHR_shader_integer_dot_product is geĆÆntroduceerd, die kan worden gebruikt om de werking van machine learning-frameworks te optimaliseren door hardwareversnelling van scalairproductoperaties.
  • In totaal zijn er 23 nieuwe extensies geĆÆntroduceerd:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_maintenance4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_synchronization2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • Er is een nieuw type objecten VkPrivateDataSlot toegevoegd. 37 nieuwe commando's en meer dan 60 structuren zijn geĆÆmplementeerd.
  • De specificatie SPIR-V 1.6 is bijgewerkt, die een universele tussenrepresentatie van shaders voor alle platforms definieert en kan worden toegepast op zowel graphics als parallelle berekeningen. SPIR-V voorziet in een aparte fase voor de compilatie van shaders naar de tussenrepresentatie, wat het mogelijk maakt om frontends voor verschillende high-level talen te creĆ«ren. Op basis van verschillende high-level implementaties wordt een enkele tussenliggende code gegenereerd die kan worden gebruikt door OpenGL-, Vulkan- en OpenCL-drivers zonder de ingebouwde shadercompilator.
  • Het concept van compatibiliteitsprofielen is voorgesteld. Google heeft als eerste een basisprofiel (baseline profile) voorbereid voor het Android-platform, dat het gemakkelijker maakt om het niveau van ondersteuning voor geavanceerde Vulkan-functies, die verder gaan dan de Vulkan 1.0-specificatie, op het apparaat te bepalen. Voor de meeste apparaten kan de ondersteuning van het profiel worden gegarandeerd zonder OTA-updates.

Laten we herinneren dat de Vulkan API opvalt door de radicaal vereenvoudigde drivers, het verplaatsen van GPU-opdrachtgeneratie naar de applicatiezijde, de mogelijkheid om debug-lagen aan te sluiten, de uniformiteit van de API voor verschillende platforms, en het gebruik van voorgem compileerde tussenliggende codepresentaties voor uitvoering aan de GPU-zijde. Om hoge prestaties en voorspelbaarheid te waarborgen, biedt Vulkan applicaties middelen voor directe controle over GPU-operaties en ingebouwde ondersteuning voor multi-threaded verwerking van GPU-commando's, wat de overhead die door de driver wordt geĆÆntroduceerd minimaliseert, terwijl de mogelijkheden die door de driver worden geĆÆmplementeerd aanzienlijk worden vereenvoudigd en voorspelbaarder worden. Bijvoorbeeld, operaties zoals geheugensamenstelling en foutafhandeling, geĆÆmplementeerd in OpenGL aan de driverszijde, zijn in Vulkan naar de applicatieniveau verplaatst.

Vulkan dekt alle beschikbare platforms en biedt een enkele API voor desktop-, mobiele systemen en Web, waardoor dezelfde gemeenschappelijke API kan worden gebruikt voor verschillende grafische processors en toepassingsgebieden. Dankzij de gelaagde architectuur van Vulkan, die de creatie van tools voorziet die met elke GPU werken, kunnen hardwarefabrikanten bij de ontwikkeling gebruikmaken van standaardtools voor codeverificatie, debugging en profilering. Voor het creƫren van shaders wordt een nieuwe draagbare tussenliggende representatie, SPIR-V, voorgesteld, gebaseerd op LLVM en gebruikmakend van gemeenschappelijke basis technologieƫn met OpenCL. Voor het beheren van apparaten en schermen in Vulkan wordt de WSI (Window System Integration) interface aangeboden, die ongeveer dezelfde taken vervult als EGL in OpenGL ES. WSI-ondersteuning is direct beschikbaar in Wayland - alle applicaties die Vulkan gebruiken, kunnen worden uitgevoerd in een omgeving zonder wijzigingen. servers Wayland. De mogelijkheid om via WSI te werken is ook beschikbaar voor Android, X11 (met DRI3), Windows, Tizen, macOS en iOS.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster