The OpenCL API has the following function:
cl_program clCreateProgramWithBinary(
cl_context context,
cl_uint num_devices,
const cl_device_id* device_list,
const size_t* lengths,
const unsigned char** binaries,
cl_int* binary_status,
cl_int* errcode_ret);
The two last parameters are out-parameters, used for returning status information: The last returns the overall status, while the other is actually an array of length num_devices, every one of which corresponds to the status of loading the corresponding binary from the binaries
array.
My question is how the overall and individual status values relate.
- Can the overall status be
CL_SUCCESS
if some of the individual binaries failed to load? Or is that still considered a success? - Can the overall status be some failure, even when all individual binaries status values are
CL_SUCCESS
? - How should the general status variable reflect various errors that the loading of individual kernels encounters?