sig
  external opencl_load_debug :
    string -> string -> Devices.generalInfo -> Kernel.kernel
    = "spoc_debug_opencl_load"
  external opencl_load_param_vec :
    int Pervasives.ref ->
    Kernel.kernel -> int -> Vector.device_vec -> Devices.generalInfo -> unit
    = "spoc_opencl_load_param_vec"
  external opencl_load_param_local_vec :
    int Pervasives.ref ->
    Kernel.kernel -> int -> Vector.device_vec -> Devices.generalInfo -> unit
    = "spoc_opencl_load_param_local_vec"
  external opencl_load_param_int :
    int Pervasives.ref -> Kernel.kernel -> int -> Devices.generalInfo -> unit
    = "spoc_opencl_load_param_int"
  external opencl_load_param_int64 :
    int Pervasives.ref -> Kernel.kernel -> int -> Devices.generalInfo -> unit
    = "spoc_opencl_load_param_int64"
  external opencl_load_param_float :
    int Pervasives.ref ->
    Kernel.kernel -> float -> Devices.generalInfo -> unit
    = "spoc_opencl_load_param_float"
  external opencl_load_param_float64 :
    int Pervasives.ref ->
    Kernel.kernel -> float -> Devices.generalInfo -> unit
    = "spoc_opencl_load_param_float64"
  external opencl_launch_grid :
    Kernel.kernel ->
    Kernel.grid -> Kernel.block -> Devices.generalInfo -> int -> unit
    = "spoc_opencl_launch_grid"
  external opencl_create_dummy_kernel : unit -> Kernel.kernel
    = "spoc_opencl_create_dummy_kernel"
  val openCLKernelCache :
    (Digest.t, Devices.generalInfo -> Kernel.kernel) Hashtbl.t array
    Pervasives.ref
  val opencl_load :
    bool ->
    bool -> int -> string -> string -> Devices.generalInfo -> Kernel.kernel
  val opencl_load_arg :
    int Pervasives.ref ->
    Devices.device ->
    Kernel.kernel -> int -> ('a, 'b) Kernel.kernelArgs -> unit
end