mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
cl20: Khronos Bug 16080 Fix local work size limit.
Problem: Some tests assume that all local work-items can be used in a single dimension of an NDRange. Spec References: OpenCL C 2.0 r19, table 4.3, CL_DEVICE_MAX_WORK_ITEM_SIZES. Solution: The overall maximum local work size is trimmed to that of an NDRange's first dimension or all dimensions, as appropriate. Test Suite Affected: atomics, non_uniform_work_group, and workgroups. Side Effects: None Change-Id: I2e8179ca15c2c090f47ea84d1d3c109dd69ec185
This commit is contained in:
committed by
Kévin Petit
parent
e0d7ab2187
commit
627c180a31
@@ -83,9 +83,9 @@ test_work_group_all(cl_device_id device, cl_context context, cl_command_queue qu
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -83,9 +83,9 @@ test_work_group_any(cl_device_id device, cl_context context, cl_command_queue qu
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -178,9 +178,9 @@ test_work_group_broadcast_1D(cl_device_id device, cl_context context, cl_command
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -180,9 +180,9 @@ test_work_group_reduce_add_int(cl_device_id device, cl_context context, cl_comma
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -281,9 +281,9 @@ test_work_group_reduce_add_uint(cl_device_id device, cl_context context, cl_comm
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -381,9 +381,9 @@ test_work_group_reduce_add_long(cl_device_id device, cl_context context, cl_comm
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -482,9 +482,9 @@ test_work_group_reduce_add_ulong(cl_device_id device, cl_context context, cl_com
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -188,9 +188,9 @@ test_work_group_scan_exclusive_add_int(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -289,9 +289,9 @@ test_work_group_scan_exclusive_add_uint(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -389,9 +389,9 @@ test_work_group_scan_exclusive_add_long(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -490,9 +490,9 @@ test_work_group_scan_exclusive_add_ulong(cl_device_id device, cl_context context
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -177,9 +177,9 @@ test_work_group_scan_inclusive_add_int(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -278,9 +278,9 @@ test_work_group_scan_inclusive_add_uint(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -378,9 +378,9 @@ test_work_group_scan_inclusive_add_long(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -479,9 +479,9 @@ test_work_group_scan_inclusive_add_ulong(cl_device_id device, cl_context context
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -179,9 +179,9 @@ test_work_group_scan_inclusive_max_int(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -280,9 +280,9 @@ test_work_group_scan_inclusive_max_uint(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -380,9 +380,9 @@ test_work_group_scan_inclusive_max_long(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -481,9 +481,9 @@ test_work_group_scan_inclusive_max_ulong(cl_device_id device, cl_context context
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
@@ -179,9 +179,9 @@ test_work_group_scan_inclusive_min_int(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -280,9 +280,9 @@ test_work_group_scan_inclusive_min_uint(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -380,9 +380,9 @@ test_work_group_scan_inclusive_min_long(cl_device_id device, cl_context context,
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
@@ -481,9 +481,9 @@ test_work_group_scan_inclusive_min_ulong(cl_device_id device, cl_context context
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
err = clGetKernelWorkGroupInfo( kernel, device, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t), wg_size, NULL);
|
||||
if (err)
|
||||
return -1;
|
||||
// "wg_size" is limited to that of the first dimension as only a 1DRange is executed.
|
||||
err = get_max_allowed_1d_work_group_size_on_device(device, kernel, wg_size);
|
||||
test_error(err, "get_max_allowed_1d_work_group_size_on_device failed");
|
||||
|
||||
num_elements = n_elems;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user