@@ -148,47 +148,6 @@ module type For_add_scheduler = sig
148148 include No_device_buffer_and_copying with type buffer_ptr := buffer_ptr
149149end
150150
151- module type With_buffer_retrieval_and_syncing = sig
152- type context
153- type event
154-
155- val work_for : context -> Tnode .t -> event option
156- (* * If the tensor node is in the context, returns the event indicating if currently running or
157- scheduled computations modifying that node on the context's stream have completed.
158-
159- NOTE: [work_for ctx tn], if work tracking was not yet registered for [tn], will register work
160- tracking for [tn] and return the [all_work] event for [ctx]'s stream. *)
161-
162- val from_host : context -> Tnode .t -> bool
163- (* * If the tensor node is both hosted and in-context, schedules a copy from host to context and
164- returns true, otherwise returns false. NOTE: it's the caller's responsibility to synchronize
165- the stream (via [await ctx.stream] or [sync (work_for ctx tn)]) before the host's data is
166- overwritten. *)
167-
168- val to_host : context -> Tnode .t -> bool
169- (* * If the tensor node is both hosted and in-context, schedules a copy from context to host and
170- returns true, otherwise returns false. NOTE: it's the caller's responsibility to synchronize
171- the stream (via [await ctx.stream] or [sync (work_for ctx tn)]) before the host's data is
172- read. *)
173-
174- val device_to_device :
175- Tnode .t -> into_merge_buffer :merge_buffer_use -> dst :context -> src :context -> bool
176- (* * [device_to_device tn ~into_merge_buffer ~dst ~src] proceeds as follows:
177- - If the node is absent from the [src] context and either it is present in the [dst] context
178- or [into_merge_buffer] is different from [No]: raises an error.
179- - If the node is absent from [dst] and [into_merge_buffer=No]: returns false.
180- - Executes [will_wait_for dst (work_for src tn)].
181- - If [into_merge_buffer=No]: schedules a copy of the tensor node from [src] to [dst].
182- - If [into_merge_buffer] is different from [No]: sets on [dst] the merge buffer source to the
183- given node. If [into_merge_buffer=Streaming], remembers the buffer pointer of the source
184- node to use for streaming, without blocking. If [into_merge_buffer=Copy], schedules copying
185- from [src] to the merge buffer of [dst]'s stream.
186-
187- NOTE: If [into_merge_buffer=Streaming], after scheduling the work on [dst] using the merge
188- buffer but before scheduling work on [src] that modifies [tn], execute
189- [will_wait_for src (all_work (get_ctx_stream dst))]. *)
190- end
191-
192151(* * Lowered-level stream agnostic backend interface: implementation-facing API for CPU backends. *)
193152module type Lowered_no_device_backend = sig
194153 include Backend_impl_common
0 commit comments