{"id":"https://openalex.org/W4281707342","doi":"https://doi.org/10.1145/3519939.3523446","title":"Exocompilation for productive programming of hardware accelerators","display_name":"Exocompilation for productive programming of hardware accelerators","publication_year":2022,"publication_date":"2022-06-02","ids":{"openalex":"https://openalex.org/W4281707342","doi":"https://doi.org/10.1145/3519939.3523446"},"language":"en","primary_location":{"id":"doi:10.1145/3519939.3523446","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3519939.3523446","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3519939.3523446","source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3519939.3523446","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5056230848","display_name":"Yuka Ikarashi","orcid":"https://orcid.org/0000-0001-5255-0918"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Yuka Ikarashi","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5034400503","display_name":"Gilbert Bernstein","orcid":"https://orcid.org/0000-0002-3016-1169"},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Gilbert Louis Bernstein","raw_affiliation_strings":["University of California at Berkeley, USA"],"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5065315146","display_name":"Alex Reinking","orcid":"https://orcid.org/0000-0003-3285-2112"},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Alex Reinking","raw_affiliation_strings":["University of California at Berkeley, USA"],"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5015017700","display_name":"Hasan Genc","orcid":"https://orcid.org/0000-0001-8596-6135"},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Hasan Genc","raw_affiliation_strings":["University of California at Berkeley, USA"],"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5023577472","display_name":"Jonathan Ragan\u2010Kelley","orcid":"https://orcid.org/0000-0001-6243-9543"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jonathan Ragan-Kelley","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5056230848"],"corresponding_institution_ids":["https://openalex.org/I63966007"],"apc_list":null,"apc_paid":null,"fwci":11.2035,"has_fulltext":true,"cited_by_count":52,"citation_normalized_percentile":{"value":0.9906626,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":96,"max":100},"biblio":{"volume":null,"issue":null,"first_page":"703","last_page":"718"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10036","display_name":"Advanced Neural Network Applications","score":0.9977999925613403,"subfield":{"id":"https://openalex.org/subfields/1707","display_name":"Computer Vision and Pattern Recognition"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9926000237464905,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8418378829956055},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7963420152664185},{"id":"https://openalex.org/keywords/x86","display_name":"x86","score":0.7602821588516235},{"id":"https://openalex.org/keywords/kernel","display_name":"Kernel (algebra)","score":0.5435757637023926},{"id":"https://openalex.org/keywords/assembly-language","display_name":"Assembly language","score":0.5332552790641785},{"id":"https://openalex.org/keywords/scheduling","display_name":"Scheduling (production processes)","score":0.5308846831321716},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4945089519023895},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4464355707168579},{"id":"https://openalex.org/keywords/state","display_name":"State (computer science)","score":0.4443281292915344},{"id":"https://openalex.org/keywords/high-level-synthesis","display_name":"High-level synthesis","score":0.436831533908844},{"id":"https://openalex.org/keywords/hardware-acceleration","display_name":"Hardware acceleration","score":0.4206467866897583},{"id":"https://openalex.org/keywords/computer-architecture","display_name":"Computer architecture","score":0.41951489448547363},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.41733431816101074},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4022999405860901},{"id":"https://openalex.org/keywords/field-programmable-gate-array","display_name":"Field-programmable gate array","score":0.34607863426208496},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.3182542026042938}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8418378829956055},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7963420152664185},{"id":"https://openalex.org/C170723468","wikidata":"https://www.wikidata.org/wiki/Q182933","display_name":"x86","level":3,"score":0.7602821588516235},{"id":"https://openalex.org/C74193536","wikidata":"https://www.wikidata.org/wiki/Q574844","display_name":"Kernel (algebra)","level":2,"score":0.5435757637023926},{"id":"https://openalex.org/C50831359","wikidata":"https://www.wikidata.org/wiki/Q165436","display_name":"Assembly language","level":3,"score":0.5332552790641785},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.5308846831321716},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4945089519023895},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4464355707168579},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.4443281292915344},{"id":"https://openalex.org/C58013763","wikidata":"https://www.wikidata.org/wiki/Q5754574","display_name":"High-level synthesis","level":3,"score":0.436831533908844},{"id":"https://openalex.org/C13164978","wikidata":"https://www.wikidata.org/wiki/Q600158","display_name":"Hardware acceleration","level":3,"score":0.4206467866897583},{"id":"https://openalex.org/C118524514","wikidata":"https://www.wikidata.org/wiki/Q173212","display_name":"Computer architecture","level":1,"score":0.41951489448547363},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.41733431816101074},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4022999405860901},{"id":"https://openalex.org/C42935608","wikidata":"https://www.wikidata.org/wiki/Q190411","display_name":"Field-programmable gate array","level":2,"score":0.34607863426208496},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.3182542026042938},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C21547014","wikidata":"https://www.wikidata.org/wiki/Q1423657","display_name":"Operations management","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3519939.3523446","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3519939.3523446","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3519939.3523446","source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},{"id":"pmh:oai:dspace.mit.edu:1721.1/144822","is_oa":true,"landing_page_url":"https://hdl.handle.net/1721.1/144822","pdf_url":null,"source":{"id":"https://openalex.org/S4306400425","display_name":"DSpace@MIT (Massachusetts Institute of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I63966007","host_organization_name":"Massachusetts Institute of Technology","host_organization_lineage":["https://openalex.org/I63966007"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc","license_id":"https://openalex.org/licenses/cc-by-nc","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Thesis"},{"id":"pmh:oai:dspace.mit.edu:1721.1/146372","is_oa":true,"landing_page_url":"https://hdl.handle.net/1721.1/146372","pdf_url":null,"source":{"id":"https://openalex.org/S4306400425","display_name":"DSpace@MIT (Massachusetts Institute of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I63966007","host_organization_name":"Massachusetts Institute of Technology","host_organization_lineage":["https://openalex.org/I63966007"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc","license_id":"https://openalex.org/licenses/cc-by-nc","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM|Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation","raw_type":"http://purl.org/eprint/type/JournalArticle"}],"best_oa_location":{"id":"doi:10.1145/3519939.3523446","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3519939.3523446","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3519939.3523446","source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G4114360273","display_name":"CAPA: Collaborative Research: ARION: Taming Heterogeneity with DSLs, Approximation, and Synthesis","funder_award_id":"1723445","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6757374384","display_name":null,"funder_award_id":"CCF-1723445","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320306087","display_name":"Semiconductor Research Corporation","ror":"https://ror.org/047z4n946"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4281707342.pdf","grobid_xml":"https://content.openalex.org/works/W4281707342.grobid-xml"},"referenced_works_count":31,"referenced_works":["https://openalex.org/W152682494","https://openalex.org/W1558370006","https://openalex.org/W1564453741","https://openalex.org/W1844404537","https://openalex.org/W1989988531","https://openalex.org/W2005192022","https://openalex.org/W2032391783","https://openalex.org/W2048921878","https://openalex.org/W2085118703","https://openalex.org/W2103412683","https://openalex.org/W2112502633","https://openalex.org/W2121546953","https://openalex.org/W2144344516","https://openalex.org/W2294854295","https://openalex.org/W2471164860","https://openalex.org/W2590246587","https://openalex.org/W2780077279","https://openalex.org/W2898200251","https://openalex.org/W2898231337","https://openalex.org/W2898373684","https://openalex.org/W2914500262","https://openalex.org/W2949967139","https://openalex.org/W2961619211","https://openalex.org/W2966258469","https://openalex.org/W2977371611","https://openalex.org/W3153044352","https://openalex.org/W3213528054","https://openalex.org/W4205614912","https://openalex.org/W4240382083","https://openalex.org/W4246500121","https://openalex.org/W4248722156"],"related_works":["https://openalex.org/W2889304636","https://openalex.org/W2792743585","https://openalex.org/W2769412968","https://openalex.org/W3005663811","https://openalex.org/W38310459","https://openalex.org/W2012082736","https://openalex.org/W4225647577","https://openalex.org/W4235159962","https://openalex.org/W2897606594","https://openalex.org/W2373701942"],"abstract_inverted_index":{"High-performance":[0],"kernel":[1],"libraries":[2,38,61],"are":[3,16,39,122],"critical":[4],"to":[5,18,20,33,86,100,114],"exploiting":[6],"accelerators":[7],"and":[8,23,27,43,53,83,96,118,130,142,159,170],"specialized":[9,63,94],"instructions":[10],"in":[11,50,103,175],"many":[12],"applications.":[13],"Because":[14],"compilers":[15],"difficult":[17],"extend":[19],"support":[21,57,82],"diverse":[22],"rapidly-evolving":[24],"hardware":[25,92,116],"targets,":[26],"automatic":[28],"optimization":[29,84,119],"is":[30],"often":[31],"insufficient":[32],"guarantee":[34,139],"state-of-the-art":[35,156],"performance,":[36],"these":[37,146],"commonly":[40],"still":[41],"coded":[42],"optimized":[44],"by":[45],"hand,":[46],"at":[47],"great":[48],"expense,":[49],"low-level":[51],"C":[52],"assembly.":[54],"To":[55],"better":[56],"development":[58,154],"of":[59,76,111,135,155,180],"high-performance":[60],"for":[62,164],"hardware,":[64],"we":[65,131],"propose":[66],"a":[67,133,176],"new":[68],"programming":[69],"language,":[70,129],"Exo,":[71],"based":[72],"on":[73,108],"the":[74,109,128],"principle":[75],"exocompilation:":[77],"externalizing":[78],"target-specific":[79],"code":[80,181],"generation":[81],"policies":[85],"user-level":[87],"code.":[88],"Exo":[89,151],"allows":[90],"custom":[91],"instructions,":[93],"memories,":[95],"accelerator":[97,169],"configuration":[98],"state":[99],"be":[101],"defined":[102,123],"user":[104,112],"libraries.":[105],"It":[106],"builds":[107],"idea":[110],"scheduling":[113],"externalize":[115],"mapping":[117],"decisions.":[120],"Schedules":[121],"as":[124],"composable":[125],"rewrites":[126],"within":[127],"develop":[132],"set":[134],"effect":[136],"analyses":[137],"which":[138],"program":[140],"equivalence":[141],"memory":[143],"safety":[144],"through":[145],"transformations.":[147],"We":[148],"show":[149],"that":[150],"enables":[152],"rapid":[153],"matrix-matrix":[157],"multiply":[158],"convolutional":[160],"neural":[161,168],"network":[162],"kernels,":[163],"both":[165],"an":[166],"embedded":[167],"x86":[171],"with":[172],"AVX-512":[173],"extensions,":[174],"few":[177],"dozen":[178],"lines":[179],"each.":[182]},"counts_by_year":[{"year":2026,"cited_by_count":4},{"year":2025,"cited_by_count":21},{"year":2024,"cited_by_count":15},{"year":2023,"cited_by_count":9},{"year":2022,"cited_by_count":3}],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
