{"id":"https://openalex.org/W4392265885","doi":"https://doi.org/10.1109/cgo57630.2024.10444819","title":"Enhancing Performance Through Control-Flow Unmerging and Loop Unrolling on GPUs","display_name":"Enhancing Performance Through Control-Flow Unmerging and Loop Unrolling on GPUs","publication_year":2024,"publication_date":"2024-02-28","ids":{"openalex":"https://openalex.org/W4392265885","doi":"https://doi.org/10.1109/cgo57630.2024.10444819"},"language":"en","primary_location":{"id":"doi:10.1109/cgo57630.2024.10444819","is_oa":false,"landing_page_url":"https://doi.org/10.1109/cgo57630.2024.10444819","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://www.osti.gov/servlets/purl/2325331","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5024644413","display_name":"Alnis Murtovi","orcid":null},"institutions":[{"id":"https://openalex.org/I200332995","display_name":"TU Dortmund University","ror":"https://ror.org/01k97gp34","country_code":"DE","type":"education","lineage":["https://openalex.org/I200332995"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Alnis Murtovi","raw_affiliation_strings":["TU Dortmund University,Dortmund,Germany","TU Dortmund University, Dortmund, Germany"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"TU Dortmund University,Dortmund,Germany","institution_ids":["https://openalex.org/I200332995"]},{"raw_affiliation_string":"TU Dortmund University, Dortmund, Germany","institution_ids":["https://openalex.org/I200332995"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5081323651","display_name":"Giorgis Georgakoudis","orcid":"https://orcid.org/0000-0001-6542-3555"},"institutions":[{"id":"https://openalex.org/I1282311441","display_name":"Lawrence Livermore National Laboratory","ror":"https://ror.org/041nk4h53","country_code":"US","type":"facility","lineage":["https://openalex.org/I1282311441","https://openalex.org/I1330989302","https://openalex.org/I198811213","https://openalex.org/I4210138311"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Giorgis Georgakoudis","raw_affiliation_strings":["Lawrence Livermore National Laboratory,Livermore,USA","Lawrence Livermore National Laboratory, Livermore, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Lawrence Livermore National Laboratory,Livermore,USA","institution_ids":["https://openalex.org/I1282311441"]},{"raw_affiliation_string":"Lawrence Livermore National Laboratory, Livermore, USA","institution_ids":["https://openalex.org/I1282311441"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5060247025","display_name":"Konstantinos Parasyris","orcid":"https://orcid.org/0000-0002-8258-9693"},"institutions":[{"id":"https://openalex.org/I1282311441","display_name":"Lawrence Livermore National Laboratory","ror":"https://ror.org/041nk4h53","country_code":"US","type":"facility","lineage":["https://openalex.org/I1282311441","https://openalex.org/I1330989302","https://openalex.org/I198811213","https://openalex.org/I4210138311"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Konstantinos Parasyris","raw_affiliation_strings":["Lawrence Livermore National Laboratory,Livermore,USA","Lawrence Livermore National Laboratory, Livermore, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Lawrence Livermore National Laboratory,Livermore,USA","institution_ids":["https://openalex.org/I1282311441"]},{"raw_affiliation_string":"Lawrence Livermore National Laboratory, Livermore, USA","institution_ids":["https://openalex.org/I1282311441"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5034222191","display_name":"Chunhua Liao","orcid":"https://orcid.org/0000-0001-6477-0547"},"institutions":[{"id":"https://openalex.org/I1282311441","display_name":"Lawrence Livermore National Laboratory","ror":"https://ror.org/041nk4h53","country_code":"US","type":"facility","lineage":["https://openalex.org/I1282311441","https://openalex.org/I1330989302","https://openalex.org/I198811213","https://openalex.org/I4210138311"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Chunhua Liao","raw_affiliation_strings":["Lawrence Livermore National Laboratory,Livermore,USA","Lawrence Livermore National Laboratory, Livermore, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Lawrence Livermore National Laboratory,Livermore,USA","institution_ids":["https://openalex.org/I1282311441"]},{"raw_affiliation_string":"Lawrence Livermore National Laboratory, Livermore, USA","institution_ids":["https://openalex.org/I1282311441"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5033868370","display_name":"Ignacio Laguna","orcid":"https://orcid.org/0000-0002-9374-4433"},"institutions":[{"id":"https://openalex.org/I1282311441","display_name":"Lawrence Livermore National Laboratory","ror":"https://ror.org/041nk4h53","country_code":"US","type":"facility","lineage":["https://openalex.org/I1282311441","https://openalex.org/I1330989302","https://openalex.org/I198811213","https://openalex.org/I4210138311"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ignacio Laguna","raw_affiliation_strings":["Lawrence Livermore National Laboratory,Livermore,USA","Lawrence Livermore National Laboratory, Livermore, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Lawrence Livermore National Laboratory,Livermore,USA","institution_ids":["https://openalex.org/I1282311441"]},{"raw_affiliation_string":"Lawrence Livermore National Laboratory, Livermore, USA","institution_ids":["https://openalex.org/I1282311441"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078808456","display_name":"Bernhard Steffen","orcid":"https://orcid.org/0000-0001-9619-1558"},"institutions":[{"id":"https://openalex.org/I200332995","display_name":"TU Dortmund University","ror":"https://ror.org/01k97gp34","country_code":"DE","type":"education","lineage":["https://openalex.org/I200332995"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Bernhard Steffen","raw_affiliation_strings":["TU Dortmund University,Dortmund,Germany","TU Dortmund University, Dortmund, Germany"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"TU Dortmund University,Dortmund,Germany","institution_ids":["https://openalex.org/I200332995"]},{"raw_affiliation_string":"TU Dortmund University, Dortmund, Germany","institution_ids":["https://openalex.org/I200332995"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":2,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"106","last_page":"118"},"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/T10126","display_name":"Logic, programming, and type systems","score":0.9955999851226807,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T11424","display_name":"Security and Verification in Computing","score":0.995199978351593,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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.8693065643310547},{"id":"https://openalex.org/keywords/loop-unrolling","display_name":"Loop unrolling","score":0.8360694646835327},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.7424269914627075},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7335202693939209},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6670186519622803},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.6315332651138306},{"id":"https://openalex.org/keywords/merge","display_name":"Merge (version control)","score":0.5994759798049927},{"id":"https://openalex.org/keywords/data-flow-analysis","display_name":"Data-flow analysis","score":0.5534277558326721},{"id":"https://openalex.org/keywords/program-optimization","display_name":"Program optimization","score":0.5531215667724609},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.49866747856140137},{"id":"https://openalex.org/keywords/dead-code-elimination","display_name":"Dead code elimination","score":0.49735739827156067},{"id":"https://openalex.org/keywords/loop-optimization","display_name":"Loop optimization","score":0.46310824155807495},{"id":"https://openalex.org/keywords/control-flow-graph","display_name":"Control flow graph","score":0.44005492329597473},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3316023647785187},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.3297919034957886},{"id":"https://openalex.org/keywords/data-flow-diagram","display_name":"Data flow diagram","score":0.24936100840568542},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.18964356184005737},{"id":"https://openalex.org/keywords/object-code","display_name":"Object code","score":0.13098713755607605}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8693065643310547},{"id":"https://openalex.org/C76970557","wikidata":"https://www.wikidata.org/wiki/Q1869750","display_name":"Loop unrolling","level":3,"score":0.8360694646835327},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.7424269914627075},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7335202693939209},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6670186519622803},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.6315332651138306},{"id":"https://openalex.org/C197129107","wikidata":"https://www.wikidata.org/wiki/Q1921621","display_name":"Merge (version control)","level":2,"score":0.5994759798049927},{"id":"https://openalex.org/C88468194","wikidata":"https://www.wikidata.org/wiki/Q1172416","display_name":"Data-flow analysis","level":3,"score":0.5534277558326721},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.5531215667724609},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.49866747856140137},{"id":"https://openalex.org/C2144512","wikidata":"https://www.wikidata.org/wiki/Q1143090","display_name":"Dead code elimination","level":5,"score":0.49735739827156067},{"id":"https://openalex.org/C29331672","wikidata":"https://www.wikidata.org/wiki/Q3354468","display_name":"Loop optimization","level":4,"score":0.46310824155807495},{"id":"https://openalex.org/C27458966","wikidata":"https://www.wikidata.org/wiki/Q1187693","display_name":"Control flow graph","level":2,"score":0.44005492329597473},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3316023647785187},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.3297919034957886},{"id":"https://openalex.org/C489000","wikidata":"https://www.wikidata.org/wiki/Q747385","display_name":"Data flow diagram","level":2,"score":0.24936100840568542},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.18964356184005737},{"id":"https://openalex.org/C154526789","wikidata":"https://www.wikidata.org/wiki/Q157965","display_name":"Object code","level":4,"score":0.13098713755607605},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.0},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1109/cgo57630.2024.10444819","is_oa":false,"landing_page_url":"https://doi.org/10.1109/cgo57630.2024.10444819","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)","raw_type":"proceedings-article"},{"id":"pmh:oai:osti.gov:2325331","is_oa":true,"landing_page_url":"https://www.osti.gov/biblio/2325331","pdf_url":"https://www.osti.gov/servlets/purl/2325331","source":{"id":"https://openalex.org/S4306402487","display_name":"OSTI OAI (U.S. Department of Energy Office of Scientific and Technical Information)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I139351228","host_organization_name":"Office of Scientific and Technical Information","host_organization_lineage":["https://openalex.org/I139351228"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":{"id":"pmh:oai:osti.gov:2325331","is_oa":true,"landing_page_url":"https://www.osti.gov/biblio/2325331","pdf_url":"https://www.osti.gov/servlets/purl/2325331","source":{"id":"https://openalex.org/S4306402487","display_name":"OSTI OAI (U.S. Department of Energy Office of Scientific and Technical Information)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I139351228","host_organization_name":"Office of Scientific and Technical Information","host_organization_lineage":["https://openalex.org/I139351228"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/7","score":0.5600000023841858,"display_name":"Affordable and clean energy"}],"awards":[{"id":"https://openalex.org/G5522089832","display_name":null,"funder_award_id":"DE-AC52-07NA27344","funder_id":"https://openalex.org/F4320338286","funder_display_name":"Lawrence Livermore National Laboratory"}],"funders":[{"id":"https://openalex.org/F4320338286","display_name":"Lawrence Livermore National Laboratory","ror":"https://ror.org/041nk4h53"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4392265885.pdf","grobid_xml":"https://content.openalex.org/works/W4392265885.grobid-xml"},"referenced_works_count":27,"referenced_works":["https://openalex.org/W38257615","https://openalex.org/W199387126","https://openalex.org/W1486540864","https://openalex.org/W1536823217","https://openalex.org/W1856606395","https://openalex.org/W1982205631","https://openalex.org/W1991779584","https://openalex.org/W1994316441","https://openalex.org/W2061595191","https://openalex.org/W2104659803","https://openalex.org/W2133128124","https://openalex.org/W2160428323","https://openalex.org/W2337228275","https://openalex.org/W2793681106","https://openalex.org/W2889110163","https://openalex.org/W3008658471","https://openalex.org/W3116487210","https://openalex.org/W3199489296","https://openalex.org/W4214617101","https://openalex.org/W4220858218","https://openalex.org/W4246166885","https://openalex.org/W4248255691","https://openalex.org/W4308084253","https://openalex.org/W4310514129","https://openalex.org/W6638933536","https://openalex.org/W6640993132","https://openalex.org/W6703177460"],"related_works":["https://openalex.org/W3169195854","https://openalex.org/W2133860611","https://openalex.org/W2083056254","https://openalex.org/W2793275246","https://openalex.org/W2066067904","https://openalex.org/W2889000703","https://openalex.org/W2134222034","https://openalex.org/W2324321492","https://openalex.org/W2066192516","https://openalex.org/W2164503864"],"abstract_inverted_index":{"Compilers":[0],"use":[1],"a":[2,36,78,120],"wide":[3],"range":[4],"of":[5,12,106,122,155],"advanced":[6],"optimizations":[7,22,97],"to":[8,27,30,49,59,72,84,157],"improve":[9],"the":[10,13,32,53,146],"quality":[11],"machine":[14],"code":[15,63,85,139],"they":[16],"generate.":[17],"In":[18],"most":[19],"cases,":[20],"compiler":[21],"rely":[23],"on":[24,119],"precise":[25],"analyses":[26],"be":[28,100],"able":[29],"perform":[31],"optimizations.":[33],"However,":[34],"whenever":[35],"control-flow":[37,92],"merge":[38,70],"is":[39,42,46,62],"performed":[40],"information":[41],"lost":[43],"as":[44],"it":[45],"not":[47],"possible":[48],"precisely":[50],"reason":[51],"about":[52],"program":[54],"anymore.":[55],"One":[56],"existing":[57],"solution":[58],"this":[60],"issue":[61],"duplication,":[64,86],"which":[65,137],"involves":[66],"duplicating":[67],"instructions":[68],"from":[69],"blocks":[71],"their":[73],"predecessors.":[74],"This":[75],"paper":[76],"introduces":[77],"novel":[79],"and":[80,91,115,144],"more":[81],"aggressive":[82],"approach":[83,112],"grounded":[87],"in":[88,125],"loop":[89],"unrolling":[90],"unmerging":[93],"that":[94,98],"enables":[95],"subsequent":[96],"cannot":[99],"enabled":[101],"by":[102],"applying":[103],"only":[104],"one":[105],"these":[107],"transformations.":[108],"We":[109],"implemented":[110],"our":[111,149],"inside":[113],"LLVM,":[114],"evaluated":[116],"its":[117],"performance":[118,153],"collection":[121],"GPU":[123],"benchmarks":[124],"CUDA.":[126],"Our":[127],"results":[128],"demonstrate":[129],"that,":[130],"even":[131],"when":[132],"faced":[133],"with":[134],"branch":[135],"divergence,":[136],"complicates":[138],"duplication":[140],"across":[141],"multiple":[142],"branches":[143],"increases":[145],"associated":[147],"cost,":[148],"optimization":[150],"technique":[151],"achieves":[152],"improvements":[154],"up":[156],"81%.":[158]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":1}],"updated_date":"2026-07-14T23:27:15.235271","created_date":"2024-03-05T00:00:00"}
