{"id":"https://openalex.org/W2267745769","doi":"https://doi.org/10.1145/2847263.2847282","title":"Automatically Optimizing the Latency, Area, and Accuracy of C Programs for High-Level Synthesis","display_name":"Automatically Optimizing the Latency, Area, and Accuracy of C Programs for High-Level Synthesis","publication_year":2016,"publication_date":"2016-02-04","ids":{"openalex":"https://openalex.org/W2267745769","doi":"https://doi.org/10.1145/2847263.2847282","mag":"2267745769"},"language":"en","primary_location":{"id":"doi:10.1145/2847263.2847282","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2847263.2847282","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5026189787","display_name":"Xitong Gao","orcid":"https://orcid.org/0000-0002-2063-2051"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Xitong Gao","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5002846450","display_name":"John Wickerson","orcid":"https://orcid.org/0000-0001-6735-5533"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"John Wickerson","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5029829952","display_name":"George A. Constantinides","orcid":"https://orcid.org/0000-0002-0201-310X"},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"George A. Constantinides","raw_affiliation_strings":["Imperial College London, London, United Kingdom"],"affiliations":[{"raw_affiliation_string":"Imperial College London, London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5026189787"],"corresponding_institution_ids":["https://openalex.org/I47508984"],"apc_list":null,"apc_paid":null,"fwci":2.8986,"has_fulltext":false,"cited_by_count":15,"citation_normalized_percentile":{"value":0.89931161,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":93,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"234","last_page":"243"},"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.9998999834060669,"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.9998999834060669,"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.9998999834060669,"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.9980999827384949,"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.8594390153884888},{"id":"https://openalex.org/keywords/loop-unrolling","display_name":"Loop unrolling","score":0.7962701916694641},{"id":"https://openalex.org/keywords/high-level-synthesis","display_name":"High-level synthesis","score":0.6991053819656372},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.6816959381103516},{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.6605714559555054},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5535293221473694},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.5503324270248413},{"id":"https://openalex.org/keywords/suite","display_name":"Suite","score":0.5225412249565125},{"id":"https://openalex.org/keywords/latency","display_name":"Latency (audio)","score":0.5152924060821533},{"id":"https://openalex.org/keywords/speedup","display_name":"Speedup","score":0.4901905655860901},{"id":"https://openalex.org/keywords/cas-latency","display_name":"CAS latency","score":0.48267534375190735},{"id":"https://openalex.org/keywords/scheduling","display_name":"Scheduling (production processes)","score":0.4559505581855774},{"id":"https://openalex.org/keywords/field-programmable-gate-array","display_name":"Field-programmable gate array","score":0.42958033084869385},{"id":"https://openalex.org/keywords/memory-hierarchy","display_name":"Memory hierarchy","score":0.4164028465747833},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.40484750270843506},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.34535861015319824},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.29663240909576416},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.27298083901405334},{"id":"https://openalex.org/keywords/memory-controller","display_name":"Memory controller","score":0.16296494007110596}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8594390153884888},{"id":"https://openalex.org/C76970557","wikidata":"https://www.wikidata.org/wiki/Q1869750","display_name":"Loop unrolling","level":3,"score":0.7962701916694641},{"id":"https://openalex.org/C58013763","wikidata":"https://www.wikidata.org/wiki/Q5754574","display_name":"High-level synthesis","level":3,"score":0.6991053819656372},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.6816959381103516},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.6605714559555054},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5535293221473694},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.5503324270248413},{"id":"https://openalex.org/C79581498","wikidata":"https://www.wikidata.org/wiki/Q1367530","display_name":"Suite","level":2,"score":0.5225412249565125},{"id":"https://openalex.org/C82876162","wikidata":"https://www.wikidata.org/wiki/Q17096504","display_name":"Latency (audio)","level":2,"score":0.5152924060821533},{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.4901905655860901},{"id":"https://openalex.org/C189930140","wikidata":"https://www.wikidata.org/wiki/Q1112878","display_name":"CAS latency","level":4,"score":0.48267534375190735},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.4559505581855774},{"id":"https://openalex.org/C42935608","wikidata":"https://www.wikidata.org/wiki/Q190411","display_name":"Field-programmable gate array","level":2,"score":0.42958033084869385},{"id":"https://openalex.org/C2778100165","wikidata":"https://www.wikidata.org/wiki/Q1589327","display_name":"Memory hierarchy","level":3,"score":0.4164028465747833},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.40484750270843506},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.34535861015319824},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.29663240909576416},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.27298083901405334},{"id":"https://openalex.org/C100800780","wikidata":"https://www.wikidata.org/wiki/Q1175867","display_name":"Memory controller","level":3,"score":0.16296494007110596},{"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/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.0},{"id":"https://openalex.org/C95457728","wikidata":"https://www.wikidata.org/wiki/Q309","display_name":"History","level":0,"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/C98986596","wikidata":"https://www.wikidata.org/wiki/Q1143031","display_name":"Semiconductor memory","level":2,"score":0.0},{"id":"https://openalex.org/C115537543","wikidata":"https://www.wikidata.org/wiki/Q165596","display_name":"Cache","level":2,"score":0.0},{"id":"https://openalex.org/C166957645","wikidata":"https://www.wikidata.org/wiki/Q23498","display_name":"Archaeology","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2847263.2847282","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2847263.2847282","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays","raw_type":"proceedings-article"},{"id":"pmh:oai:spiral.imperial.ac.uk:10044/1/31284","is_oa":false,"landing_page_url":"http://hdl.handle.net/10044/1/31284","pdf_url":null,"source":{"id":"https://openalex.org/S4306401396","display_name":"Spiral (Imperial College London)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I47508984","host_organization_name":"Imperial College London","host_organization_lineage":["https://openalex.org/I47508984"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM International Symposium on FPGAs","raw_type":"Conference Paper"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G5299827457","display_name":null,"funder_award_id":"EP/K015168/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G5524266619","display_name":null,"funder_award_id":"EP/I020357/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":24,"referenced_works":["https://openalex.org/W648264959","https://openalex.org/W1040356831","https://openalex.org/W1558370006","https://openalex.org/W1982205631","https://openalex.org/W2018055497","https://openalex.org/W2020804487","https://openalex.org/W2021466611","https://openalex.org/W2026383319","https://openalex.org/W2038328463","https://openalex.org/W2061091230","https://openalex.org/W2061987443","https://openalex.org/W2067116050","https://openalex.org/W2071189607","https://openalex.org/W2095761111","https://openalex.org/W2113559897","https://openalex.org/W2123412205","https://openalex.org/W2151867075","https://openalex.org/W2159684237","https://openalex.org/W2160693825","https://openalex.org/W2165085842","https://openalex.org/W2171318521","https://openalex.org/W4234537939","https://openalex.org/W6633402081","https://openalex.org/W6829146090"],"related_works":["https://openalex.org/W2921149022","https://openalex.org/W1044727952","https://openalex.org/W3003393365","https://openalex.org/W2123881099","https://openalex.org/W2267745769","https://openalex.org/W2156848920","https://openalex.org/W2398354748","https://openalex.org/W2229175715","https://openalex.org/W2794706380","https://openalex.org/W2126613634"],"abstract_inverted_index":{"Loops":[0,145],"are":[1],"pervasive":[2],"in":[3,164],"numerical":[4],"programs,":[5],"so":[6],"high-level":[7],"synthesis":[8],"(HLS)":[9],"tools":[10,69],"use":[11,127],"state-of-the-art":[12],"scheduling":[13],"techniques":[14],"to":[15,50,106,128,133,138,155,171],"pipeline":[16],"them":[17],"efficiently.":[18],"Still,":[19],"the":[20,25,47,81,95,124,130],"run":[21],"time":[22],"performance":[23],"of":[24,38,83,141,169],"resultant":[26],"FPGA":[27],"implementation":[28],"is":[29],"limited":[30],"by":[31,45,75],"data":[32],"dependences":[33],"between":[34],"loop":[35,66],"iterations.":[36],"Some":[37],"these":[39],"dependence":[40],"constraints":[41],"can":[42,126],"be":[43],"alleviated":[44],"rewriting":[46,102],"program":[48,98,105],"according":[49,132],"arithmetic":[51],"identities":[52],"(e.g.":[53,64],"associativity":[54],"and":[55,60,86,113,143],"distributivity),":[56],"memory":[57],"access":[58],"reductions,":[59],"control":[61],"flow":[62],"optimisations":[63],"partial":[65],"unrolling).":[67],"HLS":[68],"cannot":[70],"safely":[71],"enable":[72],"such":[73],"rewrites":[74],"default":[76],"because":[77],"they":[78],"may":[79],"impact":[80],"accuracy":[82,112],"floating-point":[84],"computations":[85],"increase":[87,163],"area":[88],"usage.":[89],"In":[90],"this":[91],"paper,":[92],"we":[93],"introduce":[94],"first":[96],"open-source":[97],"optimizer":[99],"for":[100,111],"automatically":[101],"a":[103,119,139,156,160,167],"given":[104],"optimize":[107],"latency":[108],"while":[109],"controlling":[110],"area.":[114],"Our":[115],"tool,":[116],"SOAP3,":[117],"reports":[118],"multi-dimensional":[120],"Pareto":[121],"frontier":[122],"that":[123,152],"programmer":[125],"resolve":[129],"trade-off":[131],"their":[134],"needs.":[135],"When":[136],"applied":[137],"suite":[140],"PolyBench":[142],"Livermore":[144],"benchmarks,":[146],"our":[147],"tool":[148],"has":[149],"generated":[150],"programs":[151],"enjoy":[153],"up":[154,170],"12x":[157],"speedup,":[158],"with":[159],"simultaneous":[161],"7x":[162],"accuracy,":[165],"at":[166],"cost":[168],"4x":[172],"more":[173],"LUTs.":[174]},"counts_by_year":[{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":4}],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2025-10-10T00:00:00"}
