Skip to content

Releases: nv-legate/legate

v24.06.00

03 Jul 21:45
5dd4902

Choose a tag to compare

This release re-implements the Legate API in C++, which significantly reduces the overhead of the control code. This release also introduces the following major features:

  • As a result of the C++ re-implementation of the API, now the entire Legate program can be written in C++ (previously the control code had to be written in Python).
  • The Legate Array API, which extends Legate Stores with support for struct-type and nullable containers, and even containers of variable-length elements (e.g. string containers, and sparse array representations)
  • An implementation of STL algorithms based on the Legate API, which allows users to easily express common parallelism patterns without needing to write custom tasks.
  • Support for writing leaf tasks in Python (previously only leaf task implementations in C++ were supported)
  • Integration with NSight Systems (initial support)

This release bumps the minimum support CUDA version to 12.0.

This is a closed-source release, governed by the following EULA: https://docs.nvidia.com/legate/24.06/eula.pdf. x86 conda packages with multi-node support (based on UCX) are available at https://anaconda.org/legate/legate-core.

Documentation for this release can be found at https://docs.nvidia.com/legate/24.06/.

v23.11.00

17 Nov 23:49
fd45636

Choose a tag to compare

This release focuses on bugfixes and documentation improvements, in particular a formally documented support matrix.

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

What's Changed

🛠️ Improvements

🐛 Bug Fixes

  • Avoid gc infinite loop at runtime destruction time by @manopapad in #842
  • Add missing 12.0 CUDA libraries to env generation script by @manopapad in #850
  • Set Mypy version downloaded in CI by @Jacobfaib in #859
  • Remove numpy from conda build dependencies. by @bdice in #855
  • Control ucx presence in install_info more carefully by @bryevdv in #882

📖 Documentation

New Contributors

Full Changelog: v23.09.00...v23.11.00

v23.09.00

03 Oct 15:24
21ea7b3

Choose a tag to compare

This release includes a number of bug fixes for multi-process execution, and quality-of-life improvements to the build system and driver script.

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

What's Changed

🛠️ Improvements

📖 Documentation

  • Update CUDA Toolkit version in documentation by @ipdemes in #822

🐛 Bug Fixes

  • Pre-seed random number generators deterministically, to guard against control replication violations by @ipdemes in #809
  • Enable shard-local future creation for IO by @ipdemes in #835
  • Respect user-supplied PYTHONPATH by @bryevdv in #836
  • Use unordered detach operations by @ipdemes in #823
  • Fix oversubscription support in sharding functors by @ipdemes in #819
  • Respect the type of passed storage in create_store by @manopapad in #834

New Contributors

Full Changelog: v23.07.00...v23.09.00

v23.07.00

25 Jul 04:51
2b91db4

Choose a tag to compare

This release introduces support for resource scoping annotations, which allow parts of the program to be assigned to a subset of the available processors/GPUs. This release also includes some more examples of writing legate libraries, improved logging and safety checks, and a refactoring of legate.core's internals.

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

What's Changed

🚀 New Features

🛠️ Improvements

📖 Documentation

🐛 Bug Fixes

New Contributors

Full Changelog: v23.03.00...v23.07.00

v23.03.00

15 Mar 20:02
3b1b245

Choose a tag to compare

This is the beta release of Legate Core.

This release focuses on making it easier for developers to get started building libraries on top of Legate Core, including features like updated API documentation, helper CMake functions for bootstrapping new Legate library projects, and a new "Hello World" library example, that demos the use of fundamental Legate API calls.

This release also adds support for using the standard python interpreter for running Legate programs (in addition to using the custom legate driver script).

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

What's Changed

🐛 Bug Fixes

🚀 New Features

  • Default python interpreter support for Legate by @eddy16112 in #539
  • Build helper functions for legate projects, legate-hello example by @jjwilke in #571

🛠️ Improvements

📖 Documentation

New Contributors

Full Changelog: v23.01.00...v23.03.00

v23.01.00

31 Jan 03:38
e05983c

Choose a tag to compare

This release adds initial support for using the UCX Realm networking backend (for more efficient multi-node communication) and using Legion's new "collective views" feature (for improved scheduling of reduction operations). Both of these features are currently in preview mode, and not enabled by default. They are planned to become the default by next release, following further verification and tuning.

This release improves the build experience for developers, with fixes to corner cases in the cmake configuration, a rewrite of the build documentation, and a script for generating complete conda environments for development, covering all supported platforms.

This release also introduces improvements in user interface (improved jupyter support, more CLI options for debugging and profiling), memory usage (through better instance management in the mapper) and the Legate programming model (allowing libraries to add custom profiler annotations, and use arbitrary communicator libraries in their tasks).

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

What's Changed

🐛 Bug Fixes

  • Legion bug WAR: don't instantiate futures on framebuffer by @manopapad in #413
  • Handle conflicts for library-level args by @bryevdv in #416
  • Fix Transform class hierarchy by @manopapad in #427
  • Handle scalar outputs correctly in manual tasks by @magnatelee in #432
  • Explicitly build Legion if legion_dir or legion_src_dir is not provided by @trxcllnt in #411
  • Fix GPU shard computation by @bryevdv in #433
  • Only set default CMake generator if Ninja is available: Issue #374 by @jjwilke in #379
  • Fix an issue with editable installs by @bryevdv in #434
  • Allow only one of --legion-dir and --legion-src-dir by @jjwilke in #387
  • legate/util: fix a mypy error on MacOS by @rohany in #438
  • Improvements to legate.jupyter by @bryevdv in #425
  • Fix for cunumeric#668 by @manopapad in #453
  • Only keep traceback reprs, to avoid cycles by @bryevdv in #447
  • Fix returned legion paths for editable install with separate legion b… by @jjwilke in #442
  • Make install.py reconfigure editable installs when build type changes by @trxcllnt in #455
  • fix for -ll:networks none, we will init MPI if it has not been initialized by @eddy16112 in #465
  • Construct region-backed 0D stores in a correct way by @magnatelee in #450
  • Pass a sufficiently high default value for gasnet's ibv-max-hcas by @manopapad in #477
  • Make overlap check tight by @manopapad in #479
  • Conda env script fixes by @manopapad in #481
  • Fix some typos by @manopapad in #485
  • fix several reference cycle / leak related bugs by @rohany in #488
  • legate/core: fix FutureMap leak in communicator shutdown by @rohany in #495
  • src/core/mapping: adjust indirect copy mapping for GPUs by @rohany in #499
  • Don't access stream pools unless we're on GPUs by @magnatelee in #503
  • Update env gen script so OS type works for mac by @m3vaz in #523
  • Don't check for collective behavior when we have WRITE privilege by @manopapad in #526
  • All NCCL ranks on the same node must get the same NCCL_IB_HCA by @manopapad in #528
  • legate/core/_legion: add default new argument to dep part functions by @rohany in #527
  • Don't turn on Legate debug checks on debug-rel builds by @manopapad in #533
  • src/core: guard against missing projection functors in collective check by @rohany in #534
  • Erase cached reduction instances that cannot be acquired by @magnatelee in #536

🚀 New Features

🛠️ Improvements

New Contributors

  • @robinw0928 made their first contribution in #431
  • @SeyedMir made their first contribution in #516

Full Changelog: v22.10.00...v23.01.00

v22.10.00

13 Oct 22:30
c50fdd4

Choose a tag to compare

Release 22.10 contains several improvements to memory management. Those changes are to recycle memory space from GC'ed Legate stores more eagerly for fresh ones. Another big change in this release is a new build infrastructure based on CMake and scikit-build for the Legate ecosystem, which is a big leap over the previous ad-hoc build system. The release also includes two useful debugging features: 1) provenance tracking for tasks and other operator kinds issued by client libraries and 2) detailed logging for client library mappers.

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

What's Changed

🐛 Bug Fixes

🚀 New Features

🛠️ Improvements

📖 Documentation

New Contributors

Full Changelog: v22.08.00...v22.10.00

v22.08.00

09 Aug 03:36
aa83472

Choose a tag to compare

Release 22.08.00 includes two major features: exception support and a communicator library for CPU and OpenMP tasks. The exception support captures any exception raised by a Legate task and re-raises it as a Python exception. The communicator library allows CPU and OpenMP tasks to perform explicit communication.

Conda packages for this release are available at https://anaconda.org/legate/legate-core.

New Features

Improvements

Bug Fixes

  • Use phase barriers to work around the CUDA driver bug by @magnatelee in #246
  • Add missing includes to aid intellisense providers by @trxcllnt in #249
  • Minor type fix by @bryevdv in #252
  • Update the launcher to initialize MPI with MPI_THREAD_MULTIPLE by @magnatelee in #264
  • Set the GASNet variable for MPI init unconditionally by @magnatelee in #265
  • Assign correct dimensions to unbound stores by @magnatelee in #267
  • Set cuda virtual package as hard run requirement for gpu conda package by @m3vaz in #266
  • Fixes for building with setup.py outside conda, primarily Mac (#260) by @jjwilke in #263
  • use mpicc to compile the code when gasnet is enabled by @eddy16112 in #274
  • fix the coll for non-mpi case. by @eddy16112 in #291
  • StoreTransform needs a virtual destructor by @magnatelee in #304
  • Correctly handle 0-D stores backed by region fields by @magnatelee in #315
  • src: switch to abolute include path for pthread_barrier.h by @rohany in #311
  • Temporarily drop support for UDP conduit by @manopapad in #305

New Contributors

Full Changelog: v22.05.03...v22.08.00

v22.05.03

13 Jul 03:21
7a4f00c

Choose a tag to compare

This is a hotfix release updating the Legion version.

What's Changed

Full Changelog: v22.05.02...v22.05.03

v22.05.02

21 Jun 10:51
5f1f070

Choose a tag to compare

This hotfix release fixes issues in conda recipes.

What's Changed

  • Cherry pick: Freeze Conda Compiler Versions (#261) by @marcinz in #276
  • Cherry pick: Set cuda virtual package as hard run requirement for conda gpu package ( #266) by @marcinz in #277
  • Fix typo in conda run requirements by @m3vaz in #281

Full Changelog: v22.05.01...v22.05.02