Hi all,
This release brings two major new features to the Legion programming system:
- "One pool" memory allocation scheme, which allows tasks that require dynamic memory to specify their requirements up front, so that Legion does not need to split the memory space between two (eager and deferred) pools.
- Automatic tracing for applications with repetitive sequences of tasks, without requiring applications to manually annotate those tasks with trace calls.
A number of other improvements, minimum version changes, and bug fixes are also included. Full release notes:
- Build
- Minimum required CMake version is now 3.22
- Minimum required CUDA version is now 11.7
- Experimental CMake build system under
/realm for Realm standalone builds
- Legion
- Legion now uses a "one pool" memory allocation strategy that removes the need to split memory into two pools via the
-lg:eager_alloc_percentageflag. Applications may take advantage of the new support to specify the additional memory required by each task - Legion now automatically discovers traces of repeated sequences of tasks by default. Existing traces specified with
begin_trace and end_traceare still respected and take priority over automatic traces. If automatic traces are not desired, they can be disabled with -lg:no_auto_tracing - Added support for user-specified profiling ranges
- Reference count sparsity maps correctly so the memory associated with them is now reclaimed
- Tools
- Minimum required Rust version is now 1.84
- Fix for correctly processing negative points and rects
- Support for profiling external handshake objects
- Realm
- The hwloc support for topology discovery in Realm, which had bitrotted, has been revived and substantially improved
- Support for NVIDIA Blackwell GPU architecture
- Expanded unit test coverage
-- Elliott Slaughter
"Don't worry about what anybody else is going to do. The best way to predict the future is to invent it." - Alan Kay