Ben Ashbaugh, James C. Brodman, M. Kinsner, G. Lueck, S. Pennycook, Roland Schulz
{"title":"更好地定义SYCL内存一致性模型","authors":"Ben Ashbaugh, James C. Brodman, M. Kinsner, G. Lueck, S. Pennycook, Roland Schulz","doi":"10.1145/3456669.3456696","DOIUrl":null,"url":null,"abstract":"A memory consistency model is a key component of a parallel programming model that describes guaranteed behavior for applications and valid optimizations for implementers. The SYCL 2020 specification took a step forward by adopting the atomic_ref syntax from the C++20 specification and concepts similar to memory scopes from the OpenCL 2.0 specification, though further efforts to formalize the SYCL memory model are ongoing and will be progressed in future specifications. This technical presentation will summarize the guarantees and several unexpected non-guarantees that are provided by the memory model in the SYCL 2020 specification, using accessible language and examples. The talk will describe memory models from other parallel programming models that could inform and influence the SYCL memory model, including the C++, OpenCL 2.0, and Vulkan memory models. The talk will also describe features unique to the SYCL specification that will need to be included in the SYCL memory model, such as unified shared memory, which introduce challenges that have not been solved in existing memory models.","PeriodicalId":73497,"journal":{"name":"International Workshop on OpenCL","volume":"1 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2021-04-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Toward a Better Defined SYCL Memory Consistency Model\",\"authors\":\"Ben Ashbaugh, James C. Brodman, M. Kinsner, G. Lueck, S. Pennycook, Roland Schulz\",\"doi\":\"10.1145/3456669.3456696\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"A memory consistency model is a key component of a parallel programming model that describes guaranteed behavior for applications and valid optimizations for implementers. The SYCL 2020 specification took a step forward by adopting the atomic_ref syntax from the C++20 specification and concepts similar to memory scopes from the OpenCL 2.0 specification, though further efforts to formalize the SYCL memory model are ongoing and will be progressed in future specifications. This technical presentation will summarize the guarantees and several unexpected non-guarantees that are provided by the memory model in the SYCL 2020 specification, using accessible language and examples. The talk will describe memory models from other parallel programming models that could inform and influence the SYCL memory model, including the C++, OpenCL 2.0, and Vulkan memory models. The talk will also describe features unique to the SYCL specification that will need to be included in the SYCL memory model, such as unified shared memory, which introduce challenges that have not been solved in existing memory models.\",\"PeriodicalId\":73497,\"journal\":{\"name\":\"International Workshop on OpenCL\",\"volume\":\"1 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-04-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Workshop on OpenCL\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3456669.3456696\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Workshop on OpenCL","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3456669.3456696","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Toward a Better Defined SYCL Memory Consistency Model
A memory consistency model is a key component of a parallel programming model that describes guaranteed behavior for applications and valid optimizations for implementers. The SYCL 2020 specification took a step forward by adopting the atomic_ref syntax from the C++20 specification and concepts similar to memory scopes from the OpenCL 2.0 specification, though further efforts to formalize the SYCL memory model are ongoing and will be progressed in future specifications. This technical presentation will summarize the guarantees and several unexpected non-guarantees that are provided by the memory model in the SYCL 2020 specification, using accessible language and examples. The talk will describe memory models from other parallel programming models that could inform and influence the SYCL memory model, including the C++, OpenCL 2.0, and Vulkan memory models. The talk will also describe features unique to the SYCL specification that will need to be included in the SYCL memory model, such as unified shared memory, which introduce challenges that have not been solved in existing memory models.