package rune
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Automatic differentiation and JIT compilation for OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
raven-1.0.0.alpha1.tbz
sha256=8e277ed56615d388bc69c4333e43d1acd112b5f2d5d352e2453aef223ff59867
sha512=369eda6df6b84b08f92c8957954d107058fb8d3d8374082e074b56f3a139351b3ae6e3a99f2d4a4a2930dd950fd609593467e502368a13ad6217b571382da28c
doc/rune.jit/Rune_jit/Ir/Scheduled/index.html
Module Ir.ScheduledSource
Source
type layout = {shape : int array;strides : int array;alignment : int;vector_width : int;contiguous_axes : int list;
}Source
type allocation = {scope : memory_scope;size_bytes : int;lifetime : int * int;alias_group : int option;
}Source
type buffer_info = {buf_var : Var.t;dtype : Dtype.any;layout : layout;alloc : allocation;is_input : bool;is_output : bool;
}Source
type loop_hint = | Vectorize of {}| Unroll of {}| Prefetch of {var : Var.t;into : memory_scope;distance : int;
}| Pipeline of {}
Source
type reduction_plan = {axes : int list;intra_thread : [ `Tree | `Welford | `Shfl | `None ];inter_thread : [ `SharedTree | `Atomic | `GridReduce ];
}Source
type scheduled_op = | S_Kernel of {kernel_id : int;kernel_name : string;ops : any_node list;inputs : buffer_info list;outputs : buffer_info list;iter : iter_space;reduce : reduction_plan option;hints : loop_hint list;context : schedule_context;
}| S_Memory_Transfer of {transfer_id : int;src_var : Var.t;dst_var : Var.t;src_device : string;dst_device : string;dims : int array;src_strides : int array option;dst_strides : int array option;size_bytes : int;is_async : bool;stream : int option;
}| S_Synchronization of {sync_id : int;sync_type : [ `Barrier | `Fence | `Event of int ];scope : [ `Threadgroup | `Device | `System ];devices : string list;stream : int option;
}| S_Host_Callback of {}
Source
type schedule_item = {item_id : int;operation : scheduled_op;depends_on : int list;dependents : int list;
}Source
type fusion_opportunity = {kernel_a : int;kernel_b : int;fusion_type : [ `Elementwise | `Reduction | `Mixed ];benefit_score : float;memory_saved : int;
}Source
type item_analysis = {item_id : int;flops : int;bytes_read : int;bytes_written : int;regs_per_thread : int;smem_bytes : int;occupancy : float;est_ns : int;
}Source
type graph_t = {schedule_items : schedule_item array;dependencies : dependency list;fusion_opportunities : fusion_opportunity list;analysis : item_analysis array;critical_path : int list;total_memory_usage : int;estimated_runtime_ns : int;vars_metadata : (Var.t, var_metadata) Hashtbl.t;symbolic_vars : SymVar.t list;
}Source
val default_alloc :
scope:memory_scope ->
dtype:Dtype.any ->
layout:layout ->
lifetime:(int * int) ->
allocationSource
val make_iter_space :
axes:axis array ->
mapping:mapping ->
tiles:int list array ->
iter_spaceSource
val make_buffer_info :
buf_var:Var.t ->
dtype:Dtype.any ->
shape:int array ->
scope:memory_scope ->
is_input:bool ->
is_output:bool ->
lifetime:(int * int) ->
buffer_infoSource
val create_kernel :
kernel_id:int ->
kernel_name:string ->
ops:any_node list ->
inputs:buffer_info list ->
outputs:buffer_info list ->
iter:iter_space ->
reduce:reduction_plan option ->
hints:loop_hint list ->
context:schedule_context ->
scheduled_opSource
val create_memory_transfer :
transfer_id:int ->
src_var:Var.t ->
dst_var:Var.t ->
src_device:string ->
dst_device:string ->
dims:int array ->
?src_strides:int array ->
?dst_strides:int array ->
size_bytes:int ->
is_async:bool ->
stream:int option ->
unit ->
scheduled_opSource
val create_synchronization :
sync_id:int ->
sync_type:[ `Barrier | `Event of int | `Fence ] ->
scope:[ `Device | `System | `Threadgroup ] ->
devices:string list ->
stream:int option ->
scheduled_opSource
val create_host_callback :
callback_id:int ->
callback_name:string ->
input_vars:Var.t list ->
output_vars:Var.t list ->
scheduled_opSource
val create_schedule_item :
item_id:int ->
operation:scheduled_op ->
depends_on:int list ->
schedule_item sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>