Bindless Images
Contents
Bindless Images#
Warning
Experimental features:
May be replaced, updated, or removed at any time.
Do not require maintaining API/ABI stability of their own additions over time.
Do not require conformance testing of their own additions.
Terminology#
For the purposes of this document, a bindless image is one which provides access to the underlying data via image reference handles. At the application level, this allows the user to implement programs where the number of images is not known at compile-time, and store all handles to images – irrespective of varying formats and layouts – in some container, e.g. a dynamic array.
Motivation#
The DPC++ bindless images extension has sought to provide the flexibility of bindless images at the SYCL application level. This extension has been implemented using the CUDA backend of the DPC++ PI. With the movement to migrate from PI to the Unified Runtime in DPC++, as seen in Port CUDA plugin to Unified Runtime, the Unified Runtime’s support for this experimental feature would enable the DPC++ bindless images extension to be migrated to UR without issue.
Overview#
In this document, we propose the following experimental additions to the Unified Runtime:
Bindless images support
Sampled images
Unsampled images
Mipmaps
Image arrays
Cubemaps
USM backed images
Interoperability support
External memory
Semaphores
API#
Enums#
- ur_structure_type_t
UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES UR_STRUCTURE_TYPE_EXP_EXTERNAL_MEM_DESC UR_STRUCTURE_TYPE_EXP_EXTERNAL_SEMAPHORE_DESC UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE UR_STRUCTURE_TYPE_EXP_SAMPLER_ADDR_MODES UR_STRUCTURE_TYPE_EXP_SAMPLER_CUBEMAP_PROPERTIES
Types#
ur_exp_image_native_handle_t
ur_exp_image_mem_native_handle_t
ur_exp_external_mem_handle_t
ur_exp_external_semaphore_handle_t
Functions#
- Bindless Images
- Interop
Changelog#
Contributors#
Isaac Ault isaac.ault@codeplay.com
Duncan Brawley duncan.brawley@codeplay.com
Przemek Malon przemek.malon@codeplay.com
Chedy Najjar chedy.najjar@codeplay.com
Sean Stirling sean.stirling@codeplay.com
Peter Zuzek peter@codeplay.com peter@codeplay.com