, ( ) , , : , .
(, DarkZeros : .., null , OpenCL .
. OpenCL "" . : ( ), OpenCL 1...
, . , , , . :
__kernel void reduceURatios(
__global myreal *coef,
__global myreal *row,
myreal ratio,
int sizeOfArrays) // Add this parameter
{
size_t gid = get_global_id(0);
if (gid >= sizeOfArrays)
{
return; // Don't access invalid elements
}
myreal pCoef = coef[gid];
myreal pRow = row[gid];
pCoef = pCoef - (pRow * ratio);
coef[gid] = pCoef;
}
. CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, . , CL_DEVICE_MAX_WORK_GROUP_SIZE ( , , , , - ).
, CL_DEVICE_MAX_WORK_GROUP_SIZE :
int maxWorkGroupSize = ...
int numWorkGroups = (n-1) / maxWorkGroupSize + 1;
int globalSizePadded = numWorkGroups * maxWorkGroupSize;
() . if, , , . null, CL_DEVICE_MAX_WORK_GROUP_SIZE (, , ).
, , , ...