Explicitly check for subgroup support instead of CL version
This commit is contained in:
@ -335,7 +335,7 @@ void BaseAtomicT::compile_kernels(UCL_Device &dev, const void *pair_str,
|
|||||||
_compiled=true;
|
_compiled=true;
|
||||||
|
|
||||||
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
||||||
if (dev.cl_device_version() >= 210) {
|
if (dev.has_subgroup_support()) {
|
||||||
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
||||||
#if defined(LAL_OCL_EV_JIT)
|
#if defined(LAL_OCL_EV_JIT)
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
||||||
|
|||||||
@ -348,7 +348,7 @@ void BaseChargeT::compile_kernels(UCL_Device &dev, const void *pair_str,
|
|||||||
_compiled=true;
|
_compiled=true;
|
||||||
|
|
||||||
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
||||||
if (dev.cl_device_version() >= 210) {
|
if (dev.has_subgroup_support()) {
|
||||||
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
||||||
#if defined(LAL_OCL_EV_JIT)
|
#if defined(LAL_OCL_EV_JIT)
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
||||||
|
|||||||
@ -356,7 +356,7 @@ void BaseDipoleT::compile_kernels(UCL_Device &dev, const void *pair_str,
|
|||||||
_compiled=true;
|
_compiled=true;
|
||||||
|
|
||||||
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
||||||
if (dev.cl_device_version() >= 210) {
|
if (dev.has_subgroup_support()) {
|
||||||
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
||||||
#if defined(LAL_OCL_EV_JIT)
|
#if defined(LAL_OCL_EV_JIT)
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
||||||
|
|||||||
@ -356,7 +356,7 @@ void BaseDPDT::compile_kernels(UCL_Device &dev, const void *pair_str,
|
|||||||
_compiled=true;
|
_compiled=true;
|
||||||
|
|
||||||
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
||||||
if (dev.cl_device_version() >= 210) {
|
if (dev.has_subgroup_support()) {
|
||||||
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
size_t mx_subgroup_sz = k_pair_fast.max_subgroup_size(_block_size);
|
||||||
#if defined(LAL_OCL_EV_JIT)
|
#if defined(LAL_OCL_EV_JIT)
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_pair_noev.max_subgroup_size(_block_size));
|
||||||
|
|||||||
@ -554,7 +554,7 @@ void BaseEllipsoidT::compile_kernels(UCL_Device &dev,
|
|||||||
_compiled=true;
|
_compiled=true;
|
||||||
|
|
||||||
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
||||||
if (dev.cl_device_version() >= 210) {
|
if (dev.has_subgroup_support()) {
|
||||||
size_t mx_subgroup_sz = k_lj_fast.max_subgroup_size(_block_size);
|
size_t mx_subgroup_sz = k_lj_fast.max_subgroup_size(_block_size);
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_ellipsoid.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_ellipsoid.max_subgroup_size(_block_size));
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_sphere_ellipsoid.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_sphere_ellipsoid.max_subgroup_size(_block_size));
|
||||||
|
|||||||
@ -461,7 +461,7 @@ void BaseThreeT::compile_kernels(UCL_Device &dev, const void *pair_str,
|
|||||||
_compiled=true;
|
_compiled=true;
|
||||||
|
|
||||||
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
#if defined(USE_OPENCL) && (defined(CL_VERSION_2_1) || defined(CL_VERSION_3_0))
|
||||||
if (dev.cl_device_version() >= 210) {
|
if (dev.has_subgroup_support()) {
|
||||||
size_t mx_subgroup_sz = k_pair.max_subgroup_size(_block_size);
|
size_t mx_subgroup_sz = k_pair.max_subgroup_size(_block_size);
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_three_center.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_three_center.max_subgroup_size(_block_size));
|
||||||
mx_subgroup_sz = std::min(mx_subgroup_sz, k_three_end.max_subgroup_size(_block_size));
|
mx_subgroup_sz = std::min(mx_subgroup_sz, k_three_end.max_subgroup_size(_block_size));
|
||||||
|
|||||||
Reference in New Issue
Block a user