Module Cuda_like_config.Make

Shared CUDA/HIP scalar semantics. Hardware MMA, asynchronous copies and conversions with different vendor overload contracts stay in the backend; the common operator table lives here so fixes to narrow arithmetic reach both consumers.

Parameters

module Dialect : sig ... end
module Input : sig ... end

Signature

include sig ... end
val procs : Low_level.t Base.array
val buffer_prefix : string
val buffer_suffix : pos:'a -> string
val extra_args : 'a list
val supports_f64 : bool
val ptr_param_style : [> `Per_param ]
val async_copy : 'a option
val parallel_grid_syntax : [> `None ]
val parallel_grid_chunks : int
val volatile_serial_accumulation : bool
val mma_syntax : 'a option
val mma_fragment_syntax : 'a option
val float_log_style : string
val styled_log_arg : PPrint.document -> PPrint.document
val log_index_arg : PPrint.document -> string * PPrint.document
val convert_precision : from:Ops.prec -> to_:Ops.prec -> Base.String.t * string
val compute_prec : 'a -> 'a
val accum_prec : 'a -> 'a
val vector_prec_ok : Ops.prec -> bool
val for_log_trace_tree : bool
val ident_blacklist : Base.String.t Base__List.t
val fp8_from_float : PPrint.document -> PPrint.document
val main_kernel_prefix : string
val kernel_prep_line : string
val loop_index_type : string
val arg_int_prefix : string
val hardware_index : kind:[< `Grid | `Workgroup ] -> slot:int -> Base.String.t option
val barrier_syntax : string option
val shared_decl_prefix : string option
val restrict_keyword : string option
val warp_size : int
val vectorize_pragma : 'a list
val aligned_local_attr : 'a option
val vector_bytes : int
val vector_style : [> `Packed_struct ]
val typ_of_prec : Ops.prec -> Base.string
val vec_typ_of_prec : length:int -> Ops.prec -> Base.string
val binop_syntax : Ops.prec -> Ops.binop -> PPrint.document -> PPrint.document -> PPrint.document
val unop_syntax : Ops.prec -> Ops.unop -> PPrint.document -> PPrint.document
val vec_unop_syntax : Ops.prec -> Ops.vec_unop -> PPrint.document -> PPrint.document
val ternop_syntax : Ops.prec -> Ops.ternop -> PPrint.document -> PPrint.document -> PPrint.document -> PPrint.document
val kernel_log_param : (string * string) option
val log_involves_file_management : bool
val pp_log_statement : log_param_c_expr_doc:PPrint.document option -> base_message_literal:Base.String.t -> args_docs:PPrint.document list -> PPrint.document