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-percentage
flag, 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 aLogicalStore
as 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_allocations
beingtrue
.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_of
will 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 ofargc
andargv
were always ignored, so this change has no runtime effect.Add exception types
legate::ConfigurationError
andlegate::AutoConfigurationError
to 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::hdf5
is 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.hdf5
is nowlegate.io.hdf5
.