{"title":"Enabling FPGAs as a True Device in the OpenCL Standard: Bridging the Gap for FPGAs","authors":"Vincent Mirian, P. Chow","doi":"10.1145/3078155.3078176","DOIUrl":null,"url":null,"abstract":"In our work with developing an OpenCL platform for FPGAs, we observed that the way that OpenCL is currently used on FPGAs does not expose the full capability of FPGAs to the programmer. In particular, FPGAs are spatial devices that can be partitioned by area with each partition programmed with a different function. The latest FPGAs can even be reconfigured dynamically such that one partition of the FPGA can be configured while the rest of the FPGA is still in use. The analogy with GPUs is that an OpenCL programmer can partition a GPU into multiple device objects, execute different kernels on each device object, and reprogram the device objects. An OpenCL programmer cannot do this with an FPGA even though the capability exists. As FPGA capacities continue to increase, the ability to partition and partially reconfigure the FPGA will become even more desirable. The fundamental issue is how FPGAs are currently viewed as devices in the OpenCL model. In this paper, we propose a small change to the OpenCL definition of a device that unlocks the full potential of FPGAs to the programmer.","PeriodicalId":267581,"journal":{"name":"Proceedings of the 5th International Workshop on OpenCL","volume":"58 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 5th International Workshop on OpenCL","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3078155.3078176","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
In our work with developing an OpenCL platform for FPGAs, we observed that the way that OpenCL is currently used on FPGAs does not expose the full capability of FPGAs to the programmer. In particular, FPGAs are spatial devices that can be partitioned by area with each partition programmed with a different function. The latest FPGAs can even be reconfigured dynamically such that one partition of the FPGA can be configured while the rest of the FPGA is still in use. The analogy with GPUs is that an OpenCL programmer can partition a GPU into multiple device objects, execute different kernels on each device object, and reprogram the device objects. An OpenCL programmer cannot do this with an FPGA even though the capability exists. As FPGA capacities continue to increase, the ability to partition and partially reconfigure the FPGA will become even more desirable. The fundamental issue is how FPGAs are currently viewed as devices in the OpenCL model. In this paper, we propose a small change to the OpenCL definition of a device that unlocks the full potential of FPGAs to the programmer.