Changes: 25.10#
General
Add support for CUDA 13.
Define
LEGION_DISABLE_DEPRECATED_ENUMSinlegate_defines.h, which disables the use of deprecated Legion enum values. Uses of these values will now result in compile-time errors.
C++#
General
Add config option
--profile-nameto customize the base filename for profiling output.Add new UCX networking backend. On supporting builds (
LEGATE_DEFINED(LEGATE_USE_UCX)being1), CPU collectives can be routed through UCX by disabling MPI (LEGATE_CONFIG=--disable-mpi).Remove support for Cal communicator.
Remove
LEGATE_USE_CALmacro definition.Support for
calcommunicator vialegate.AutoTask.add_communicator("cal")andlegate.ManualTask.add_communicator("cal")have been removed.Remove
legate/cuda/cuda.h.Remove
LEGATE_CHECK_CUDA()andLegateCheckCUDA().Remove
LEGATE_CHECK_CUDA_STREAM()andLegateCheckCUDAStream().Remove
LEGATE_THREADS_PER_BLOCK,LEGATE_MIN_CTAS_PER_SM,LEGATE_MAX_REDUCTION_CTAS, andLEGATE_WARP_SIZE. These were internal symbols accidentally exposed vialegate/cuda/cuda.hand have been privatized as part of its removal.
Data
Make
legate::ScopedAllocatorcopy-constructible.Add
legate::ScopedAllocator::allocate_aligned().Add
legate::ScopedAllocator::allocate_type().Add
legate::LogicalArray::as_struct_array().Add
legate::StructLogicalArray.
Mapping
Partitioning
Add overload of
legate::align()that takes a span of variables to align as a convenience for aligning multiple task arguments.Add overload of
legate::broadcast()that takes a span of variables to broadcast as a convenience for broadcasting multiple task arguments.Add overload of
legate::broadcast()that takes a span of pairs of variables and axes to broadcast as a convenience for broadcasting multiple task arguments.Add
LogicalStore::get_partition(). This method allows users to access the partition used by the runtime for optimizing task launches and data movement.
Tasks
Types
Tuning
Change
legate::ParallelPolicyto take an enum typelegate::StreamingModeinstead of a boolean flag for streaming task execution.
Runtime
Add
legate::Runtime::create_struct_array().
Utilities
Switch
legate::Spanto being an alias tocuda::std::spaninstead of the homegrown implementation. Aslegate::Spanmirrored the interface ofstd::span(whichcuda::std::spandoes as well), this change should be invisible to users.Remove previously deprecated classes
legate::cuda::StreamPoolandlegate::cuda::StreamView.
I/O
Change HDF5 Virtual File Driver (VFD) GPUDirectStorage (GDS) to enabled by default if Legate was built with support for it and Legate determines that GDS is likely to work. Previously this feature was disabled but could be toggled on via the
--io-use-vfd-gdsLEGATE_CONFIG option.Users should note that there is presently no way to reliably know ahead of time (i.e. before attempting cuFile calls) whether the filesystem supports GDS. Legate employs several heuristics to determine viability that – while rare – can provide both false positives and false negatives. Users relying on I/O performance who want this feature enabled should ensure it is on via the flag (as before), while users that encounter false positives should disable it via the flag and raise a bug report at nv-legate/legate#issues.
Add
legate::io::hdf5::to_file()to write alegate::LogicalArray()to file using HDF5.
Python#
General
Remove
legate.core.AutoTask.add_cal_communicator().Remove
legate.core.ManualTask.add_cal_communicator().Remove support for passing
"cal"tolegate.core.AutoTask.add_communicator()andlegate.core.ManualTask.add_communicator().
Data
Add
legate.core.LogicalArray.as_struct_array().Add
legate.core.StructLogicalArray.
Mapping
Add
legate.core.DimOrderingandlegate.core.DimOrderingKindfor dimension orderingAdd an optional argument of type
DimOrderingKindtolegate.core.Runtime.create_from_buffer()that denotes the dimension ordering kind
Partitioning
Change
legate.core.align()to return an iterable of constraints instead of a single value.Change
legate.core.broadcast()to return an iterable of constraints instead of a single value.Add
legate.core.LogicalStore.partition. This property allows users to access the partition used by the runtime for optimizing task launches and data movement.
Tasks
Change registration of tasks to now be performed lazily. It is no longer necessary to call
task.complete_registration().Accessing the task ID of a task (i.e. invoking
task.task_id) now registers the task if it wasn’t already.Remove the
registeroptional argument fromlegate.core.task.taskdecorator.
Types
Tuning
Change
legate.core.ParallelPolicyto take an enum typelegate.core.StreamingModeinstead of a boolean flag for streaming task execution.
Runtime
Expose profiling range functions to Python:
legate.core.start_profiling_range()andlegate.core.stop_profiling_range().Add
legate.core.runtime.configproperty to access runtime configuration. Note that this API is considered an implementation detail and has no guarantee of stability.Add
legate.core.Runtime.create_struct_array().
Utilities
I/O
Add
legate.io.hdf5.from_file_batched()to read a HDF5 file in batches.Remove
legate.io.hdf5.kerchunk_read(). Legate has had first-class support for HDF5 reads for a while, making this function obsolete.Add
legate.io.hdf5.to_file()to write alegate.core.LogicalArrayto file using HDF5.