{"id":"https://openalex.org/W4391623920","doi":"https://doi.org/10.1145/3623278.3624768","title":"Fast Instruction Selection for Fast Digital Signal Processing","display_name":"Fast Instruction Selection for Fast Digital Signal Processing","publication_year":2023,"publication_date":"2023-03-25","ids":{"openalex":"https://openalex.org/W4391623920","doi":"https://doi.org/10.1145/3623278.3624768"},"language":"en","primary_location":{"id":"doi:10.1145/3623278.3624768","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3623278.3624768","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3623278.3624768","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 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 4","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3623278.3624768","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5034921995","display_name":"Alexander J Root","orcid":"https://orcid.org/0000-0001-6221-1389"},"institutions":[{"id":"https://openalex.org/I97018004","display_name":"Stanford University","ror":"https://ror.org/00f54p054","country_code":"US","type":"education","lineage":["https://openalex.org/I97018004"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Alexander J Root","raw_affiliation_strings":["Stanford University, Stanford, California, United States of America"],"raw_orcid":"https://orcid.org/0000-0001-6221-1389","affiliations":[{"raw_affiliation_string":"Stanford University, Stanford, California, United States of America","institution_ids":["https://openalex.org/I97018004"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5041364880","display_name":"M Ahmad","orcid":"https://orcid.org/0000-0002-8113-7580"},"institutions":[{"id":"https://openalex.org/I1306409833","display_name":"Adobe Systems (United States)","ror":"https://ror.org/059tvcg64","country_code":"US","type":"company","lineage":["https://openalex.org/I1306409833"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Maaz Bin Safeer Ahmad","raw_affiliation_strings":["Adobe, Seattle, Washington, USA"],"raw_orcid":"https://orcid.org/0000-0002-8113-7580","affiliations":[{"raw_affiliation_string":"Adobe, Seattle, Washington, USA","institution_ids":["https://openalex.org/I1306409833"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5057869975","display_name":"Dillon Sharlet","orcid":"https://orcid.org/0000-0002-7118-7576"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Dillon Sharlet","raw_affiliation_strings":["Independent Researcher, Irvine, California, USA"],"raw_orcid":"https://orcid.org/0000-0002-7118-7576","affiliations":[{"raw_affiliation_string":"Independent Researcher, Irvine, California, USA","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5032990934","display_name":"Andrew L. Adams","orcid":"https://orcid.org/0000-0002-6766-670X"},"institutions":[{"id":"https://openalex.org/I1306409833","display_name":"Adobe Systems (United States)","ror":"https://ror.org/059tvcg64","country_code":"US","type":"company","lineage":["https://openalex.org/I1306409833"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Andrew Adams","raw_affiliation_strings":["Adobe, San Francisco, California, USA"],"raw_orcid":"https://orcid.org/0000-0002-6766-670X","affiliations":[{"raw_affiliation_string":"Adobe, San Francisco, California, USA","institution_ids":["https://openalex.org/I1306409833"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039453861","display_name":"Shoaib Kamil","orcid":"https://orcid.org/0000-0001-5965-3717"},"institutions":[{"id":"https://openalex.org/I1306409833","display_name":"Adobe Systems (United States)","ror":"https://ror.org/059tvcg64","country_code":"US","type":"company","lineage":["https://openalex.org/I1306409833"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Shoaib Kamil","raw_affiliation_strings":["Adobe, New York City, New York, United States of America"],"raw_orcid":"https://orcid.org/0000-0001-5965-3717","affiliations":[{"raw_affiliation_string":"Adobe, New York City, New York, United States of America","institution_ids":["https://openalex.org/I1306409833"]}]},{"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/I4405258931","display_name":"MIT Computer Science and Artificial Intelligence Laboratory","ror":"https://ror.org/01e85r662","country_code":"US","type":"facility","lineage":["https://openalex.org/I4405258931","https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jonathan Ragan-Kelley","raw_affiliation_strings":["MIT CSAIL, Cambridge, Massachusetts, United States of America"],"raw_orcid":"https://orcid.org/0000-0001-6243-9543","affiliations":[{"raw_affiliation_string":"MIT CSAIL, Cambridge, Massachusetts, United States of America","institution_ids":["https://openalex.org/I4405258931"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":5,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"125","last_page":"137"},"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.9997000098228455,"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.9997000098228455,"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/T10904","display_name":"Embedded Systems Design Techniques","score":0.9987999796867371,"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/T11697","display_name":"Numerical Methods and Algorithms","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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.806187093257904},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.797453761100769},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4819333553314209},{"id":"https://openalex.org/keywords/fixed-point","display_name":"Fixed point","score":0.43947434425354004},{"id":"https://openalex.org/keywords/fixed-point-arithmetic","display_name":"Fixed-point arithmetic","score":0.43438562750816345},{"id":"https://openalex.org/keywords/x86","display_name":"x86","score":0.4226461350917816},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.41631293296813965},{"id":"https://openalex.org/keywords/integer","display_name":"Integer (computer science)","score":0.4118140935897827},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3779553771018982},{"id":"https://openalex.org/keywords/floating-point","display_name":"Floating point","score":0.3590348958969116},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.1941237449645996},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.14795652031898499},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.0974094569683075}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.806187093257904},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.797453761100769},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4819333553314209},{"id":"https://openalex.org/C61445026","wikidata":"https://www.wikidata.org/wiki/Q217608","display_name":"Fixed point","level":2,"score":0.43947434425354004},{"id":"https://openalex.org/C163973906","wikidata":"https://www.wikidata.org/wiki/Q649900","display_name":"Fixed-point arithmetic","level":3,"score":0.43438562750816345},{"id":"https://openalex.org/C170723468","wikidata":"https://www.wikidata.org/wiki/Q182933","display_name":"x86","level":3,"score":0.4226461350917816},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.41631293296813965},{"id":"https://openalex.org/C97137487","wikidata":"https://www.wikidata.org/wiki/Q729138","display_name":"Integer (computer science)","level":2,"score":0.4118140935897827},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3779553771018982},{"id":"https://openalex.org/C84211073","wikidata":"https://www.wikidata.org/wiki/Q117879","display_name":"Floating point","level":2,"score":0.3590348958969116},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.1941237449645996},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.14795652031898499},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0974094569683075},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3623278.3624768","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3623278.3624768","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3623278.3624768","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 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 4","raw_type":"proceedings-article"},{"id":"pmh:oai:dspace.mit.edu:1721.1/153625","is_oa":true,"landing_page_url":"https://hdl.handle.net/1721.1/153625","pdf_url":"https://dspace.mit.edu/bitstream/1721.1/153625/1/3623278.3624768.pdf","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":"Association for Computing Machinery","raw_type":"http://purl.org/eprint/type/ConferencePaper"}],"best_oa_location":{"id":"doi:10.1145/3623278.3624768","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3623278.3624768","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3623278.3624768","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 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 4","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G3073730738","display_name":"CAREER: The Exocompiler: Decoupling Algorithms from the Organization of Computation and Data","funder_award_id":"1846502","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"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/G6134391782","display_name":null,"funder_award_id":"CCF-1846502","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/F4320330033","display_name":"ADA Lovelace Center for Analytics, Data, Applications","ror":null}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4391623920.pdf","grobid_xml":"https://content.openalex.org/works/W4391623920.grobid-xml"},"referenced_works_count":45,"referenced_works":["https://openalex.org/W1480909796","https://openalex.org/W1970165929","https://openalex.org/W2003164052","https://openalex.org/W2014406284","https://openalex.org/W2022458617","https://openalex.org/W2055312318","https://openalex.org/W2090268225","https://openalex.org/W2094878426","https://openalex.org/W2108556169","https://openalex.org/W2135736783","https://openalex.org/W2163671349","https://openalex.org/W2250787296","https://openalex.org/W2412440871","https://openalex.org/W2552290192","https://openalex.org/W2770644362","https://openalex.org/W2785559831","https://openalex.org/W2792271488","https://openalex.org/W2798960592","https://openalex.org/W2988261654","https://openalex.org/W3006518470","https://openalex.org/W3008102594","https://openalex.org/W3016220765","https://openalex.org/W3033581399","https://openalex.org/W3098585900","https://openalex.org/W3099525000","https://openalex.org/W3108686129","https://openalex.org/W3110583370","https://openalex.org/W3117137355","https://openalex.org/W3120853372","https://openalex.org/W3125750521","https://openalex.org/W3152824079","https://openalex.org/W3153044352","https://openalex.org/W3164004581","https://openalex.org/W3183713184","https://openalex.org/W3207460439","https://openalex.org/W4205872049","https://openalex.org/W4214613759","https://openalex.org/W4234084457","https://openalex.org/W4234222550","https://openalex.org/W4246166885","https://openalex.org/W4248701878","https://openalex.org/W4253920039","https://openalex.org/W4281621335","https://openalex.org/W4288069292","https://openalex.org/W4394654126"],"related_works":["https://openalex.org/W1681090243","https://openalex.org/W2028547611","https://openalex.org/W4312862090","https://openalex.org/W2029050987","https://openalex.org/W3206224488","https://openalex.org/W2288960809","https://openalex.org/W1935080020","https://openalex.org/W2062935593","https://openalex.org/W965527374","https://openalex.org/W2370541471"],"abstract_inverted_index":{"Modern":[0],"vector":[1],"processors":[2],"support":[3,16],"a":[4,17,66,95,129,150,172,194],"wide":[5],"variety":[6],"of":[7,19,31,74,134,152,163,174],"instructions":[8,15,87,148],"for":[9,57,81],"fixed-point":[10,41,97,106,147,165],"digital":[11],"signal":[12,42,166],"processing.":[13],"These":[14],"proliferation":[18],"rounding,":[20],"saturating,":[21],"and":[22,26,77,137,187],"type":[23],"conversion":[24],"modes,":[25],"are":[27,37],"often":[28],"fused":[29],"combinations":[30],"more":[32,79],"primitive":[33],"operations.":[34],"While":[35],"these":[36,49,75,86],"common":[38,103],"idioms":[39,104],"in":[40,51,65,105,169],"processing,":[43],"it":[44],"is":[45,55],"difficult":[46],"to":[47,59,72,83,193],"use":[48],"operations":[50,125],"portable":[52,62,96],"code.":[53,107],"It":[54],"challenging":[56,80],"programmers":[58,114],"write":[60],"down":[61],"integer":[63,124],"arithmetic":[64],"C-like":[67],"language":[68],"that":[69,101,157],"corresponds":[70],"exactly":[71],"one":[73],"instructions,":[76],"even":[78],"compilers":[82],"recognize":[84],"when":[85],"can":[88,109,120],"be":[89,110],"used.":[90],"Our":[91],"system,":[92],"Pitchfork,":[93],"defines":[94],"intermediate":[98],"representation,":[99],"FPIR,":[100],"captures":[102],"FPIR":[108,127,144],"used":[111],"directly":[112],"by":[113,176],"experienced":[115],"with":[116,181],"fixed-point,":[117],"or":[118,201],"Pitchfork":[119,140],"automatically":[121],"lift":[122],"from":[123,143],"into":[126,145],"using":[128,149],"term-rewriting":[130],"system":[131],"(TRS)":[132],"composed":[133],"verified":[135],"manual":[136],"automatically-synthesized":[138],"rules.":[139],"then":[141],"lowers":[142],"target-specific":[146,153],"set":[151],"TRSs.":[154],"We":[155],"show":[156],"this":[158],"approach":[159],"improves":[160],"runtime":[161],"performance":[162],"portably-written":[164],"processing":[167],"code":[168],"Halide,":[170],"across":[171],"range":[173],"benchmarks,":[175],"geomean":[177],"1.31x":[178],"on":[179,184,189],"x86":[180],"AVX2,":[182],"1.82x":[183],"ARM":[185],"Neon,":[186],"2.44x":[188],"Hexagon":[190],"HVX":[191],"compared":[192],"standard":[195],"LLVM-based":[196],"compiler":[197],"flow,":[198],"while":[199],"maintaining":[200],"improving":[202],"existing":[203],"compile":[204],"times.":[205]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":1}],"updated_date":"2026-07-14T23:27:15.235271","created_date":"2025-10-10T00:00:00"}
