a dynamic memory allocation library for high level
play

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


  1. 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

  2. Dynamic Memory Allocation in HLS: Current Problems No Obvious Way TO include it! Where and How Big Performance & Which Allocator? should the Area Problems Arena(Heap) Be? 2

  3. Dynamic Memory Allocation in HLS: Why Include it? ● No More Code-Refactoring! ● No More Memory Over-Provisioning ● Portability ● Marginal Performance and Area Impacts!!! 3

  4. The Allocators gnumem Linked-List Allocator. bitmem Bitmap Allocator. linmem Linear Allocator. budmem Buddy Allocator. lutmem Look-Up Table Allocator. 4

  5. Our Approach Implement Algorithms in HLS-friendly C Library ● Arena (heap) implemented as BRAM Automate Transform with LLVM Pass ● User can select ○ Allocator Algorithm ○ Heap Size Available on Github: https://github.com/ngiambla/libmem 5

  6. Example: // USER PROGRAM #TCL PARAMETERS FOR USER libmem void check_this_out() { int * arr = (int*)malloc(SIZE); set_parameter HEAP_SZ 65536 //… do stuff here set_parameter ALLOC_S gnu free(arr); } void check_this_out() { int * arr = (int*)gnu_malloc(SIZE); //… do stuff here gnu_free(arr); 6 }

  7. Allocator Evaluation 7

  8. Results: Area 8

  9. Results: Performance 9

  10. Benchmarks Typical Memory Request Patterns Real world apps list hash Random: random request, random release priq Square: request-do-release dfs stack Triangular: iterative-request do iterative-release Available on Github: https://github.com/ngiambla/dmbenchhls 10

  11. Take-away Suggest an allocator based on Memory Pattern AND User Requirements 11

  12. Conclusions ● One Allocator does not ‘rule them all’ ● Performance and area are marginally affected by allocators! ● Allocators within HLS work and are useful 12

  13. THANKS! SEE ME AT THE POSTER Downloads: https://github.com/ngiambla/libmem https://github.com/ngiambla/dmbenchhls 13

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend