Ricardo Coelho, Felipe Tanus, Álvaro Freitas Moreira, G. Nazar
{"title":"用于纯函数式程序的并行加速器体系结构","authors":"Ricardo Coelho, Felipe Tanus, Álvaro Freitas Moreira, G. Nazar","doi":"10.1109/isvlsi49217.2020.00070","DOIUrl":null,"url":null,"abstract":"Typical reconfigurable accelerators are either limited to instruction-level parallelism or require developers to manage parallelism in the source code manually. Pure functional languages simplify this task because they disallow the occurrence of side effects allowing safe and automatic identification of parallel operations. On the other hand, the higher level of abstraction of functional languages, when compared to imperative languages, typically makes the execution of functional programs less efficient. To improve this efficiency, we present ACQuA, a parallel accelerator that can be programmed with pure functional languages. ACQuA exploits the parallelism available in independent function calls, using hardware support and a dedicated memory organization to minimize the overheads of scheduling, communication, and synchronization. ACQuA also includes optimizations targeting the efficient execution of map, an important higher-order function in functional languages. We evaluate the effectiveness of these optimizations and ACQuA's scalability in terms of area and performance, showing near-optimal speedup for applications with independent function calls while using manageable amounts of hardware resources.","PeriodicalId":423851,"journal":{"name":"2020 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"ACQuA: A Parallel Accelerator Architecture for Pure Functional Programs\",\"authors\":\"Ricardo Coelho, Felipe Tanus, Álvaro Freitas Moreira, G. Nazar\",\"doi\":\"10.1109/isvlsi49217.2020.00070\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Typical reconfigurable accelerators are either limited to instruction-level parallelism or require developers to manage parallelism in the source code manually. Pure functional languages simplify this task because they disallow the occurrence of side effects allowing safe and automatic identification of parallel operations. On the other hand, the higher level of abstraction of functional languages, when compared to imperative languages, typically makes the execution of functional programs less efficient. To improve this efficiency, we present ACQuA, a parallel accelerator that can be programmed with pure functional languages. ACQuA exploits the parallelism available in independent function calls, using hardware support and a dedicated memory organization to minimize the overheads of scheduling, communication, and synchronization. ACQuA also includes optimizations targeting the efficient execution of map, an important higher-order function in functional languages. We evaluate the effectiveness of these optimizations and ACQuA's scalability in terms of area and performance, showing near-optimal speedup for applications with independent function calls while using manageable amounts of hardware resources.\",\"PeriodicalId\":423851,\"journal\":{\"name\":\"2020 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)\",\"volume\":\"40 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-07-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/isvlsi49217.2020.00070\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE Computer Society Annual Symposium on VLSI (ISVLSI)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/isvlsi49217.2020.00070","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
ACQuA: A Parallel Accelerator Architecture for Pure Functional Programs
Typical reconfigurable accelerators are either limited to instruction-level parallelism or require developers to manage parallelism in the source code manually. Pure functional languages simplify this task because they disallow the occurrence of side effects allowing safe and automatic identification of parallel operations. On the other hand, the higher level of abstraction of functional languages, when compared to imperative languages, typically makes the execution of functional programs less efficient. To improve this efficiency, we present ACQuA, a parallel accelerator that can be programmed with pure functional languages. ACQuA exploits the parallelism available in independent function calls, using hardware support and a dedicated memory organization to minimize the overheads of scheduling, communication, and synchronization. ACQuA also includes optimizations targeting the efficient execution of map, an important higher-order function in functional languages. We evaluate the effectiveness of these optimizations and ACQuA's scalability in terms of area and performance, showing near-optimal speedup for applications with independent function calls while using manageable amounts of hardware resources.