Backend_intf.Limits_keytype t = {max_bound_pools : Base.int Base.option;max_threads_per_workgroup : Base.int Base.option;max_workgroup_memory_bytes : Base.int Base.option;max_thread_private_bytes : Base.int Base.option;max_workgroup_dims : (Base.int * Base.int * Base.int) Base.option;max_grid_yz : Base.int Base.option;mma : mma_capability Base.option;simd_vector : Vector_file.t;peak_flops : Base.float Base.option;peak_memory_bandwidth : Base.float Base.option;native_fp16_arithmetic : Base.bool;simdgroup_width : Base.int Base.option;lane_scalar_recompute_cheap : Base.bool;lane_all_reduce_simdgroups : Base.int;online_softmax_auto_block : Base.int;worker_pool_tag : Base.string Base.option;codegen_tag : Base.string Base.option;}The Key-class projection of hardware_limits: the same fields, in the same order, with the same sexp attributes, so its sexp is the full record's with the Untimed fields (all [@sexp.option]) absent.
val sexp_of_t : t -> Sexplib0.Sexp.t