Nicholas V. Giamblanco and Jason H. Anderson University of Toronto, Canada
- Dept. of Electrical and Computer Engineering
FPL 2019
A Dynamic Memory Allocation Library for High-Level Synthesis - - PowerPoint PPT Presentation
A Dynamic Memory Allocation Library for High-Level Synthesis Nicholas V. Giamblanco and Jason H. Anderson University of Toronto, Canada Dept. of Electrical and Computer Engineering FPL 2019 Dynamic Memory Allocation in HLS: Current Problems
Nicholas V. Giamblanco and Jason H. Anderson University of Toronto, Canada
FPL 2019
Where and How Big should the Arena(Heap) Be? Performance & Area Problems Which Allocator?
2
No Obvious Way TO include it!
3
Linked-List Allocator.
gnumem bitmem
Bitmap Allocator.
linmem
Linear Allocator.
budmem
Buddy Allocator.
lutmem
Look-Up Table Allocator.
4
Available on Github: https://github.com/ngiambla/libmem
5
○ Allocator Algorithm ○ Heap Size
// USER PROGRAM void check_this_out() { int * arr = (int*)malloc(SIZE); //… do stuff here free(arr); } void check_this_out() { int * arr = (int*)gnu_malloc(SIZE); //… do stuff here gnu_free(arr); }
6
#TCL PARAMETERS FOR USER set_parameter HEAP_SZ 65536 set_parameter ALLOC_S gnu
libmem
7
8
9
Real world apps
Random: random request, random release Square: request-do-release Triangular: iterative-request do iterative-release list priq stack hash dfs
Available on Github: https://github.com/ngiambla/dmbenchhls
10
Typical Memory Request Patterns
11
12
13