![]() ![]() ![]() cl_khr_external_memory-Imports external memory from other APIs. ![]() They have a similar design to the Vulkan external memory extension VK_KHR_external_memory. These extensions add the ability to create OpenCL memory objects from OS-specific memory handles. cl_khr_external_semaphore_win32-Shares external semaphores using win32 NT and KMT handles with reference transference, similar to VK_KHR_external_semaphore_win32.cl_khr_external_semaphore_opaque_fd-Shares external semaphores using Linux fd handles with reference transference, similar to VK_KHR_external_semaphore_fd.The following extensions extend cl_khr_external_semaphore with handle-type-specific behavior: cl_khr_external_semaphore-Extends cl_khr_semaphore with mechanisms for importing and exporting external semaphores, similar to VK_KHR_external_semaphore.cl_khr_semaphore-Represents semaphores with wait and signal.This set of extensions adds the ability to create OpenCL semaphore objects from OS-specific semaphore handles. The OpenCL new external semaphore and memory sharing functionality includes separate sets of carefully structured extensions. Vulkan interop is available today, and additional APIs, such as DirectX 12, are planned. Interoperability relationship between OpenCL and Vulkan softwareĮxternal API-specific interop extensions can then be added to handle the details of interacting with specific APIs. OpenCL then uses those semaphores to synchronize the external runtime, coordinating the use of shared memory.įigure 1. This set of new external memory and semaphore sharing extensions provide a generic framework that enables OpenCL to import external memory and semaphore handles exported by external APIs, using a methodology that will be familiar to Vulkan developers. The extensions enable applications to efficiently share data between OpenCL and APIs such as Vulkan, with significantly increased flexibility compared to previous-generation interop APIs using implicit resources. NVIDIA has closely worked with the Khronos OpenCL Working Group to release a set of provisional cross-vendor KHR extensions. Interop between OpenCL and Vulkan has been in strong demand for both mobile and desktop platforms. Until now, there have been no OpenCL extensions to enable external memory and semaphore sharing with this new class of API. New generation GPU APIs such as Vulkan use explicit references to external memory together with semaphores to coordinate access to shared resources. OpenCL has long enabled the sharing of implicit buffer and image objects with OpenGL, OpenGL ES, EGL, Direct3D 10, and Direct3D 11 through extensions: The need for a new way to interopĭevelopers often use OpenCL for compute together with other APIs, such as OpenGL, to access functionality including graphics rendering. We include downloadable sample code so you can try this new functionality today. This post gives you a tour of the new style of OpenCL interop, which is already supported in the latest NVIDIA drivers. OpenCL is evolving the way it can interoperate with other APIs, such as Vulkan. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |