Changes: 25.08#
General
C++#
General
Add experimental support for “streaming”, a new execution model that tracks task dependencies at a more granular level, allowing individual leaf task dependencies to be immediately executed before waiting for the preceding task to be scheduled.
Tasks may be marked as streaming by enclosing them in a
legate::Scope
:{ const auto scope = legate::Scope{legate::ParallelPolicy{}.with_streaming(true)}; launch_task_A(); launch_task_B(); launch_task_C(); }
This feature is experimental and does not yet support all use-cases. Invalid use may lead to exceptions, hangs, or outright crashes. Users are invited to try out this feature while development continues.
Data
Add
PhysicalStore::span_read_accessor()
,PhysicalStore::span_write_accessor()
,PhysicalStore::span_read_write_accessor()
, andPhysicalStore::span_reduce_accessor()
which returncuda::std::mdspan
’s as alternatives to the usual accessor interfaces.Add
legate::PhysicalStore::to_dlpack()
to export the store in DLPack format.
Mapping
Remove
legate::mapping::InstLayout
. Support forAOS
never really worked, onlySOA
. Since this causes the entire enum to have just a single value, it is removed. All stores will haveSOA
layout.Remove
legate::mapping::InstanceMappingPolicy::layout
as a result of removingInstLayout
.Remove
legate::mapping::InstanceMappingPolicy::with_instance_layout()
as a result of removingInstLayout
.Remove
legate::mapping::InstanceMappingPolicy::set_instance_layout()
as a result of removingInstLayout
.
Partitioning
Tasks
Tuning
Types
Runtime
Utilities
Add
legate::flatten()
helper function, to allow users to construct a flat view over acuda::std::mdspan
.Add
legate::for_each_in_extent()
helper function to allow users to efficiently iterate over an N-dimensional extent space.Add
legate::Span(const legate::tuple<T>&)
to construct alegate::Span
from alegate::tuple
.Add
legate::Span::empty()
to check whether a span’s size is 0.Add
legate::Span::at()
, to access an element with bounds checking.Add
legate::Span::deep_equal()
to do a “deep”, pointwise equality comparison.Remove
legate::print_dense_array()
. This header used CUDA runtime symbols which Legate no longer directly links against, and therefore could not reliably provide. Downstream users should either use the span accessors of physical stores (which support easy dimension-aware iteration for printing), or implement this utility themselves.Remove the
legate/utilities/debug.h
header.
I/O
Python#
General
Add
legate.core.from_dlpack()
to enable importing DLPack compatible tensors aslegate.core.LogicalStore
.
Data
Add
legate.core.PhysicalStore.__dlpack__()
andlegate.core.PhysicalStore.__dlpack_device__()
to support exporting physical stores as DLPack capsules.
Mapping
Partitioning
Tasks
Tuning
Types
Runtime
Utilities
I/O