{"title":"基于树的硬件递归分治算法","authors":"Braeden Morrison, M. Lukowiak","doi":"10.23919/MIXDES52406.2021.9497597","DOIUrl":null,"url":null,"abstract":"Recursion is a very efficient abstraction that can be found in definitions of many algorithms. However, recursion can be difficult to implement in hardware and as a result is not supported by the majority of high-level synthesis tools (HLS). This work introduces a new framework for implementing recursive functions in hardware, which we call TreeRecur. TreeRecur uses trees to represent the branching recursive function calls of divide-and-conquer algorithms, which makes it possible to take advantage of their procedure-level parallelism. To allow for design flexibility, TreeRecur executes algorithms using a configurable number of independent function processors. These processors are generated using HLS design flow, making it easy to implement a variety of different algorithms. Functionality of our framework was tested on a field programmable gate array (FPGA) using two simple algorithms and compared against software implementations of the same algorithms. Performance results were collected in terms of execution speed and energy consumption. The execution speeds of TreeRecur are shown to be comparable to software programs when differences in clock speed are accounted for and its energy consumption is up to 11 times better than the software solution’s.","PeriodicalId":375541,"journal":{"name":"2021 28th International Conference on Mixed Design of Integrated Circuits and System","volume":"91 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Tree-Based Hardware Recursion for Divide-and-Conquer Algorithms\",\"authors\":\"Braeden Morrison, M. Lukowiak\",\"doi\":\"10.23919/MIXDES52406.2021.9497597\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Recursion is a very efficient abstraction that can be found in definitions of many algorithms. However, recursion can be difficult to implement in hardware and as a result is not supported by the majority of high-level synthesis tools (HLS). This work introduces a new framework for implementing recursive functions in hardware, which we call TreeRecur. TreeRecur uses trees to represent the branching recursive function calls of divide-and-conquer algorithms, which makes it possible to take advantage of their procedure-level parallelism. To allow for design flexibility, TreeRecur executes algorithms using a configurable number of independent function processors. These processors are generated using HLS design flow, making it easy to implement a variety of different algorithms. Functionality of our framework was tested on a field programmable gate array (FPGA) using two simple algorithms and compared against software implementations of the same algorithms. Performance results were collected in terms of execution speed and energy consumption. The execution speeds of TreeRecur are shown to be comparable to software programs when differences in clock speed are accounted for and its energy consumption is up to 11 times better than the software solution’s.\",\"PeriodicalId\":375541,\"journal\":{\"name\":\"2021 28th International Conference on Mixed Design of Integrated Circuits and System\",\"volume\":\"91 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-06-24\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2021 28th International Conference on Mixed Design of Integrated Circuits and System\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.23919/MIXDES52406.2021.9497597\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 28th International Conference on Mixed Design of Integrated Circuits and System","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.23919/MIXDES52406.2021.9497597","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Tree-Based Hardware Recursion for Divide-and-Conquer Algorithms
Recursion is a very efficient abstraction that can be found in definitions of many algorithms. However, recursion can be difficult to implement in hardware and as a result is not supported by the majority of high-level synthesis tools (HLS). This work introduces a new framework for implementing recursive functions in hardware, which we call TreeRecur. TreeRecur uses trees to represent the branching recursive function calls of divide-and-conquer algorithms, which makes it possible to take advantage of their procedure-level parallelism. To allow for design flexibility, TreeRecur executes algorithms using a configurable number of independent function processors. These processors are generated using HLS design flow, making it easy to implement a variety of different algorithms. Functionality of our framework was tested on a field programmable gate array (FPGA) using two simple algorithms and compared against software implementations of the same algorithms. Performance results were collected in terms of execution speed and energy consumption. The execution speeds of TreeRecur are shown to be comparable to software programs when differences in clock speed are accounted for and its energy consumption is up to 11 times better than the software solution’s.