void run() { buf_dir_ = !buf_dir_; kernel_.setArg(0, cl_int(num_planes_)); kernel_.setArg(1, f_fact_); kernel_.setArg(2, f_target_); kernel_.setArg(3, f_offsets_); kernel_.setArg(4, f_num_); kernel_.setArg(5, col_diff_); kernel_.setArg(6, f_emit_); if( !buf_dir_ ) { kernel_.setArg(7, f_rad_); kernel_.setArg(8, f_rad2_); } else { kernel_.setArg(8, f_rad_); kernel_.setArg(7, f_rad2_); } kernel_.setArg( 9, f_perm_ ); queue_.enqueueNDRangeKernel( kernel_, cl::NDRange(0), cl::NDRange(num_planes_) ); queue_.finish(); pints_ += pints_iter_; }
Id cl_atom(Id token) { CL_ACQUIRE_STR_D(dt, token, clNil); char *ep; long l = strtol(dt.s, &ep, 10); if (ep && *ep == '\0') return cl_int((int)l); float f = strtof(dt.s, &ep); if (ep && *ep == '\0') return cl_float(f); return cl_intern(token); }
void UserEvent::setStatus(EEventStatus status) { #if defined(HAVE_OPENCL_1_1) cl_int error = CL_SUCCESS; if(!_id || ((error = clSetUserEventStatus(_id, cl_int(status))) != CL_SUCCESS)) { detail::reportError("UserEvent::setStatus(): ", error); } #else (void)status; #endif }
/* * Gets the OpenCL error name */ char const * findClError(cl_int error) { static char const * strings[] = { // Error Codes "CL_SUCCESS" // 0 , "CL_DEVICE_NOT_FOUND" // -1 , "CL_DEVICE_NOT_AVAILABLE" // -2 , "CL_COMPILER_NOT_AVAILABLE" // -3 , "CL_MEM_OBJECT_ALLOCATION_FAILURE" // -4 , "CL_OUT_OF_RESOURCES" // -5 , "CL_OUT_OF_HOST_MEMORY" // -6 , "CL_PROFILING_INFO_NOT_AVAILABLE" // -7 , "CL_MEM_COPY_OVERLAP" // -8 , "CL_IMAGE_FORMAT_MISMATCH" // -9 , "CL_IMAGE_FORMAT_NOT_SUPPORTED" // -10 , "CL_BUILD_PROGRAM_FAILURE" // -11 , "CL_MAP_FAILURE" // -12 , "" // -13 , "" // -14 , "" // -15 , "" // -16 , "" // -17 , "" // -18 , "" // -19 , "" // -20 , "" // -21 , "" // -22 , "" // -23 , "" // -24 , "" // -25 , "" // -26 , "" // -27 , "" // -28 , "" // -29 , "CL_INVALID_VALUE" // -30 , "CL_INVALID_DEVICE_TYPE" // -31 , "CL_INVALID_PLATFORM" // -32 , "CL_INVALID_DEVICE" // -33 , "CL_INVALID_CONTEXT" // -34 , "CL_INVALID_QUEUE_PROPERTIES" // -35 , "CL_INVALID_COMMAND_QUEUE" // -36 , "CL_INVALID_HOST_PTR" // -37 , "CL_INVALID_MEM_OBJECT" // -38 , "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR" // -39 , "CL_INVALID_IMAGE_SIZE" // -40 , "CL_INVALID_SAMPLER" // -41 , "CL_INVALID_BINARY" // -42 , "CL_INVALID_BUILD_OPTIONS" // -43 , "CL_INVALID_PROGRAM" // -44 , "CL_INVALID_PROGRAM_EXECUTABLE" // -45 , "CL_INVALID_KERNEL_NAME" // -46 , "CL_INVALID_KERNEL_DEFINITION" // -47 , "CL_INVALID_KERNEL" // -48 , "CL_INVALID_ARG_INDEX" // -49 , "CL_INVALID_ARG_VALUE" // -50 , "CL_INVALID_ARG_SIZE" // -51 , "CL_INVALID_KERNEL_ARGS" // -52 , "CL_INVALID_WORK_DIMENSION" // -53 , "CL_INVALID_WORK_GROUP_SIZE" // -54 , "CL_INVALID_WORK_ITEM_SIZE" // -55 , "CL_INVALID_GLOBAL_OFFSET" // -56 , "CL_INVALID_EVENT_WAIT_LIST" // -57 , "CL_INVALID_EVENT" // -58 , "CL_INVALID_OPERATION" // -59 , "CL_INVALID_GL_OBJECT" // -60 , "CL_INVALID_BUFFER_SIZE" // -61 , "CL_INVALID_MIP_LEVEL" // -62 , "CL_INVALID_GLOBAL_WORK_SIZE" // -63 }; if (error <= 0 && -error < cl_int(CS499R_ARRAY_SIZE(strings))) { CS499R_ASSERT(strings[-error][0] != 0); return strings[-error]; } CS499R_CRASH(); return "CL_UNKNOWN_ERROR_CODE"; }
void Event::setCallback(EEventStatus status, EventCallback cb) { _callback = std::move(cb); clSetEventCallback(_id, cl_int(status), &detail::callback_priv, &_callback); }