Dynamic kernel memory space allocation
AssigneeAdvanced Micro Devices, Inc.
InventorsAnthony Gutierrez, Muhammad Amber Hassaan, Sooraj Puthoor
Life of this patent
Estimating the term…
Abstract
A processing unit includes one or more processor cores and a set of registers to store configuration information for the processing unit. The processing unit also includes a coprocessor configured to receive a request to modify a memory allocation for a kernel concurrently with the kernel executing on the at least one processor core. The coprocessor is configured to modify the memory allocation by modifying the configuration information stored in the set of registers. In some cases, initial configuration information is provided to the set of registers by a different processing unit. The initial configuration information is stored in the set of registers prior to the coprocessor modifying the configuration information.
Claims20
A processing unit comprising:
- a plurality of processing elements configured to execute a plurality of kernels;
- and
- a hardware coprocessor separate from the plurality of processing elements, configured to:
- receive, from a second processing unit external to the processing unit, prior to runtime of the plurality of kernels, an indication of allocation of a memory pool to the processing unit;
- deallocate a memory chunk of a plurality of memory chunks of the memory pool from a first kernel of the plurality of kernels during a runtime of the first kernel;
- and
- allocate the memory chunk to a second kernel of the plurality of kernels during a runtime of the second kernel.
A method comprising:
- receiving, by a hardware coprocessor, prior to execution of a plurality of kernels on a plurality of processing elements separate from the coprocessor, an indication of allocation of a memory pool;
- deallocating a first memory chunk of a plurality of memory chunks of the memory pool from a first kernel of the plurality of kernels during execution of the first kernel;
- and
- allocating the first memory chunk to a second kernel of the plurality of kernels during execution of the second kernel.
A processing unit comprising:
- a plurality of processing elements configured to execute a plurality of kernels;
- a first memory device;
- and
- a hardware coprocessor separate from the plurality of processing elements, configured to:
- deallocate a memory chunk of a plurality of memory chunks of a memory pool of the first memory device from a first kernel of the plurality of kernels during execution of the first kernel;
- and
- allocate the memory chunk to a second kernel of the plurality of kernels during execution of the second kernel.
Dependencies are inferred from the claim text.