Esempio n. 1
0
 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_;
     
 }
Esempio n. 2
0
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);
}
Esempio n. 3
0
File: Event.cpp Progetto: k0zmo/clw
    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
    }
Esempio n. 4
0
    /*
     * 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";
    }
Esempio n. 5
0
File: Event.cpp Progetto: k0zmo/clw
 void Event::setCallback(EEventStatus status, EventCallback cb)
 {
     _callback = std::move(cb);
     clSetEventCallback(_id, cl_int(status), 
         &detail::callback_priv, &_callback);
 }