{"id":"https://openalex.org/W2301928242","doi":"https://doi.org/10.1145/2884045.2884049","title":"Multi-stage programming for GPUs in C++ using PACXX","display_name":"Multi-stage programming for GPUs in C++ using PACXX","publication_year":2016,"publication_date":"2016-03-04","ids":{"openalex":"https://openalex.org/W2301928242","doi":"https://doi.org/10.1145/2884045.2884049","mag":"2301928242"},"language":"en","primary_location":{"id":"doi:10.1145/2884045.2884049","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2884045.2884049","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://www.research.ed.ac.uk/en/publications/0351aecf-296e-43f3-b80d-4c464daf6007","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5017380426","display_name":"Michael Haidl","orcid":"https://orcid.org/0000-0003-0225-498X"},"institutions":[{"id":"https://openalex.org/I22465464","display_name":"University of M\u00fcnster","ror":"https://ror.org/00pd74e08","country_code":"DE","type":"education","lineage":["https://openalex.org/I22465464"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Michael Haidl","raw_affiliation_strings":["University of Muenster, Germany"],"affiliations":[{"raw_affiliation_string":"University of Muenster, Germany","institution_ids":["https://openalex.org/I22465464"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5016319844","display_name":"Michel Steuwer","orcid":"https://orcid.org/0000-0001-5048-0741"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Michel Steuwer","raw_affiliation_strings":["University of Edinburgh, United Kingdom"],"affiliations":[{"raw_affiliation_string":"University of Edinburgh, United Kingdom","institution_ids":["https://openalex.org/I98677209"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5052026949","display_name":"Tim Humernbrum","orcid":null},"institutions":[{"id":"https://openalex.org/I22465464","display_name":"University of M\u00fcnster","ror":"https://ror.org/00pd74e08","country_code":"DE","type":"education","lineage":["https://openalex.org/I22465464"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Tim Humernbrum","raw_affiliation_strings":["University of Muenster, Germany"],"affiliations":[{"raw_affiliation_string":"University of Muenster, Germany","institution_ids":["https://openalex.org/I22465464"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5061421539","display_name":"Sergei Gorlatch","orcid":"https://orcid.org/0000-0003-3857-9380"},"institutions":[{"id":"https://openalex.org/I22465464","display_name":"University of M\u00fcnster","ror":"https://ror.org/00pd74e08","country_code":"DE","type":"education","lineage":["https://openalex.org/I22465464"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Sergei Gorlatch","raw_affiliation_strings":["University of Muenster, Germany"],"affiliations":[{"raw_affiliation_string":"University of Muenster, Germany","institution_ids":["https://openalex.org/I22465464"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5017380426"],"corresponding_institution_ids":["https://openalex.org/I22465464"],"apc_list":null,"apc_paid":null,"fwci":1.2613,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.77120557,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"32","last_page":"41"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":1.0,"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":1.0,"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.9979000091552734,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9959999918937683,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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.8787060976028442},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.8107342720031738},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.751537024974823},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.7466939091682434},{"id":"https://openalex.org/keywords/general-purpose-computing-on-graphics-processing-units","display_name":"General-purpose computing on graphics processing units","score":0.5605968236923218},{"id":"https://openalex.org/keywords/embedding","display_name":"Embedding","score":0.5335273146629333},{"id":"https://openalex.org/keywords/graphics","display_name":"Graphics","score":0.5097936987876892},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4792052209377289},{"id":"https://openalex.org/keywords/task","display_name":"Task (project management)","score":0.41720402240753174},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4102051854133606},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.36410561203956604},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.1823306679725647}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8787060976028442},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.8107342720031738},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.751537024974823},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.7466939091682434},{"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.5605968236923218},{"id":"https://openalex.org/C41608201","wikidata":"https://www.wikidata.org/wiki/Q980509","display_name":"Embedding","level":2,"score":0.5335273146629333},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.5097936987876892},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4792052209377289},{"id":"https://openalex.org/C2780451532","wikidata":"https://www.wikidata.org/wiki/Q759676","display_name":"Task (project management)","level":2,"score":0.41720402240753174},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4102051854133606},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.36410561203956604},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.1823306679725647},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","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/C187736073","wikidata":"https://www.wikidata.org/wiki/Q2920921","display_name":"Management","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/2884045.2884049","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2884045.2884049","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit","raw_type":"proceedings-article"},{"id":"pmh:oai:eprints.gla.ac.uk:146601","is_oa":false,"landing_page_url":"http://eprints.gla.ac.uk/view/author/39312.html>","pdf_url":null,"source":{"id":"https://openalex.org/S4210235606","display_name":"ENLIGHTEN (Jurnal Bimbingan dan Konseling Islam)","issn_l":"2622-8912","issn":["2622-8912","2622-8920"],"is_oa":false,"is_in_doaj":true,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":null,"raw_type":"PeerReviewed"},{"id":"pmh:oai:pure.ed.ac.uk:openaire/0351aecf-296e-43f3-b80d-4c464daf6007","is_oa":true,"landing_page_url":"https://www.research.ed.ac.uk/en/publications/0351aecf-296e-43f3-b80d-4c464daf6007","pdf_url":null,"source":{"id":"https://openalex.org/S4406922455","display_name":"Edinburgh Research Explorer","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Haidl, M, Steuwer, M, Hummernbrum, T & Gorlatch, S 2016, Multi-Stage Programming for GPUs in Modern C++ using PACXX. in GPGPU '16 Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit. pp. 32-41, 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, Barcelona, Spain, 12/03/16. https://doi.org/10.1145/2884045.2884049","raw_type":"contributionToPeriodical"},{"id":"pmh:oai:pure.ed.ac.uk:publications/0351aecf-296e-43f3-b80d-4c464daf6007","is_oa":false,"landing_page_url":"http://dl.acm.org/citation.cfm?id=2884049","pdf_url":null,"source":{"id":"https://openalex.org/S4406922455","display_name":"Edinburgh Research Explorer","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""}],"best_oa_location":{"id":"pmh:oai:pure.ed.ac.uk:openaire/0351aecf-296e-43f3-b80d-4c464daf6007","is_oa":true,"landing_page_url":"https://www.research.ed.ac.uk/en/publications/0351aecf-296e-43f3-b80d-4c464daf6007","pdf_url":null,"source":{"id":"https://openalex.org/S4406922455","display_name":"Edinburgh Research Explorer","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Haidl, M, Steuwer, M, Hummernbrum, T & Gorlatch, S 2016, Multi-Stage Programming for GPUs in Modern C++ using PACXX. in GPGPU '16 Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit. pp. 32-41, 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, Barcelona, Spain, 12/03/16. https://doi.org/10.1145/2884045.2884049","raw_type":"contributionToPeriodical"},"sustainable_development_goals":[{"score":0.7599999904632568,"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":21,"referenced_works":["https://openalex.org/W1528193315","https://openalex.org/W1650987719","https://openalex.org/W1981404401","https://openalex.org/W1985462363","https://openalex.org/W1986454448","https://openalex.org/W2050291019","https://openalex.org/W2076812085","https://openalex.org/W2091589449","https://openalex.org/W2096314727","https://openalex.org/W2107096626","https://openalex.org/W2132598718","https://openalex.org/W2143609451","https://openalex.org/W2147578933","https://openalex.org/W2153185479","https://openalex.org/W2285827435","https://openalex.org/W2399715892","https://openalex.org/W2998145234","https://openalex.org/W3163302786","https://openalex.org/W4231380462","https://openalex.org/W4241563291","https://openalex.org/W4242355549"],"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":{"Writing":[0],"and":[1,39,84],"optimizing":[2],"programs":[3],"for":[4,19,50],"high":[5],"performance":[6],"on":[7,36],"systems":[8],"with":[9],"Graphics":[10],"Processing":[11],"Units":[12],"(GPUs)":[13],"remains":[14],"a":[15],"challenging":[16],"task":[17],"even":[18],"expert":[20],"programmers.":[21],"A":[22],"promising":[23],"optimization":[24],"technique":[25],"is":[26,82],"multi-stage":[27],"programming":[28],"--":[29],"evaluating":[30],"parts":[31],"of":[32],"the":[33,37,41,45,74],"program":[34],"upfront":[35],"CPU":[38],"embedding":[40],"computed":[42],"values":[43],"in":[44,61,67],"GPU":[46,75],"code,":[47],"thus":[48],"allowing":[49],"more":[51],"aggressive":[52],"compiler":[53],"optimizations.":[54],"Unfortunately,":[55],"such":[56],"optimizations":[57],"are":[58,70],"not":[59],"possible":[60],"CUDA,":[62],"whereas":[63],"to":[64,72],"apply":[65],"them":[66],"OpenCL,":[68],"programmers":[69],"forced":[71],"manipulate":[73],"source":[76],"code":[77],"as":[78],"plain":[79],"strings,":[80],"which":[81],"error-prone":[83],"type-unsafe.":[85]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":1}],"updated_date":"2025-11-25T21:42:39.735039","created_date":"2025-10-10T00:00:00"}
