@@ -4263,6 +4263,222 @@ typedef cl_bitfield cl_device_kernel_clock_capabilities_khr;
42634263
42644264#define CL_KHR_SUBGROUP_SHUFFLE_RELATIVE_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
42654265
4266+ /***************************************************************
4267+ * cl_khr_unified_svm (beta)
4268+ ***************************************************************/
4269+ #if defined(CL_ENABLE_BETA_EXTENSIONS )
4270+
4271+ #if defined(CL_VERSION_2_0 )
4272+
4273+ #define cl_khr_unified_svm 1
4274+ #define CL_KHR_UNIFIED_SVM_EXTENSION_NAME \
4275+ "cl_khr_unified_svm"
4276+
4277+
4278+ #define CL_KHR_UNIFIED_SVM_EXTENSION_VERSION CL_MAKE_VERSION(0, 9, 0)
4279+
4280+ /* cl_platform_info */
4281+ #define CL_PLATFORM_SVM_TYPE_CAPABILITIES_KHR 0x0909
4282+
4283+ /* cl_device_info */
4284+ #define CL_DEVICE_SVM_TYPE_CAPABILITIES_KHR 0x1077
4285+
4286+ typedef cl_bitfield cl_svm_capabilities_khr ;
4287+
4288+ /* cl_svm_capabilities_khr - bitfield */
4289+ #define CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR (1 << 0)
4290+ #define CL_SVM_CAPABILITY_SYSTEM_ALLOCATED_KHR (1 << 1)
4291+ #define CL_SVM_CAPABILITY_DEVICE_OWNED_KHR (1 << 2)
4292+ #define CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR (1 << 3)
4293+ #define CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR (1 << 4)
4294+ #define CL_SVM_CAPABILITY_HOST_OWNED_KHR (1 << 5)
4295+ #define CL_SVM_CAPABILITY_HOST_READ_KHR (1 << 6)
4296+ #define CL_SVM_CAPABILITY_HOST_WRITE_KHR (1 << 7)
4297+ #define CL_SVM_CAPABILITY_HOST_MAP_KHR (1 << 8)
4298+ #define CL_SVM_CAPABILITY_DEVICE_READ_KHR (1 << 9)
4299+ #define CL_SVM_CAPABILITY_DEVICE_WRITE_KHR (1 << 10)
4300+ #define CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR (1 << 11)
4301+ #define CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR (1 << 12)
4302+ #define CL_SVM_CAPABILITY_CONCURRENT_ATOMIC_ACCESS_KHR (1 << 13)
4303+ #define CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR (1 << 14)
4304+
4305+ typedef cl_properties cl_svm_alloc_properties_khr ;
4306+ typedef cl_bitfield cl_svm_alloc_access_flags_khr ;
4307+ typedef cl_properties cl_svm_free_properties_khr ;
4308+ typedef cl_bitfield cl_svm_free_flags_khr ;
4309+ typedef cl_uint cl_svm_pointer_info_khr ;
4310+
4311+ /* cl_svm_alloc_properties_khr */
4312+ #define CL_SVM_ALLOC_ASSOCIATED_DEVICE_HANDLE_KHR 0x2078
4313+ #define CL_SVM_ALLOC_ACCESS_FLAGS_KHR 0x2079
4314+ #define CL_SVM_ALLOC_ALIGNMENT_KHR 0x207A
4315+
4316+ /* cl_svm_alloc_access_flags_khr */
4317+ #define CL_SVM_ALLOC_ACCESS_HOST_NOREAD_KHR (1 << 0)
4318+ #define CL_SVM_ALLOC_ACCESS_HOST_NOWRITE_KHR (1 << 1)
4319+ #define CL_SVM_ALLOC_ACCESS_DEVICE_NOREAD_KHR (1 << 8)
4320+ #define CL_SVM_ALLOC_ACCESS_DEVICE_NOWRITE_KHR (1 << 9)
4321+
4322+ /* cl_svm_pointer_info_khr */
4323+ #define CL_SVM_INFO_TYPE_INDEX_KHR 0x2088
4324+ #define CL_SVM_INFO_CAPABILITIES_KHR 0x2089
4325+ #define CL_SVM_INFO_PROPERTIES_KHR 0x208A
4326+ #define CL_SVM_INFO_ACCESS_FLAGS_KHR 0x208B
4327+ #define CL_SVM_INFO_BASE_PTR_KHR 0x419B
4328+ #define CL_SVM_INFO_SIZE_KHR 0x419C
4329+ #define CL_SVM_INFO_ASSOCIATED_DEVICE_HANDLE_KHR 0x419D
4330+
4331+ /* cl_kernel_exec_info */
4332+ #define CL_KERNEL_EXEC_INFO_SVM_INDIRECT_ACCESS_KHR 0x11BB
4333+
4334+ /* SVM type convenience macros */
4335+ #define CL_SVM_TYPE_MACRO_COARSE_GRAIN_BUFFER_KHR \
4336+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
4337+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
4338+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
4339+ CL_SVM_CAPABILITY_HOST_MAP_KHR | \
4340+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
4341+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
4342+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR)
4343+ #define CL_SVM_TYPE_MACRO_FINE_GRAIN_BUFFER_KHR \
4344+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
4345+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
4346+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
4347+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
4348+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
4349+ CL_SVM_CAPABILITY_HOST_MAP_KHR | \
4350+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
4351+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
4352+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR | \
4353+ CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR)
4354+ #define CL_SVM_TYPE_MACRO_DEVICE_KHR \
4355+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
4356+ CL_SVM_CAPABILITY_DEVICE_OWNED_KHR | \
4357+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
4358+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
4359+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR | \
4360+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
4361+ #define CL_SVM_TYPE_MACRO_HOST_KHR \
4362+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
4363+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
4364+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
4365+ CL_SVM_CAPABILITY_HOST_OWNED_KHR | \
4366+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
4367+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
4368+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
4369+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
4370+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
4371+ #define CL_SVM_TYPE_MACRO_SINGLE_DEVICE_SHARED_KHR \
4372+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
4373+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
4374+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
4375+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
4376+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
4377+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
4378+ #define CL_SVM_TYPE_MACRO_SYSTEM_KHR \
4379+ (CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR | \
4380+ CL_SVM_CAPABILITY_SYSTEM_ALLOCATED_KHR | \
4381+ CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR | \
4382+ CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR | \
4383+ CL_SVM_CAPABILITY_HOST_READ_KHR | \
4384+ CL_SVM_CAPABILITY_HOST_WRITE_KHR | \
4385+ CL_SVM_CAPABILITY_HOST_MAP_KHR | \
4386+ CL_SVM_CAPABILITY_DEVICE_READ_KHR | \
4387+ CL_SVM_CAPABILITY_DEVICE_WRITE_KHR | \
4388+ CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR | \
4389+ CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR | \
4390+ CL_SVM_CAPABILITY_CONCURRENT_ATOMIC_ACCESS_KHR | \
4391+ CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR)
4392+
4393+
4394+ typedef void * CL_API_CALL
4395+ clSVMAllocWithPropertiesKHR_t (
4396+ cl_context context ,
4397+ const cl_svm_alloc_properties_khr * properties ,
4398+ cl_uint svm_type_index ,
4399+ size_t size ,
4400+ cl_int * errcode_ret );
4401+
4402+ typedef clSVMAllocWithPropertiesKHR_t *
4403+ clSVMAllocWithPropertiesKHR_fn ;
4404+
4405+ typedef cl_int CL_API_CALL
4406+ clSVMFreeWithPropertiesKHR_t (
4407+ cl_context context ,
4408+ const cl_svm_free_properties_khr * properties ,
4409+ cl_svm_free_flags_khr flags ,
4410+ void * ptr );
4411+
4412+ typedef clSVMFreeWithPropertiesKHR_t *
4413+ clSVMFreeWithPropertiesKHR_fn ;
4414+
4415+ typedef cl_int CL_API_CALL
4416+ clGetSVMPointerInfoKHR_t (
4417+ cl_context context ,
4418+ cl_device_id device ,
4419+ const void * ptr ,
4420+ cl_svm_pointer_info_khr param_name ,
4421+ size_t param_value_size ,
4422+ void * param_value ,
4423+ size_t * param_value_size_ret );
4424+
4425+ typedef clGetSVMPointerInfoKHR_t *
4426+ clGetSVMPointerInfoKHR_fn ;
4427+
4428+ typedef cl_int CL_API_CALL
4429+ clGetSVMSuggestedTypeIndexKHR_t (
4430+ cl_context context ,
4431+ cl_svm_capabilities_khr required_capabilities ,
4432+ cl_svm_capabilities_khr desired_capabilities ,
4433+ const cl_svm_alloc_properties_khr * properties ,
4434+ size_t size ,
4435+ cl_uint * suggested_svm_type_index );
4436+
4437+ typedef clGetSVMSuggestedTypeIndexKHR_t *
4438+ clGetSVMSuggestedTypeIndexKHR_fn ;
4439+
4440+ #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES )
4441+
4442+ extern CL_API_ENTRY void * CL_API_CALL
4443+ clSVMAllocWithPropertiesKHR (
4444+ cl_context context ,
4445+ const cl_svm_alloc_properties_khr * properties ,
4446+ cl_uint svm_type_index ,
4447+ size_t size ,
4448+ cl_int * errcode_ret ) ;
4449+
4450+ extern CL_API_ENTRY cl_int CL_API_CALL
4451+ clSVMFreeWithPropertiesKHR (
4452+ cl_context context ,
4453+ const cl_svm_free_properties_khr * properties ,
4454+ cl_svm_free_flags_khr flags ,
4455+ void * ptr ) ;
4456+
4457+ extern CL_API_ENTRY cl_int CL_API_CALL
4458+ clGetSVMPointerInfoKHR (
4459+ cl_context context ,
4460+ cl_device_id device ,
4461+ const void * ptr ,
4462+ cl_svm_pointer_info_khr param_name ,
4463+ size_t param_value_size ,
4464+ void * param_value ,
4465+ size_t * param_value_size_ret ) ;
4466+
4467+ extern CL_API_ENTRY cl_int CL_API_CALL
4468+ clGetSVMSuggestedTypeIndexKHR (
4469+ cl_context context ,
4470+ cl_svm_capabilities_khr required_capabilities ,
4471+ cl_svm_capabilities_khr desired_capabilities ,
4472+ const cl_svm_alloc_properties_khr * properties ,
4473+ size_t size ,
4474+ cl_uint * suggested_svm_type_index ) ;
4475+
4476+ #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
4477+
4478+ #endif /* defined(CL_VERSION_2_0) */
4479+
4480+ #endif /* defined(CL_ENABLE_BETA_EXTENSIONS) */
4481+
42664482/***************************************************************
42674483* cl_khr_work_group_uniform_arithmetic
42684484***************************************************************/
0 commit comments