Changes: 25.01#
General
Drop support for Maxwell GPU architecture. Legate now requires at least Pascal (
sm_60).Change the default number of maximum dimensions for Legate arrays from 4 to 6.
Remove the
--eager-alloc-percentageflag, as the one pool allocation scheme makes it obsolete.
C++#
General
Data
Add
legate::LogicalStore::offload_to()andlegate::LogicalArray::offload_to()to allow offloading a store, or an array, to a particular memory kind, such that any copies in other memories are discarded.Add
legate::LogicalStore::reinterpret_as()to reinterpret the underlying buffer of aLogicalStoreas another data-type.
Mapping
Add
legate::mapping::Mapper::allocation_pool_size(). Legate mappers are now required to implement the new mapping callback returning sizes of allocation pools used by task variants that are registered withhas_allocationsbeingtrue.Add
legate::mapping::Operation::num_scalars().Add
legate::mapping::Operation::is_single_task().Add
legate::mapping::Operation::get_launch_domain().Remove
legate::mapping::Mapper::task_target().
Partitioning
Tasks
Remove
legate::VariantOptions::leaf,legate::VariantOptions::inner, andlegate::VariantOptions::idempotent, as they don’t actually do anything in Legate.Add
legate::VariantOptions::has_allocations, which indicates that the task variant is allowed to create temporary or output buffers during execution.
Types
Add support for enums to
legate::type_code_of.legate::type_code_ofwill now unwrap the type to its underlying type if it is an enum. As a result, many objects (likelegate::Scalar) now natively support enums. For example, what previously required:enum class MyEnum { FOO }; auto scal = legate::Scalar{ static_cast<std::underlying_type_t<MyEnum>>(MyEnum::FOO) }; auto value = scal.value<std::underlying_type_t<MyEnum>>();
May now be done directly:
enum class MyEnum { FOO }; auto scal = legate::Scalar{MyEnum::FOO}; auto value = scal.value<MyEnum>();
Runtime
Deprecate
legate::start(argc, argv). Users should use the argument-less versionlegate::start()instead. The values ofargcandargvwere always ignored, so this change has no runtime effect.Add exception types
legate::ConfigurationErrorandlegate::AutoConfigurationErrorto signal Legate configuration failures.
Utilities
Remove
legate::comm::coll::collInit()andlegate::comm::coll::collFinalize().Remove
legate::VariantCode::NONE, andLEGATE_VARIANT_NONE. They served no purpose and were not used.
I/O
Move the HDF5 interface out from the experimental namespace.
legate::experimental::io::hdf5is nowlegate::io::hdf5.
Python#
General
Add environment variable
LEGATE_LIMIT_STDOUT. If enabled, restricts stdout output to only the first rank (default is output for all ranks).
Data
Add
legate.core.LogicalStore.offload_to()andlegate.core.LogicalArray.offload_to()to allow offloading a store, or an array, to a particular memory kind, such that any copies in other memories are discarded.
Mapping
Partitioning
Tasks
Types
Runtime
Utilities
Remove
legate.core.VariantCode.NONE. It served no purpose and was never used.
I/O
Move the HDF5 interface out from the experimental namespace.
legate.core.experimental.io.hdf5is nowlegate.io.hdf5.