{"id":"https://openalex.org/W3007740465","doi":"https://doi.org/10.1145/3332466.3374507","title":"Optimizing GPU programs by partial evaluation","display_name":"Optimizing GPU programs by partial evaluation","publication_year":2020,"publication_date":"2020-02-19","ids":{"openalex":"https://openalex.org/W3007740465","doi":"https://doi.org/10.1145/3332466.3374507","mag":"3007740465"},"language":"en","primary_location":{"id":"doi:10.1145/3332466.3374507","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3332466.3374507","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","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/A5088131490","display_name":"Aleksey Tyurin","orcid":null},"institutions":[{"id":"https://openalex.org/I172901346","display_name":"St Petersburg University","ror":"https://ror.org/023znxa73","country_code":"RU","type":"education","lineage":["https://openalex.org/I172901346"]}],"countries":["RU"],"is_corresponding":false,"raw_author_name":"Aleksey Tyurin","raw_affiliation_strings":["Saint Petersburg State University"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Saint Petersburg State University","institution_ids":["https://openalex.org/I172901346"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5035437757","display_name":"Daniil Berezun","orcid":"https://orcid.org/0000-0001-6306-275X"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Daniil Berezun","raw_affiliation_strings":["JetBrains Research"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"JetBrains Research","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5054738334","display_name":"Semyon Grigorev","orcid":"https://orcid.org/0000-0002-7966-0698"},"institutions":[{"id":"https://openalex.org/I172901346","display_name":"St Petersburg University","ror":"https://ror.org/023znxa73","country_code":"RU","type":"education","lineage":["https://openalex.org/I172901346"]}],"countries":["RU"],"is_corresponding":false,"raw_author_name":"Semyon Grigorev","raw_affiliation_strings":["Saint Petersburg State University"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Saint Petersburg State University","institution_ids":["https://openalex.org/I172901346"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.4508,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.45963658,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"431","last_page":"432"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T12326","display_name":"Network Packet Processing and Optimization","score":0.9998000264167786,"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/T12326","display_name":"Network Packet Processing and Optimization","score":0.9998000264167786,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9995999932289124,"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/T11269","display_name":"Algorithms and Data Compression","score":0.9994000196456909,"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.8769960403442383},{"id":"https://openalex.org/keywords/bottleneck","display_name":"Bottleneck","score":0.7345492839813232},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.7133524417877197},{"id":"https://openalex.org/keywords/memory-management","display_name":"Memory management","score":0.5945186018943787},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.5902861952781677},{"id":"https://openalex.org/keywords/string-searching-algorithm","display_name":"String searching algorithm","score":0.5217108130455017},{"id":"https://openalex.org/keywords/partial-evaluation","display_name":"Partial evaluation","score":0.4940217137336731},{"id":"https://openalex.org/keywords/general-purpose-computing-on-graphics-processing-units","display_name":"General-purpose computing on graphics processing units","score":0.46479886770248413},{"id":"https://openalex.org/keywords/computation","display_name":"Computation","score":0.4604173004627228},{"id":"https://openalex.org/keywords/string","display_name":"String (physics)","score":0.430440753698349},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.42245370149612427},{"id":"https://openalex.org/keywords/transformation","display_name":"Transformation (genetics)","score":0.4169021248817444},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.4112612009048462},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.2379397749900818},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.22758466005325317},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.19819611310958862},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.18805530667304993},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.17016416788101196},{"id":"https://openalex.org/keywords/semiconductor-memory","display_name":"Semiconductor memory","score":0.14162850379943848},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.1298142671585083},{"id":"https://openalex.org/keywords/graphics","display_name":"Graphics","score":0.1118503212928772}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8769960403442383},{"id":"https://openalex.org/C2780513914","wikidata":"https://www.wikidata.org/wiki/Q18210350","display_name":"Bottleneck","level":2,"score":0.7345492839813232},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.7133524417877197},{"id":"https://openalex.org/C176649486","wikidata":"https://www.wikidata.org/wiki/Q2308807","display_name":"Memory management","level":3,"score":0.5945186018943787},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.5902861952781677},{"id":"https://openalex.org/C7757238","wikidata":"https://www.wikidata.org/wiki/Q374040","display_name":"String searching algorithm","level":3,"score":0.5217108130455017},{"id":"https://openalex.org/C195701839","wikidata":"https://www.wikidata.org/wiki/Q4008398","display_name":"Partial evaluation","level":2,"score":0.4940217137336731},{"id":"https://openalex.org/C50630238","wikidata":"https://www.wikidata.org/wiki/Q971505","display_name":"General-purpose computing on graphics processing units","level":3,"score":0.46479886770248413},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.4604173004627228},{"id":"https://openalex.org/C157486923","wikidata":"https://www.wikidata.org/wiki/Q1376436","display_name":"String (physics)","level":2,"score":0.430440753698349},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.42245370149612427},{"id":"https://openalex.org/C204241405","wikidata":"https://www.wikidata.org/wiki/Q461499","display_name":"Transformation (genetics)","level":3,"score":0.4169021248817444},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.4112612009048462},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.2379397749900818},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.22758466005325317},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.19819611310958862},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.18805530667304993},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.17016416788101196},{"id":"https://openalex.org/C98986596","wikidata":"https://www.wikidata.org/wiki/Q1143031","display_name":"Semiconductor memory","level":2,"score":0.14162850379943848},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.1298142671585083},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.1118503212928772},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3332466.3374507","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3332466.3374507","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":4,"referenced_works":["https://openalex.org/W1556604985","https://openalex.org/W2077436409","https://openalex.org/W2290397527","https://openalex.org/W2898442528"],"related_works":["https://openalex.org/W1963859303","https://openalex.org/W2364044215","https://openalex.org/W2389600408","https://openalex.org/W240129890","https://openalex.org/W3048701459","https://openalex.org/W2149078538","https://openalex.org/W2080146221","https://openalex.org/W2370314112","https://openalex.org/W1912958759","https://openalex.org/W2792081825"],"abstract_inverted_index":{"While":[0],"GPU":[1],"utilization":[2],"allows":[3],"one":[4,94],"to":[5,9,24,35,60,86],"speed":[6],"up":[7,85],"computations":[8],"the":[10,17,26,67,80,92,96],"orders":[11],"of":[12,75,98],"magnitude,":[13],"memory":[14,31,37,47,70],"management":[15,48],"remains":[16],"bottleneck":[18],"making":[19],"it":[20],"often":[21],"a":[22,52],"challenge":[23],"achieve":[25],"desired":[27],"performance.":[28],"Hence,":[29],"different":[30],"optimizations":[32],"are":[33],"leveraged":[34],"make":[36],"being":[38],"used":[39],"more":[40],"effectively.":[41],"We":[42],"propose":[43],"an":[44],"approach":[45,77],"automating":[46],"utilizing":[49],"partial":[50],"evaluation,":[51],"program":[53,82],"transformation":[54],"technique":[55],"that":[56,79],"enables":[57],"data":[58],"accesses":[59],"be":[61,84],"pre-computed,":[62],"optimized,":[63],"and":[64],"embedded":[65],"into":[66],"code,":[68],"saving":[69],"transactions.":[71],"An":[72],"empirical":[73],"evaluation":[74],"our":[76],"shows":[78],"transformed":[81],"could":[83],"8":[87],"times":[88],"as":[89,91],"efficient":[90],"original":[93],"in":[95],"case":[97],"CUDA":[99],"C":[100],"na\u00efve":[101],"string":[102],"pattern":[103],"matching":[104],"algorithm":[105],"implementation.":[106]},"counts_by_year":[{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":1},{"year":2021,"cited_by_count":1}],"updated_date":"2026-07-29T14:22:42.915294","created_date":"2025-10-10T00:00:00"}
