Enhancing high-level synthesis using a meta-programming approach
File(s)Artisan_TCJournal_FINAL.pdf (2.26 MB)
Accepted version
Author(s)
Vandebon, Jessica
De Figueiredo Coutinho, Jose Gabriel
Luk, Wayne
Nurvitadhi, Eriko
Type
Journal Article
Abstract
In today's increasingly heterogeneous compute landscape, there is high demand for design tools that offer seemingly contradictory features: portable programming abstractions that hide underlying architectural detail, and the capability to optimise and exploit architectural features. Our meta-programming approach, Artisan, decouples application functionality from optimisation concerns to address the complexity of mapping high-level application descriptions onto heterogeneous platforms from which they are abstracted. With Artisan, application experts focus on algorithmic behaviour, while platform and domain experts focus on optimisation and mapping. Artisan offers complete design-flow orchestration in a unified programming environment based on Python 3 to enable accessible codification of reusable optimisation strategies that can be automatically applied to high-level application descriptions. We have developed and evaluated an Artisan prototype and a set of customised meta-programs used to automatically optimise six case study applications for CPU+FPGA targets. In our experiments, Artisan-optimised designs achieve the same order of magnitude speedup as manually optimised designs compared to corresponding unoptimised software.
Date Issued
2021-12-01
Date Acceptance
2021-06-20
Citation
IEEE Transactions on Computers, 2021, 70 (12), pp.2043-2055
ISSN
0018-9340
Publisher
Institute of Electrical and Electronics Engineers (IEEE)
Start Page
2043
End Page
2055
Journal / Book Title
IEEE Transactions on Computers
Volume
70
Issue
12
Copyright Statement
© 2021 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
Identifier
https://ieeexplore.ieee.org/document/9483648
Subjects
Science & Technology
Technology
Computer Science, Hardware & Architecture
Engineering, Electrical & Electronic
Computer Science
Engineering
Optimization
Tools
Kernel
Software
Task analysis
Python
Programming
Heterogeneous computing
meta-programming
FPGA
high-level synthesis
Computer Hardware & Architecture
0803 Computer Software
0805 Distributed Computing
1006 Computer Hardware
Publication Status
Published
Date Publish Online
2021-07-13