Skip to content

Special handling for non-escaping task-temporary allocations #1918

@manopapad

Description

@manopapad

Give applications the ability to indicate that a task's temporary pool cannot escape the lifetime of the task (e.g. no output regions and all futures for the task are mapped in advance). Then Legion can pre-allocate the pool and immediately issue a deferred deletion of the backing instance for the pool to Realm such that the deferred deletion can be used to satisfy future deferred allocations.

One thing to confirm, is doing something like this acceptable as a "non-escaping" use?

auto return_buffer = Legion::UntypedDeferredValue(...);
return_buffer.finalize(task_ctx);

Asking because this is what Legate does to e.g. pack multiple return values together.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions