diff --git a/doc/make_constants.py b/doc/make_constants.py index a88e40b7058f036b5e175398bf3bb84101ee28c1..c9de4cd87fef509b0bbd5c6ef7e2036af77eb6c4 100644 --- a/doc/make_constants.py +++ b/doc/make_constants.py @@ -32,6 +32,7 @@ cl_11 = ("CL_1.1", "0.92") cl_12 = ("CL_1.2", "2011.2") cl_12_2015 = ("CL_1.2", "2015.2") cl_20 = ("CL_2.0", "2015.2") +cl_21 = ("CL_2.1", "2016.2") amd_devattr = ("cl_amd_device_attribute_query", "2013.2") qcom_hp_devattr = ("cl_qcom_ext_host_ptr", "2016.2") intel_me_devattr = ("cl_intel_advanced_motion_estimation", "2016.2") @@ -182,6 +183,9 @@ const_ext_lookup = { "PREFERRED_PLATFORM_ATOMIC_ALIGNMENT": cl_20, "PREFERRED_GLOBAL_ATOMIC_ALIGNMENT": cl_20, "PREFERRED_LOCAL_ATOMIC_ALIGNMENT": cl_20, + "IL_VERSION": cl_21, + "MAX_NUM_SUB_GROUPS": cl_21, + "SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS": cl_21, }, cl.mem_object_type: { diff --git a/src/c_wrapper/device.cpp b/src/c_wrapper/device.cpp index 3e0525cdd3c2d7daeeefb8bd018a267a39b0e8e1..7bc7fd5a690b6a092bce17f5b28f15cb436a5c49 100644 --- a/src/c_wrapper/device.cpp +++ b/src/c_wrapper/device.cpp @@ -238,6 +238,14 @@ device::get_info(cl_uint param_name) const case CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT: return DEV_GET_INT_INF(cl_uint); #endif +#if PYOPENCL_CL_VERSION >= 0x2010 + case CL_DEVICE_IL_VERSION: + return pyopencl_get_str_info(Device, PYOPENCL_CL_CASTABLE_THIS, param_name); + case CL_DEVICE_MAX_NUM_SUB_GROUPS: + return DEV_GET_INT_INF(cl_uint); + case CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: + return DEV_GET_INT_INF(cl_bool); +#endif // {{{ AMD dev attrs diff --git a/src/c_wrapper/wrap_constants.cpp b/src/c_wrapper/wrap_constants.cpp index bfa882a63dac7b00c1a79393fc28d0b7660509ce..701638b98b9eb415bd7da4cfe50ea45707d23b90 100644 --- a/src/c_wrapper/wrap_constants.cpp +++ b/src/c_wrapper/wrap_constants.cpp @@ -302,6 +302,11 @@ void populate_constants(void(*add)(const char*, const char*, int64_t value)) ADD_ATTR("device_info", DEVICE_, PREFERRED_PLATFORM_ATOMIC_ALIGNMENT); ADD_ATTR("device_info", DEVICE_, PREFERRED_GLOBAL_ATOMIC_ALIGNMENT); ADD_ATTR("device_info", DEVICE_, PREFERRED_LOCAL_ATOMIC_ALIGNMENT); +#endif +#if PYOPENCL_CL_VERSION >= 0x2010 + ADD_ATTR("device_info", DEVICE_, IL_VERSION); + ADD_ATTR("device_info", DEVICE_, MAX_NUM_SUB_GROUPS); + ADD_ATTR("device_info", DEVICE_, SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS); #endif /* cl_intel_advanced_motion_estimation */ #ifdef CL_DEVICE_ME_VERSION_INTEL