Der grafische Standard Vulkan 1.3 wurde veröffentlicht

Nach zwei Jahren Arbeit hat das Konsortium Khronos, das sich mit der Entwicklung grafischer Standards befasst, die Spezifikation Vulkan 1.3 veröffentlicht, die die API fĂŒr den Zugriff auf grafische und rechnerische FĂ€higkeiten von GPUs definiert. Die neue Spezifikation umfasst die in zwei Jahren gesammelten Korrekturen und Erweiterungen. Es wird festgestellt, dass die Anforderungen der Spezifikation Vulkan 1.3 auf GrafikgerĂ€te der Klasse OpenGL ES 3.1 ausgelegt sind, was die UnterstĂŒtzung der neuen grafischen API auf allen GPUs, die Vulkan 1.2 unterstĂŒtzen, ermöglichen wird. Das Vulkan SDK-Toolset wird fĂŒr Mitte Februar geplant veröffentlicht. Neben der Hauptspezifikation werden zusĂ€tzliche Erweiterungen fĂŒr mobile und Desktop-GerĂ€te der Mittel- und Oberklasse angeboten, deren UnterstĂŒtzung im Rahmen der Ausgabe „Vulkan Milestone“ erfolgen wird.

Gleichzeitig wurde ein Plan zur Implementierung der UnterstĂŒtzung der neuen Spezifikation und zusĂ€tzlicher Erweiterungen in Grafikkarten und GerĂ€tetreibern vorgestellt. Produkte mit UnterstĂŒtzung fĂŒr Vulkan 1.3 werden von den Unternehmen Intel, AMD, ARM und NVIDIA vorbereitet. So hat AMD angekĂŒndigt, bald die UnterstĂŒtzung von Vulkan 1.3 in der Serie der AMD Radeon RX Vega-Grafikkarten sowie in allen Karten auf Basis der AMD RDNA-Architektur bereitzustellen. NVIDIA plant die Veröffentlichung von Treibern mit UnterstĂŒtzung fĂŒr Vulkan 1.3 fĂŒr Linux und Windows. ARM wird die UnterstĂŒtzung fĂŒr Vulkan 1.3 in GPU Mali hinzufĂŒgen.

Hauptneuheiten:

  • Die UnterstĂŒtzung fĂŒr vereinfachte Render-Pass-ÜbergĂ€nge (Streamlining Render Passes, VK_KHR_dynamic_rendering) wurde implementiert, die es ermöglichen, das Rendering zu beginnen, ohne Render-Pass und Framebuffer-Objekte zu erstellen.
  • Neue Erweiterungen wurden hinzugefĂŒgt, um die Verwaltung der Kompilierung des Grafik-Pipelines (Pipeline, eine Reihe von Operationen, die vektorbasierte grafische Primitiven und Texturen in eine pixelbasierte Darstellung umwandeln) zu vereinfachen.
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 – fĂŒgen zusĂ€tzliche dynamische ZustĂ€nde hinzu, um die Anzahl der kompilierten und angehĂ€ngten Zustand-Objekte zu reduzieren.
    • VK_EXT_pipeline_creation_cache_control – bietet erweiterte Werkzeuge fĂŒr die Verwaltung, wann und wie Pipelines kompiliert werden.
    • VK_EXT_pipeline_creation_feedback – liefert Informationen ĂŒber kompilierte Pipelines zur Vereinfachung des Profilings und Debuggings.
  • Eine Reihe von Optionen wurden von optional auf obligatorisch umgestellt. Beispielsweise sind nun die Implementierung von Pufferadressen (VK_KHR_buffer_device_address) und das Vulkan-Speichermodell, das definiert, wie parallel ausgefĂŒhrte Threads auf gemeinsam genutzte Daten und Synchronisationsoperationen zugreifen können, verpflichtend.
  • Es wurden Mittel zur genauen Steuerung von Untergruppen (VK_EXT_subgroup_size_control) bereitgestellt, mit denen Hersteller die UnterstĂŒtzung mehrerer UntergruppengrĂ¶ĂŸen anbieten können, wĂ€hrend Entwickler die erforderliche GrĂ¶ĂŸe auswĂ€hlen können.
  • Die Erweiterung VK_KHR_shader_integer_dot_product wurde bereitgestellt, die zur Optimierung der Leistung von Machine-Learning-Frameworks mithilfe der Hardwarebeschleunigung von Skalarproduktoperationen verwendet werden kann.
  • Insgesamt sind 23 neue Erweiterungen enthalten:
    • 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
  • Ein neuer Objekttyp VkPrivateDataSlot wurde hinzugefĂŒgt. Es wurden 37 neue Befehle und ĂŒber 60 Strukturen implementiert.
  • Die Spezifikation von SPIR-V 1.6 wurde aktualisiert, die eine plattformunabhĂ€ngige ZwischenreprĂ€sentation von Shadern definiert, die sowohl fĂŒr Grafik- als auch fĂŒr parallele Berechnungen verwendet werden kann. SPIR-V sieht die Bereitstellung einer separaten Phase fĂŒr die Kompilierung von Shadern in eine ZwischenreprĂ€sentation vor, was die Erstellung von Frontends fĂŒr verschiedene Hochsprachen ermöglicht. Basierend auf verschiedenen Hochimplementierungen wird ein einheitlicher Zwischencode generiert, der von OpenGL-, Vulkan- und OpenCL-Treibern ohne eingebauten Shader-Compiler verwendet werden kann.
  • Es wurde das Konzept von KompatibilitĂ€tsprofilen vorgeschlagen. Google hat das Basisprofil (baseline profile) fĂŒr die Android-Plattform erstellt, um die Bestimmung des UnterstĂŒtzungsniveaus erweiterter Vulkan-FunktionalitĂ€ten zu erleichtern, die ĂŒber die Vulkan 1.0-Spezifikation hinausgehen. FĂŒr die meisten GerĂ€te kann die UnterstĂŒtzung des Profils ohne OTA-Updates gewĂ€hrleistet werden.

Wir erinnern daran, dass die Vulkan-API durch die radikale Vereinfachung von Treibern, die Auslagerung der GPU-Befehlsgenerierung auf die Anwendungsseite, die Möglichkeit zur Einbindung von Debugging-Schichten, die Vereinheitlichung der API fĂŒr verschiedene Plattformen und die Verwendung von vorcompilierter, zwischenzeitlicher Code-Darstellung zur AusfĂŒhrung auf der GPU bemerkenswert ist. Um eine hohe Leistung und Vorhersagbarkeit zu gewĂ€hrleisten, bietet Vulkan den Anwendungen Mittel zur direkten Steuerung von GPU-Operationen und unterstĂŒtzt eingebautes Multithreading fĂŒr GPU-Befehle, was die vom Treiber verursachten Overheads minimiert und die im Treiber realisierbaren FĂ€higkeiten deutlich vereinfacht und vorhersehbarer macht. Beispielsweise sind solche Operationen wie das Speichermanagement und die Fehlerverarbeitung, die in OpenGL auf der Treiberseite realisiert sind, in Vulkan auf die Anwendungs-Ebene verlagert worden.

Vulkan deckt alle verfĂŒgbaren Plattformen ab und bietet eine einheitliche API fĂŒr Desktop-, mobile Systeme und das Web, sodass ein gemeinsamer API fĂŒr verschiedene Grafikkarten und Anwendungsbereiche genutzt werden kann. Dank der mehrschichtigen Architektur von Vulkan, die die Erstellung von Tools umfasst, die mit beliebigen GPUs arbeiten, können Hardware-Hersteller bei der Entwicklung Standard-Tools zur CodeĂŒberprĂŒfung, Debugging und Profiling verwenden. FĂŒr die Erstellung von Shadern wird das neue portable Intermediate Representation SPIR-V angeboten, das auf LLVM basiert und grundlegende Technologien mit OpenCL teilt. Zur Verwaltung von GerĂ€ten und Bildschirmen bietet Vulkan die WSI (Window System Integration) Schnittstelle, die ungefĂ€hr die gleichen Aufgaben wie EGL in OpenGL ES erfĂŒllt. Die UnterstĂŒtzung von WSI ist standardmĂ€ĂŸig in Wayland verfĂŒgbar – alle Anwendungen, die Vulkan verwenden, können in unmodifizierten Umgebungen gestartet werden. Server Wayland. Eine UnterstĂŒtzung ĂŒber WSI wird auch fĂŒr Android, X11 (mit DRI3), Windows, Tizen, macOS und iOS bereitgestellt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4