{"id":"https://openalex.org/W4399851050","doi":"https://doi.org/10.1145/3656411","title":"Descend: A Safe GPU Systems Programming Language","display_name":"Descend: A Safe GPU Systems Programming Language","publication_year":2024,"publication_date":"2024-06-20","ids":{"openalex":"https://openalex.org/W4399851050","doi":"https://doi.org/10.1145/3656411"},"language":"en","primary_location":{"id":"doi:10.1145/3656411","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656411","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3656411","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3656411","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5022923674","display_name":"Bastian K\u00f6pcke","orcid":"https://orcid.org/0000-0001-5271-6893"},"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":"Bastian K\u00f6pcke","raw_affiliation_strings":["University of M\u00fcnster, M\u00fcnster, Germany"],"raw_orcid":"https://orcid.org/0000-0001-5271-6893","affiliations":[{"raw_affiliation_string":"University of M\u00fcnster, M\u00fcnster, Germany","institution_ids":["https://openalex.org/I22465464"]}]},{"author_position":"middle","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 M\u00fcnster, M\u00fcnster, Germany"],"raw_orcid":"https://orcid.org/0000-0003-3857-9380","affiliations":[{"raw_affiliation_string":"University of M\u00fcnster, M\u00fcnster, Germany","institution_ids":["https://openalex.org/I22465464"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5016319844","display_name":"Michel Steuwer","orcid":"https://orcid.org/0000-0001-5048-0741"},"institutions":[{"id":"https://openalex.org/I4577782","display_name":"Technische Universit\u00e4t Berlin","ror":"https://ror.org/03v4gjf40","country_code":"DE","type":"education","lineage":["https://openalex.org/I4577782"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Michel Steuwer","raw_affiliation_strings":["Technische Universit\u00e4t Berlin, Berlin, Germany"],"raw_orcid":"https://orcid.org/0000-0001-5048-0741","affiliations":[{"raw_affiliation_string":"Technische Universit\u00e4t Berlin, Berlin, Germany","institution_ids":["https://openalex.org/I4577782"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.7653,"has_fulltext":false,"cited_by_count":7,"citation_normalized_percentile":{"value":0.91402835,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":97,"max":99},"biblio":{"volume":"8","issue":"PLDI","first_page":"841","last_page":"864"},"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.9987000226974487,"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.9937000274658203,"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.7764797806739807},{"id":"https://openalex.org/keywords/general-purpose-computing-on-graphics-processing-units","display_name":"General-purpose computing on graphics processing units","score":0.5155181884765625},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.48972275853157043},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.4343612492084503},{"id":"https://openalex.org/keywords/computer-graphics","display_name":"Computer graphics (images)","score":0.42158880829811096},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.3651544451713562},{"id":"https://openalex.org/keywords/graphics","display_name":"Graphics","score":0.13034042716026306}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7764797806739807},{"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.5155181884765625},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.48972275853157043},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.4343612492084503},{"id":"https://openalex.org/C121684516","wikidata":"https://www.wikidata.org/wiki/Q7600677","display_name":"Computer graphics (images)","level":1,"score":0.42158880829811096},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3651544451713562},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.13034042716026306}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3656411","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656411","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3656411","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3656411","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656411","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3656411","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":false},"content_urls":{"pdf":"https://content.openalex.org/works/W4399851050.pdf"},"referenced_works_count":27,"referenced_works":["https://openalex.org/W1541729506","https://openalex.org/W1985462363","https://openalex.org/W1999534369","https://openalex.org/W2014325923","https://openalex.org/W2041679393","https://openalex.org/W2043201977","https://openalex.org/W2060990118","https://openalex.org/W2076960126","https://openalex.org/W2083221501","https://openalex.org/W2083310717","https://openalex.org/W2085118703","https://openalex.org/W2121717408","https://openalex.org/W2171399035","https://openalex.org/W2484342675","https://openalex.org/W2594730095","https://openalex.org/W2644985445","https://openalex.org/W2969925465","https://openalex.org/W3047091820","https://openalex.org/W3089397612","https://openalex.org/W3130678148","https://openalex.org/W3138798301","https://openalex.org/W3139187675","https://openalex.org/W3152550240","https://openalex.org/W3186710384","https://openalex.org/W4240382083","https://openalex.org/W4288951624","https://openalex.org/W4308968707"],"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/W3213381848","https://openalex.org/W2149078538","https://openalex.org/W2080146221","https://openalex.org/W2370314112","https://openalex.org/W1912958759"],"abstract_inverted_index":{"Graphics":[0],"Processing":[1],"Units":[2],"(GPU)":[3],"offer":[4],"tremendous":[5],"computational":[6,17],"power":[7],"by":[8,133,203,223],"following":[9],"a":[10,95,141],"throughput":[11],"oriented":[12],"paradigm":[13],"where":[14,147],"many":[15],"thousand":[16],"units":[18],"operate":[19],"in":[20,117,129],"parallel.":[21],"Programming":[22],"such":[23,51,81],"massively":[24],"parallel":[25,185],"hardware":[26],"is":[27,110,235],"challenging.":[28],"Programmers":[29],"must":[30],"correctly":[31],"and":[32,38,54,85,125,136,161,225],"efficiently":[33],"coordinate":[34],"thousands":[35],"of":[36,120,188,237],"threads":[37],"their":[39,61],"accesses":[40,198],"to":[41,65,74,78,102,246],"various":[42],"shared":[43],"memory":[44,67,127,173,189,197,219],"spaces.":[45],"Existing":[46],"mainstream":[47],"GPU":[48,97,106,113,126,144,240],"programming":[49,98,107,115,145],"languages,":[50],"as":[52,82,191,193,213],"CUDA":[53,249],"OpenCL,":[55],"are":[56,149],"based":[57],"on":[58],"C/C++":[59],"inheriting":[60],"fundamentally":[62],"unsafe":[63,214],"ways":[64],"access":[66,172,186],"via":[68],"raw":[69],"pointers.":[70],"This":[71],"facilitates":[72],"easy":[73],"make,":[75],"but":[76],"hard":[77],"detect":[79],"bugs,":[80],"data":[83,176],"races":[84],"deadlocks":[86],".":[87,138,215],"In":[88,100],"this":[89],"paper,":[90],"we":[91,180],"present":[92],"Descend":[93,109,139,224,234],":":[94,157],"safe":[96,104,123,184],"language.":[99],"contrast":[101],"prior":[103],"high-level":[105],"approaches,":[108],"an":[111],"imperative":[112],"systems":[114],"language":[116],"the":[118,130,153,218],"spirit":[119],"Rust,":[121],"enforcing":[122],"CPU":[124],"management":[128],"type":[131,205],"system":[132],"tracking":[134],"Ownership":[135],"Lifetimes":[137],"introduces":[140],"new":[142],"holistic":[143],"model":[146],"computations":[148],"hierarchically":[150],"scheduled":[151],"over":[152],"GPU\u2019s":[154],"execution":[155,169],"resources":[156,170],"grid,":[158],"blocks,":[159],"warps,":[160],"threads.":[162],"Descend\u2019s":[163,252],"extended":[164],"Borrow":[165],"checking":[166],"ensures":[167],"that":[168,199,233],"safely":[171],"regions":[174],"without":[175],"races.":[177],"For":[178,196],"this,":[179],"introduced":[181],"views":[182],"describing":[183],"patterns":[187],"regions,":[190],"well":[192],"atomic":[194],"variables.":[195],"can\u2019t":[200],"be":[201],"checked":[202],"our":[204,227],"system,":[206],"users":[207],"can":[208],"annotate":[209],"limited":[210],"code":[211],"sections":[212],"We":[216],"discuss":[217],"safety":[220,253],"guarantees":[221],"offered":[222],"evaluate":[226],"implementation":[228],"using":[229],"multiple":[230],"benchmarks,":[231],"demonstrating":[232],"capable":[236],"expressing":[238],"real-world":[239],"programs":[241,250],"showing":[242],"competitive":[243],"performance":[244],"compared":[245],"manually":[247],"written":[248],"lacking":[251],"guarantees.":[254]},"counts_by_year":[{"year":2026,"cited_by_count":3},{"year":2025,"cited_by_count":4}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
