Cuda_like_config.MakeShared 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.
module Dialect : sig ... endmodule Input : sig ... endinclude sig ... endval procs : Low_level.t Base.arrayval vector_prec_ok : Ops.prec -> Base.boolval mma_syntax :
(d_prec:Ops.prec ->
a_prec:Ops.prec ->
b_prec:Ops.prec ->
ta:Base.bool ->
tb:Base.bool ->
m:Base.int ->
n:Base.int ->
k:Base.int ->
d:
(PPrint.document
* Base.int
* [ `Device | `Shared | `Thread | `Fragment of Base.string ]
* [ `Plain | `Swizzled_b128 ]) ->
a:
(Base.int
* [ `Device | `Shared | `Thread | `Fragment of Base.string ]
* [ `Plain | `Swizzled_b128 ]) ->
b:
(Base.int
* [ `Device | `Shared | `Thread | `Fragment of Base.string ]
* [ `Plain | `Swizzled_b128 ]) ->
(a_ptr:PPrint.document ->
b_ptr:PPrint.document ->
PPrint.document)
Base.option)
Base.optionval mma_operand_loads :
a_prec:Ops.prec ->
b_prec:Ops.prec ->
d_prec:Ops.prec ->
scope:Backend_intf.mma_emission_scope ->
ta:Base.bool ->
tb:Base.bool ->
a:Backend_intf.mma_operand_place ->
b:Backend_intf.mma_operand_place ->
Base.bool * Base.boolval mma_operand_fragments :
a_prec:Ops.prec ->
b_prec:Ops.prec ->
d_prec:Ops.prec ->
scope:Backend_intf.mma_emission_scope ->
Backend_intf.mma_fragments Base.optionval mma_arm :
a_prec:Ops.prec ->
b_prec:Ops.prec ->
d_prec:Ops.prec ->
scope:Backend_intf.mma_emission_scope ->
Backend_intf.mma_arm Base.optionval mma_fragment_syntax :
(d_prec:Ops.prec ->
a_prec:Ops.prec ->
b_prec:Ops.prec ->
m:Base.int ->
n:Base.int ->
k:Base.int ->
fragment:Base.string ->
target:
(PPrint.document
* Base.int
* [ `Device | `Shared | `Thread | `Fragment of Base.string ]
* [ `Plain | `Swizzled_b128 ]) ->
a:
(Base.int
* [ `Device | `Shared | `Thread | `Fragment of Base.string ]
* [ `Plain | `Swizzled_b128 ]) ->
b:
(Base.int
* [ `Device | `Shared | `Thread | `Fragment of Base.string ]
* [ `Plain | `Swizzled_b128 ]) ->
body:(Base.unit -> PPrint.document) ->
PPrint.document Base.option)
Base.optionval vector_file : Vector_file.tval typ_of_prec : Ops.prec -> Base.stringval vec_typ_of_prec : length:int -> Ops.prec -> Base.stringval vec_unop_syntax :
Ops.prec ->
Ops.vec_unop ->
PPrint.document ->
PPrint.documentval ternop_syntax :
Ops.prec ->
Ops.ternop ->
PPrint.document ->
PPrint.document ->
PPrint.document ->
PPrint.documentval select_blend_syntax : Ops.prec -> C_syntax.select_blend option