{"id":"https://openalex.org/W4281953533","doi":"https://doi.org/10.1145/3535044.3535050","title":"Meta-Programming Design-Flow Patterns for Automating Reusable Optimisations","display_name":"Meta-Programming Design-Flow Patterns for Automating Reusable Optimisations","publication_year":2022,"publication_date":"2022-06-08","ids":{"openalex":"https://openalex.org/W4281953533","doi":"https://doi.org/10.1145/3535044.3535050"},"language":"en","primary_location":{"id":"doi:10.1145/3535044.3535050","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3535044.3535050","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies","raw_type":"proceedings-article"},"type":"conference-paper","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/A5046131209","display_name":"Jessica Vandebon","orcid":"https://orcid.org/0000-0002-1327-9712"},"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":"Jessica Vandebon","raw_affiliation_strings":["Imperial College London, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5103260538","display_name":"Jos\u00e9 G. F. Coutinho","orcid":"https://orcid.org/0000-0003-4138-3709"},"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":"Jose Coutinho","raw_affiliation_strings":["Imperial College London, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5057940557","display_name":"Wayne Luk","orcid":"https://orcid.org/0000-0002-6750-927X"},"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":"Wayne Luk","raw_affiliation_strings":["Imperial College London, United Kingdom"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London, United Kingdom","institution_ids":["https://openalex.org/I47508984"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I47508984"],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"42","last_page":"50"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9969000220298767,"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"}},{"id":"https://openalex.org/T10904","display_name":"Embedded Systems Design Techniques","score":0.9968000054359436,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/speedup","display_name":"Speedup","score":0.8974148035049438},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.876524806022644},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.687802255153656},{"id":"https://openalex.org/keywords/design-flow","display_name":"Design flow","score":0.5721228718757629},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.553481936454773},{"id":"https://openalex.org/keywords/process","display_name":"Process (computing)","score":0.546939492225647},{"id":"https://openalex.org/keywords/field-programmable-gate-array","display_name":"Field-programmable gate array","score":0.49183011054992676},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.48718827962875366},{"id":"https://openalex.org/keywords/design-space-exploration","display_name":"Design space exploration","score":0.4656689167022705},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.4564003050327301},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.4258952736854553},{"id":"https://openalex.org/keywords/computer-architecture","display_name":"Computer architecture","score":0.3923579752445221},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.28412675857543945},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.1582900583744049},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.1474786102771759}],"concepts":[{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.8974148035049438},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.876524806022644},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.687802255153656},{"id":"https://openalex.org/C37135326","wikidata":"https://www.wikidata.org/wiki/Q931942","display_name":"Design flow","level":2,"score":0.5721228718757629},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.553481936454773},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.546939492225647},{"id":"https://openalex.org/C42935608","wikidata":"https://www.wikidata.org/wiki/Q190411","display_name":"Field-programmable gate array","level":2,"score":0.49183011054992676},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.48718827962875366},{"id":"https://openalex.org/C2776221188","wikidata":"https://www.wikidata.org/wiki/Q21072556","display_name":"Design space exploration","level":2,"score":0.4656689167022705},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.4564003050327301},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4258952736854553},{"id":"https://openalex.org/C118524514","wikidata":"https://www.wikidata.org/wiki/Q173212","display_name":"Computer architecture","level":1,"score":0.3923579752445221},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.28412675857543945},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.1582900583744049},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.1474786102771759}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3535044.3535050","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3535044.3535050","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies","raw_type":"proceedings-article"},{"id":"pmh:oai:spiral.imperial.ac.uk:10044/1/97245","is_oa":false,"landing_page_url":"http://hdl.handle.net/10044/1/97245","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":"International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies (HEART 2022)","raw_type":"Conference Paper"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G2784140359","display_name":"Application Customisation: Enhancing Design Quality and Developer Productivity","funder_award_id":"EP/P010040/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G3496335909","display_name":"Centre for Spatial Computational Learning","funder_award_id":"EP/S030069/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G4587427570","display_name":null,"funder_award_id":"EP/S030069/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G514660964","display_name":"DART: Design Accelerators by Regulating Transformations","funder_award_id":"EP/V028251/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G5201431165","display_name":"EPSRC Centre for Doctoral Training in High Performance Embedded and Distributed Systems","funder_award_id":"EP/L016796/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G5248561189","display_name":"Event-based parallel computing - partially ordered event-triggered systems (POETS)","funder_award_id":"EP/N031768/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G6837274177","display_name":null,"funder_award_id":"3020.001","funder_id":"https://openalex.org/F4320306087","funder_display_name":"Semiconductor Research Corporation"},{"id":"https://openalex.org/G7493804148","display_name":null,"funder_award_id":"EP/N031768/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G774180880","display_name":null,"funder_award_id":"EP/P010040/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G8051675292","display_name":null,"funder_award_id":"EP/V028251/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G8326536328","display_name":null,"funder_award_id":"EP/N031768/1, EP/P010040/1, EP/S030069/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"}],"funders":[{"id":"https://openalex.org/F4320306087","display_name":"Semiconductor Research Corporation","ror":"https://ror.org/047z4n946"},{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":9,"referenced_works":["https://openalex.org/W109260298","https://openalex.org/W836265516","https://openalex.org/W1578415644","https://openalex.org/W1975535524","https://openalex.org/W1983078445","https://openalex.org/W2104958979","https://openalex.org/W2159959523","https://openalex.org/W2298427740","https://openalex.org/W3183056907"],"related_works":["https://openalex.org/W1500978221","https://openalex.org/W2037960874","https://openalex.org/W1571189856","https://openalex.org/W1973069902","https://openalex.org/W2269990635","https://openalex.org/W4234221021","https://openalex.org/W1567432572","https://openalex.org/W2139127070","https://openalex.org/W2119904701","https://openalex.org/W2159184138"],"abstract_inverted_index":{"Continuing":[0],"advances":[1],"in":[2,11,84],"heterogeneous":[3,42],"and":[4,16,28,64,86,93,103,112,126],"parallel":[5],"computing":[6],"enable":[7],"massive":[8],"performance":[9],"gains":[10,19],"domains":[12],"such":[13,25],"as":[14,26,159,161],"AI":[15],"HPC.":[17],"Such":[18],"often":[20],"involve":[21],"using":[22,121],"hardware":[23],"accelerators,":[24],"FPGAs":[27],"GPUs,":[29],"to":[30,36,101,131,137,149,167],"speed":[31],"up":[32,148,166],"specific":[33],"workloads.":[34],"However,":[35],"make":[37],"effective":[38],"use":[39],"of":[40,55],"emerging":[41],"architectures,":[43],"optimisation":[44],"is":[45,61,98],"typically":[46],"done":[47],"manually":[48],"by":[49],"highly-skilled":[50],"developers":[51],"with":[52,157],"in-depth":[53],"understanding":[54],"the":[56,99,122],"target":[57],"hardware.":[58],"The":[59],"process":[60],"tedious,":[62],"error-prone,":[63],"must":[65],"be":[66],"repeated":[67],"for":[68],"each":[69],"new":[70],"application.":[71],"This":[72],"paper":[73],"introduces":[74],"Design-Flow":[75],"Patterns,":[76],"which":[77],"capture":[78],"modular,":[79],"recurring":[80],"application-agnostic":[81],"elements":[82,107],"involved":[83],"mapping":[85],"optimising":[87],"application":[88],"descriptions":[89],"onto":[90],"efficient":[91],"CPU":[92,145,155],"GPU":[94,163],"targets.":[95],"Our":[96],"approach":[97,141],"first":[100],"codify":[102],"programmatically":[104],"coordinate":[105],"these":[106],"into":[108],"fully":[109],"automated,":[110],"customisable,":[111],"reusable":[113],"end-to-end":[114],"design-flows.":[115],"We":[116],"implement":[117],"key":[118],"design-flow":[119],"patterns":[120],"meta-programming":[123],"tool":[124],"Artisan,":[125],"evaluate":[127],"automated":[128],"design-flows":[129],"applied":[130],"three":[132],"sequential":[133],"C++":[134],"applications.":[135],"Compared":[136],"single-threaded":[138],"implementations,":[139],"our":[140],"generates":[142],"multi-threaded":[143],"OpenMP":[144],"designs":[146,164],"achieving":[147,165],"18":[150],"times":[151,169],"speedup":[152,170],"on":[153,171],"a":[154],"platform":[156],"32-threads,":[158],"well":[160],"HIP":[162],"1184":[168],"an":[172],"NVIDIA":[173],"GeForce":[174],"RTX":[175],"2080":[176],"Ti":[177],"GPU.":[178]},"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":"2025-10-10T00:00:00"}
