package sarek

  1. Overview
  2. Docs
type float64 = float
type float32 = float
type extension =
  1. | ExFloat32
  2. | ExFloat64
type ('a, 'b, 'c) kirc_kernel = {
  1. ml_kern : 'a;
  2. body : Kirc_Ast.k_ext;
  3. ret_val : Kirc_Ast.k_ext * ('b, 'c) Spoc.Vector.kind;
  4. extensions : extension array;
}
type ('a, 'b, 'c, 'd) kirc_function = {
  1. fun_name : string;
  2. ml_fun : 'a;
  3. funbody : Kirc_Ast.k_ext;
  4. fun_ret : Kirc_Ast.k_ext * ('b, 'c) Spoc.Vector.kind;
  5. fastflow_acc : 'd;
  6. fun_extensions : extension array;
}
type ('a, 'b, 'c, 'd, 'e) sarek_kernel = ('a, 'b) Spoc.Kernel.spoc_kernel * ('c, 'd, 'e) kirc_kernel
val constructors : string list ref
val eint32 : Kirc_Ast.elttype
val eint64 : Kirc_Ast.elttype
val efloat32 : Kirc_Ast.elttype
val efloat64 : Kirc_Ast.elttype
val global : Kirc_Ast.memspace
val local : Kirc_Ast.memspace
val shared : Kirc_Ast.memspace
val print_ast : Kirc_Ast.k_ext -> unit
val opencl_head : string
val opencl_float64 : string
val cuda_float64 : string
val cuda_head : string
val new_var : int -> Kirc_Ast.k_ext
val global_fun : ('a, 'b, 'c, 'd) kirc_function -> Kirc_Ast.k_ext
val var : int -> string -> Kirc_Ast.k_ext
val spoc_gen_kernel : Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_fun_kernel : 'a -> 'b -> unit
val spoc_unit : unit -> Kirc_Ast.k_ext
val spoc_int : int -> Kirc_Ast.k_ext
val global_int_var : (unit -> int32) -> Kirc_Ast.k_ext
val global_float_var : (unit -> float) -> Kirc_Ast.k_ext
val global_float64_var : (unit -> float) -> Kirc_Ast.k_ext
val spoc_int32 : int32 -> Kirc_Ast.k_ext
val spoc_float : float -> Kirc_Ast.k_ext
val spoc_double : float -> Kirc_Ast.k_ext
val spoc_int_id : int -> Kirc_Ast.k_ext
val spoc_float_id : float -> Kirc_Ast.k_ext
val spoc_plus_float : Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_min_float : Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_mul_float : Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_div_float : Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_match : string -> Kirc_Ast.k_ext -> Kirc_Ast.case array -> Kirc_Ast.k_ext
val spoc_case : int -> (string * string * int * string) option -> Kirc_Ast.k_ext -> Kirc_Ast.case
val spoc_id : 'a -> Kirc_Ast.k_ext
val spoc_constr : string -> string -> Kirc_Ast.k_ext list -> Kirc_Ast.k_ext
val spoc_record : string -> Kirc_Ast.k_ext list -> Kirc_Ast.k_ext
val spoc_rec_get : Kirc_Ast.k_ext -> string -> Kirc_Ast.k_ext
val spoc_return : Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val empty_arg : unit -> Kirc_Ast.k_ext
val new_int_var : int -> string -> Kirc_Ast.k_ext
val new_float_var : int -> string -> Kirc_Ast.k_ext
val new_float64_var : int -> string -> Kirc_Ast.k_ext
val new_double_var : int -> string -> Kirc_Ast.k_ext
val new_unit_var : int -> string -> Kirc_Ast.k_ext
val new_custom_var : string -> int -> string -> Kirc_Ast.k_ext
val new_int_vec_var : int -> string -> Kirc_Ast.k_ext
val new_float_vec_var : int -> string -> Kirc_Ast.k_ext
val new_double_vec_var : int -> string -> Kirc_Ast.k_ext
val new_custom_vec_var : string -> int -> string -> Kirc_Ast.k_ext
val int_vect : int -> Kirc_Ast.kvect
val intrinsics : string -> string -> Kirc_Ast.k_ext
val spoc_local_env : Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_declare : Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val spoc_local_var : 'a -> 'a
val int_var : 'a -> 'a
val int32_var : 'a -> 'a
val float_var : 'a -> 'a
val double_var : int -> Kirc_Ast.k_ext
val equals_custom : string -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val return_unit : unit -> Kirc_Ast.k_ext
val return_int : int -> string -> Kirc_Ast.k_ext
val return_float : int -> string -> Kirc_Ast.k_ext
val return_double : int -> string -> Kirc_Ast.k_ext
val return_bool : int -> string -> Kirc_Ast.k_ext
val return_custom : string -> string -> string -> Kirc_Ast.k_ext
val spoc_native : (Spoc.Devices.device -> string) -> Kirc_Ast.k_ext
val pragma : string list -> Kirc_Ast.k_ext -> Kirc_Ast.k_ext
val return_v : (string * string) ref
val save : string -> string -> unit
val load_file : string -> bytes
val gen_profile : ('a, 'b, 'c, 'd, 'e) sarek_kernel -> Spoc.Devices.device -> unit
val gen : ?keep_temp:bool -> ?profile:bool -> ?return:bool -> ?only:Spoc.Devices.specificLibrary -> ?nvrtc_options:string array -> ('a, 'b, 'c, 'd, 'e) sarek_kernel -> Spoc.Devices.device -> ('a, 'b, 'c, 'd, 'e) sarek_kernel
val run : ?recompile:bool -> ('a, ('b, 'f) Spoc.Kernel.kernelArgs array, 'c, 'd, 'e) sarek_kernel -> 'a -> (Spoc.Kernel.block * Spoc.Kernel.grid) -> int -> Spoc.Devices.device -> unit
val profile_run : ?recompile:bool -> ('a, ('b, 'f) Spoc.Kernel.kernelArgs array, 'c, 'd, 'e) sarek_kernel -> 'a -> (Spoc.Kernel.block * Spoc.Kernel.grid) -> int -> Spoc.Devices.device -> unit
val compile_kernel_to_files : string -> ('a, 'b, 'c, 'd, 'e) sarek_kernel -> Spoc.Devices.device -> unit
module Std : sig ... end
module Sarek_vector : sig ... end
module Math : sig ... end