{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,21]],"date-time":"2026-08-21T13:30:06Z","timestamp":1787319006225,"version":"build-2736575974"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2023,7,27]],"date-time":"2023-07-27T00:00:00Z","timestamp":1690416000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"National Science Foundation","award":["1763848"],"award-info":[{"award-number":["1763848"]}]},{"name":"Intel Rising Star Faculty"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2023,9,30]]},"abstract":"<jats:p>\n                    Block random access memories (BRAMs) are the storage houses of FPGAs, providing extensive on-chip memory bandwidth to the compute units implemented using logic blocks and digital signal processing slices. We propose modifying BRAMs to convert them to CoMeFa\u00a0 (\n                    <jats:italic>Co<\/jats:italic>\n                    mpute-in-\n                    <jats:italic>Me<\/jats:italic>\n                    mory Blocks for\n                    <jats:italic>F<\/jats:italic>\n                    PG\n                    <jats:italic>A<\/jats:italic>\n                    s) random access memories (RAMs). These RAMs provide highly parallel compute-in-memory by combining computation and storage capabilities in one block. CoMeFa RAMs\u00a0utilize the true dual-port nature of FPGA BRAMs and contain multiple configurable single-bit bit-serial processing elements. CoMeFa\u00a0RAMs can be used to compute with any precision, which is extremely important for applications like deep learning (DL). Adding CoMeFa RAMs\u00a0to FPGAs significantly increases their compute density while also reducing data movement. We explore and propose two architectures of these RAMs: CoMeFa-D\u00a0(optimized for delay) and CoMeFa-A\u00a0(optimized for area). Compared to existing proposals, CoMeFa RAMs\u00a0do not require changing the underlying static RAM technology like simultaneously activating multiple wordlines on the same port, and are practical to implement. CoMeFa RAMs\u00a0are especially suitable for parallel and compute-intensive applications like DL, but these versatile blocks find applications in diverse applications like signal processing and databases, among others. By augmenting an Intel Arria 10\u2013like FPGA with CoMeFa-D\u00a0(CoMeFa-A) RAMs at the cost of 3.8% (1.2%) area, and with algorithmic improvements and efficient mapping, we observe a geomean speedup of 2.55\u00d7 (1.85\u00d7) across microbenchmarks from various applications and a geomean speedup of up to 2.5\u00d7 across multiple deep neural networks. Replacing all or some BRAMs with CoMeFa RAMs\u00a0in FPGAs can make them better accelerators of DL workloads.\n                  <\/jats:p>","DOI":"10.1145\/3603504","type":"journal-article","created":{"date-parts":[[2023,6,5]],"date-time":"2023-06-05T06:00:42Z","timestamp":1685944842000},"page":"1-34","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":20,"title":["CoMeFa: Deploying Compute-in-Memory on FPGAs for Deep Learning Acceleration"],"prefix":"10.1145","volume":"16","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2547-4424","authenticated-orcid":false,"given":"Aman","family":"Arora","sequence":"first","affiliation":[{"name":"University of Texas, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-5504-978X","authenticated-orcid":false,"given":"Atharva","family":"Bhamburkar","sequence":"additional","affiliation":[{"name":"BITS Pilani Goa, India"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-4531-9671","authenticated-orcid":false,"given":"Aatman","family":"Borda","sequence":"additional","affiliation":[{"name":"BITS Pilani, India"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5725-7048","authenticated-orcid":false,"given":"Tanmay","family":"Anand","sequence":"additional","affiliation":[{"name":"BITS Pilani, India"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3327-0595","authenticated-orcid":false,"given":"Rishabh","family":"Sehgal","sequence":"additional","affiliation":[{"name":"University of Texas, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8485-581X","authenticated-orcid":false,"given":"Bagus","family":"Hanindhito","sequence":"additional","affiliation":[{"name":"University of Texas, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3634-3999","authenticated-orcid":false,"given":"Pierre-Emmanuel","family":"Gaillardon","sequence":"additional","affiliation":[{"name":"University of Utah, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0258-6776","authenticated-orcid":false,"given":"Jaydeep","family":"Kulkarni","sequence":"additional","affiliation":[{"name":"University of Texas, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8747-5214","authenticated-orcid":false,"given":"Lizy K.","family":"John","sequence":"additional","affiliation":[{"name":"University of Texas, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,7,27]]},"reference":[{"key":"e_1_3_1_2_2","unstructured":"Achronix. 2019. Speedster7t FPGAs. Retrieved June 9 2023 from https:\/\/www.achronix.com\/product\/speedster7t-fpgas."},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2017.21"},{"key":"e_1_3_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCSI.2018.2848999"},{"key":"e_1_3_1_5_2","unstructured":"Altera. 2015. Designing Filters for High Performance. Retrieved June 9 2023 from https:\/\/www.intel.cn\/content\/dam\/www\/programmable\/us\/en\/pdfs\/literature\/wp\/wp-01260-stratix10-designing-filters-for-high-performance.pdf."},{"key":"e_1_3_1_6_2","first-page":"23","volume-title":"Proceedings of the International Symposium on Field-Programmable Gate Arrays (FPGA\u201921)","year":"2021","unstructured":"Aman Arora, Samidh Mehta, Vaughn Betz, and Lizy K. John. 2021. Tensor slices to the rescue: Supercharging ML acceleration on FPGAs. In Proceedings of the International Symposium on Field-Programmable Gate Arrays (FPGA\u201921). 23\u201333."},{"key":"e_1_3_1_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM53951.2022.9786179"},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL53798.2021.00068"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/3529650"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","DOI":"10.1109\/IEEECONF53345.2021.9723277"},{"key":"e_1_3_1_11_2","volume-title":"Proceedings of the International Conference on Field Programmable Technology (FPT\u201920)","year":"2020","unstructured":"Andrew Boutros, Eriko Nurvitadhi, Rui Ma, Sergey Gribok, Zhipeng Zhao, James C. Hoe, Vaughn Betz, and Martin Langhammer. 2020. Beyond peak performance: Comparing the real performance of AI-optimized FPGAs and GPUs. In Proceedings of the International Conference on Field Programmable Technology (FPT\u201920)."},{"key":"e_1_3_1_12_2","first-page":"35","volume-title":"Proceedings of the 2018 28th International Conference on Field Programmable Logic and Applications (FPL\u201918)","author":"Boutros A.","year":"2018","unstructured":"A. Boutros, S. Yazdanshenas, and V. Betz. 2018. Embracing diversity: Enhanced DSP blocks for low-precision deep learning on FPGAs. In Proceedings of the 2018 28th International Conference on Field Programmable Logic and Applications (FPL\u201918). 35\u2013357."},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2012.6339206"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2016.13"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2018.00040"},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/3393668"},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/54.748803"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2018.00012"},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/3352460.3358260"},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/3370748.3406550"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.1147\/JRD.2019.2934048"},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3307650.3322237"},{"key":"e_1_3_1_23_2","unstructured":"Intel. 2016. Hybrid Memory Cube Controller IP Core User Guide v16.0. Retrieved June 9 2023 from https:\/\/www.intel.com\/content\/www\/us\/en\/docs\/programmable\/683854\/16-0\/introduction.html."},{"key":"e_1_3_1_24_2","unstructured":"Intel. 2020. Intel Arria 10 Device Datasheet. Retrieved June 9 2023 from https:\/\/www.intel.com.tw\/content\/dam\/www\/programmable\/us\/en\/pdfs\/literature\/hb\/arria-10\/a10_datasheet.pdf."},{"key":"e_1_3_1_25_2","unstructured":"Intel. 2021. Intel Arria 10 Device Overview. Retrieved June 9 2023 from https:\/\/www.intel.com\/content\/www\/us\/en\/docs\/programmable\/683332\/current\/device-overview.html."},{"key":"e_1_3_1_26_2","unstructured":"Intel. 2021. Intel Arria 10 Product Table. Retrieved June 9 2023 from. https:\/\/www.intel.cn\/content\/dam\/www\/programmable\/us\/en\/pdfs\/literature\/pt\/arria-10-product-table.pdf."},{"key":"e_1_3_1_27_2","unstructured":"Intel. 2021. Intel Arria 10 Transceiver PHY User Guide. Retrieved June 9 2023 from https:\/\/www.intel.cn\/content\/dam\/www\/programmable\/us\/en\/pdfs\/literature\/hb\/arria-10\/ug_arria10_xcvr_phy.pdf."},{"key":"e_1_3_1_28_2","doi-asserted-by":"publisher","DOI":"10.1109\/TVLSI.2017.2776954"},{"key":"e_1_3_1_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2016.2515510"},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2857261"},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2020.3034117"},{"key":"e_1_3_1_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICASSP.2014.6855225"},{"key":"e_1_3_1_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2011.89"},{"key":"e_1_3_1_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2015.53"},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/2996459"},{"key":"e_1_3_1_36_2","first-page":"57","volume-title":"Proceedings of the International Symposium on Field-Programmable Gate Arrays (FPGA\u201921)","year":"2021","unstructured":"Martin Langhammer, Eriko Nurvitadhi, Bogdan Pasca, and Sergey Gribok. 2021. Stratix 10 NX Architecture and Applications. In Proceedings of the International Symposium on Field-Programmable Gate Arrays (FPGA\u201921). 57\u201367"},{"key":"e_1_3_1_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/2435264.2435292"},{"key":"e_1_3_1_38_2","first-page":"288","volume-title":"Proceedings of the 2017 50th Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201917)","author":"Li Shuangchen","year":"2017","unstructured":"Shuangchen Li, Dimin Niu, Krishna T. Malladi, Hongzhong Zheng, Bob Brennan, and Yuan Xie. 2017. DRISA: A DRAM-based reconfigurable in-situ accelerator. In Proceedings of the 2017 50th Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201917). 288\u2013301."},{"issue":"2","key":"e_1_3_1_39_2","first-page":"9","article-title":"VTR 8: High performance CAD and customizable FPGA architecture modelling","volume":"13","author":"Murray Kevin E.","year":"2020","unstructured":"Kevin E. Murray, Oleg Petelin, Sheng Zhong, Jai Min Wang, Mohamed ElDafrawy, Jean-Philippe Legault, Eugene Sha, et\u00a0al. 2020. VTR 8: High performance CAD and customizable FPGA architecture modelling. ACM Transactions on Reconfigurable Technology and Systems 13, 2 (2020), Article 9, 55 pages.","journal-title":"ACM Transactions on Reconfigurable Technology and Systems"},{"key":"e_1_3_1_40_2","volume-title":"Baidu DeepBench","author":"Narang Sharan","year":"2016","unstructured":"Sharan Narang. 2016. Baidu DeepBench. Retrieved June 9, 2023 from https:\/\/svail.github.io\/DeepBench\/."},{"key":"e_1_3_1_41_2","volume-title":"FreePDK45","year":"2018","unstructured":"NCSU. 2018. FreePDK45. Retrieved June 9, 2023 from https:\/\/eda.ncsu.edu\/freepdk45\/."},{"key":"e_1_3_1_42_2","doi-asserted-by":"crossref","unstructured":"Shvetank Prakash Tim Callahan Joseph Bushagour Colby Banbury Alan V. Green Pete Warden Tim Ansell and Vijay Janapa Reddi. 2022. CFU playground: Full-stack open-source framework for tiny machine learning (tinyML) acceleration on FPGAs. arXiv:2201.01863 [cs] (2022). http:\/\/arxiv.org\/abs\/2201.01863.","DOI":"10.1109\/ISPASS57527.2023.00024"},{"key":"e_1_3_1_43_2","first-page":"35","volume-title":"Proceedings of the 2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM\u201919)","author":"Rasoulinezhad S.","year":"2019","unstructured":"S. Rasoulinezhad, H. Zhou, L. Wang, and P. H. W. Leong. 2019. PIR-DSP: An FPGA DSP block architecture for multi-precision deep neural networks. In Proceedings of the 2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM\u201919). 35\u201344."},{"key":"e_1_3_1_44_2","doi-asserted-by":"crossref","first-page":"273","DOI":"10.1145\/3123939.3124544","volume-title":"Proceedings of the 2017 50th Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201917)","author":"Seshadri Vivek","year":"2017","unstructured":"Vivek Seshadri, Donghyuk Lee, Thomas Mullins, Hasan Hassan, Amirali Boroumand, Jeremie Kim, Michael A. Kozuch, Onur Mutlu, Phillip B. Gibbons, and Todd C. Mowry. 2017. Ambit: In-memory accelerator for bulk bitwise operations using commodity DRAM technology. In Proceedings of the 2017 50th Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201917). 273\u2013287."},{"key":"e_1_3_1_45_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2016.12"},{"key":"e_1_3_1_46_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.vlsi.2017.02.002"},{"key":"e_1_3_1_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3123939.3123986"},{"key":"e_1_3_1_48_2","volume-title":"Advances in Neural Information Processing Systems","year":"2019","unstructured":"Xiao Sun, Jungwook Choi, Chia-Yu Chen, Naigang Wang, Swagath Venkataramani, Vijayalakshmi Srinivasan, Xiaodong Cui, Wei Zhang, and Kailash Gopalakrishnan. 2019. Hybrid 8-bit floating point (HFP8) training and inference for deep neural networks. In Advances in Neural Information Processing Systems, Vol. 32. Curran Associates.https:\/\/proceedings.neurips.cc\/paper\/2019\/file\/65fc9fb4897a89789352e211ca2d398f-Paper.pdf."},{"key":"e_1_3_1_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3154425"},{"key":"e_1_3_1_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/CICC.2015.7338368"},{"key":"e_1_3_1_51_2","volume-title":"Predictive Technology Model","author":"University Arizona State","year":"2012","unstructured":"Arizona State University. 2012. Predictive Technology Model. Retrieved June 9, 2023 from http:\/\/ptm.asu.edu\/."},{"key":"e_1_3_1_52_2","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2019.2939682"},{"key":"e_1_3_1_53_2","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2019.2939682"},{"key":"e_1_3_1_54_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM51124.2021.00018"},{"key":"e_1_3_1_55_2","unstructured":"Xilinx. 2018. AI Engines and Their Applications. Retrieved June 9 2023 from https:\/\/www.xilinx.com\/support\/documentation\/white_papers\/wp506-ai-engine.pdf."},{"key":"e_1_3_1_56_2","volume-title":"UltraScale Architecture Memory Resources","year":"2021","unstructured":"Xilinx. 2021. UltraScale Architecture Memory Resources. Retrieved June 9, 2023 from https:\/\/www.xilinx.com\/support\/documentation\/user_guides\/ug573-ultrascale-memory-resources.pdf."},{"issue":"1","key":"e_1_3_1_57_2","first-page":"3","article-title":"COFFE2: Automatic modelling and optimization of complex and heterogeneous FPGA architectures","volume":"12","author":"Yazdanshenas Sadegh","year":"2019","unstructured":"Sadegh Yazdanshenas and Vaughn Betz. 2019. COFFE2: Automatic modelling and optimization of complex and heterogeneous FPGA architectures. ACM Transactions on Reconfigurable Technology and Systems 12, 1 (Jan.2019), Article 3, 27 pages.","journal-title":"ACM Transactions on Reconfigurable Technology and Systems"},{"key":"e_1_3_1_58_2","doi-asserted-by":"publisher","DOI":"10.1145\/3020078.3021731"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3603504","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3603504","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T12:46:26Z","timestamp":1750164386000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3603504"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7,27]]},"references-count":57,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2023,9,30]]}},"alternative-id":["10.1145\/3603504"],"URL":"https:\/\/doi.org\/10.1145\/3603504","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"value":"1936-7406","type":"print"},{"value":"1936-7414","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,7,27]]},"assertion":[{"value":"2023-01-30","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-06-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-07-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}