{"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00231991","sets":["934:935:11486:11487"]},"path":["11487"],"owner":"44499","recid":"231991","title":["Automatically Fixing Data Races in CUDA Programs by Building Thread-local Cache"],"pubdate":{"attribute_name":"公開日","attribute_value":"2024-01-31"},"_buckets":{"deposit":"d5a182d2-ac8c-4fb9-8f6a-cc7967a05495"},"_deposit":{"id":"231991","pid":{"type":"depid","value":"231991","revision_id":0},"owners":[44499],"status":"published","created_by":44499},"item_title":"Automatically Fixing Data Races in CUDA Programs by Building Thread-local Cache","author_link":["627630","627627","627628","627629"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Automatically Fixing Data Races in CUDA Programs by Building Thread-local Cache"},{"subitem_title":"Automatically Fixing Data Races in CUDA Programs by Building Thread-local Cache","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[発表概要, Unrefereed Presentatin Abstract] ","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2024-01-31","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Arts and Sciences, The University of Tokyo"},{"subitem_text_value":"Graduate School of Arts and Sciences, The University of Tokyo"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Arts and Sciences, The University of Tokyo","subitem_text_language":"en"},{"subitem_text_value":"Graduate School of Arts and Sciences, The University of Tokyo","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"eng"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/231991/files/IPSJ-TPRO1701007.pdf","label":"IPSJ-TPRO1701007.pdf"},"date":[{"dateType":"Available","dateValue":"2026-01-31"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO1701007.pdf","filesize":[{"value":"31.3 kB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"5"},{"tax":["include_tax"],"price":"0","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"2c1492e3-e274-498d-8c0f-bde846cc4584","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2024 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Junyu, Lin"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Akimasa, Morihata"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Junyu, Lin","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Akimasa, Morihata","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11464814","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_3_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7802","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"CUDA is a parallel programming framework for GPU developed by Nvidia. In parallel programming, a data race will occur when different threads access the same memory at the same time, and at least one of the threads performs a write operation. we can fix data race by changing one of these conditions. A common approach is a serialization of the operations, which avoids simultaneous accesses in return for the loss of parallelism. We are developing a system to fix data races in CUDA by letting threads access different memories. It collects the necessary information using the off-the-shelf concurrency bug detection tool and then inserts codes to use thread-local caches instead of the shared memory. When threads differently modify their caches, it is unclear which value should be written back to the shared memory. To solve this issue, the system lets programmers write an assert() statement to express their requirement for values in the shared memory. We evaluated our system with several examples and demonstrated its ability to fix data races that existing serialization-based methods cannot.","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"CUDA is a parallel programming framework for GPU developed by Nvidia. In parallel programming, a data race will occur when different threads access the same memory at the same time, and at least one of the threads performs a write operation. we can fix data race by changing one of these conditions. A common approach is a serialization of the operations, which avoids simultaneous accesses in return for the loss of parallelism. We are developing a system to fix data races in CUDA by letting threads access different memories. It collects the necessary information using the off-the-shelf concurrency bug detection tool and then inserts codes to use thread-local caches instead of the shared memory. When threads differently modify their caches, it is unclear which value should be written back to the shared memory. To solve this issue, the system lets programmers write an assert() statement to express their requirement for values in the shared memory. We evaluated our system with several examples and demonstrated its ability to fix data races that existing serialization-based methods cannot.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"16","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"16","bibliographicIssueDates":{"bibliographicIssueDate":"2024-01-31","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"1","bibliographicVolumeNumber":"17"}]},"relation_version_is_last":true,"weko_creator_id":"44499"},"id":231991,"updated":"2025-01-19T10:34:32.439483+00:00","links":{},"created":"2025-01-19T01:32:35.470619+00:00"}