Towards Automatic Restrictification of CUDA Kernel Arguments
Many procedural languages, such as C and C++, have pointers. Pointers are powerful and convenient, but pointer aliasing still hinders compiler optimizations, despite several years of research on pointer aliasing analysis. Because alias analysis is a difficult task and results are not always accurate...
Saved in:
| Published in: | 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE) pp. 928 - 931 |
|---|---|
| Main Author: | |
| Format: | Conference Proceeding |
| Language: | English |
| Published: |
ACM
01.09.2018
|
| Subjects: | |
| ISSN: | 2643-1572 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Many procedural languages, such as C and C++, have pointers. Pointers are powerful and convenient, but pointer aliasing still hinders compiler optimizations, despite several years of research on pointer aliasing analysis. Because alias analysis is a difficult task and results are not always accurate, the ISO C standard 99 has added a keyword, named restrict to allow the programmer to specify non-aliasing as an aid to the compiler's optimizer and to thereby possibly improve performance. The task of annotating pointers with the restrict keyword is still left to the programmer. This task is, in general, tedious and prone to errors especially since the C does not perform any verification to ensure that restrict keyword is not misplaced. In this paper we present a static analysis tool that (i) finds CUDA kernels call sites in which actual parameters do not alias; (ii) clones the kernels called at such sites; (iii) after performing an alias analysis in these kernels, adds the restrict keyword to their arguments; and (iv) replaces the original kernel call by a call to the optimized clone whenever possible. |
|---|---|
| AbstractList | Many procedural languages, such as C and C++, have pointers. Pointers are powerful and convenient, but pointer aliasing still hinders compiler optimizations, despite several years of research on pointer aliasing analysis. Because alias analysis is a difficult task and results are not always accurate, the ISO C standard 99 has added a keyword, named restrict to allow the programmer to specify non-aliasing as an aid to the compiler's optimizer and to thereby possibly improve performance. The task of annotating pointers with the restrict keyword is still left to the programmer. This task is, in general, tedious and prone to errors especially since the C does not perform any verification to ensure that restrict keyword is not misplaced. In this paper we present a static analysis tool that (i) finds CUDA kernels call sites in which actual parameters do not alias; (ii) clones the kernels called at such sites; (iii) after performing an alias analysis in these kernels, adds the restrict keyword to their arguments; and (iv) replaces the original kernel call by a call to the optimized clone whenever possible. |
| Author | Diarra, Rokiatou |
| Author_xml | – sequence: 1 givenname: Rokiatou surname: Diarra fullname: Diarra, Rokiatou organization: SATIE, Univ. Paris-Sud, Univ. Paris Saclay,Gif-sur-Yvette,France |
| BookMark | eNotj89LwzAYQKMouM2dPXjJP9D5JV_SJOCl1J84EGQDbyPNvkhkbaXpEP97C3p68A4P3pyddX1HjF0JWAmh9A1KtEKZFUolNOIJm08WUDs076dsJkuFhdBGXrBlzp8AIK0BLfWM3W76bz_sM6-OY9_6MQX-RnkcUhhTTGESfcf7yOvtXcVfaOjowKvh49hSN-ZLdh79IdPynwu2fbjf1E_F-vXxua7WhUdwY-F13Ftvg2uEctSAskASyIYYQSu7B9LGBAfGYelMY1QZom1QkmmsE97ggl3_dRMR7b6G1PrhZ-emD9AGfwGUcEi9 |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1145/3238147.3241533 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 145035937X 9781450359375 |
| EISSN | 2643-1572 |
| EndPage | 931 |
| ExternalDocumentID | 9000057 |
| Genre | orig-research |
| GroupedDBID | 29I 6IE 6IF 6IH 6IK 6IL 6IM 6IN 6J9 AAJGR AAWTH ABLEC ACREN ADYOE ADZIZ AFYQB ALMA_UNASSIGNED_HOLDINGS AMTXH APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO IEGSK IPLJI M43 OCL RIE RIL |
| ID | FETCH-LOGICAL-a309t-a5fd8a8c9b149eb0480e20e8cff0548d0e577c90793697b746cf8b32e7b891a73 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000553784500102&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 13 06:22:41 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a309t-a5fd8a8c9b149eb0480e20e8cff0548d0e577c90793697b746cf8b32e7b891a73 |
| PageCount | 4 |
| ParticipantIDs | ieee_primary_9000057 |
| PublicationCentury | 2000 |
| PublicationDate | 2018-Sept. |
| PublicationDateYYYYMMDD | 2018-09-01 |
| PublicationDate_xml | – month: 09 year: 2018 text: 2018-Sept. |
| PublicationDecade | 2010 |
| PublicationTitle | 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE) |
| PublicationTitleAbbrev | ASE |
| PublicationYear | 2018 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| SSID | ssj0002870525 ssj0051577 |
| Score | 2.046694 |
| Snippet | Many procedural languages, such as C and C++, have pointers. Pointers are powerful and convenient, but pointer aliasing still hinders compiler optimizations,... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 928 |
| SubjectTerms | Accuracy aliasing C++ languages Cloning compilers CUDA GPU Graphics processing units ISO Standards Kernel Optimization program optimization restrict Software engineering Static analysis |
| Title | Towards Automatic Restrictification of CUDA Kernel Arguments |
| URI | https://ieeexplore.ieee.org/document/9000057 |
| WOSCitedRecordID | wos000553784500102&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NSwMxEB1a8eCpait-k4NHt93uJpsEvJRqEYRSpIXeSpKdiCC7st36-03StfXgxVvIJWFCeG-SmfcA7oSg0gppIuGyn4g6hhsp60Y814ypJNdKqmA2wadTsVzKWQvud70wiBiKz7Dvh-EvPy_Nxj-VDbzBpeMXbWhznm17tXbvKf7Dju119hxMc95I-QwpG6Qemijvpx6xvEvuLy-VACWTzv82cQy9fU8eme3Q5gRaWJxC58eUgTR3tAsP81AIuyajTV0GPVbyit6cw4SqoHAQpLRkvHgckResCvwgo-otrLruwWLyNB8_R41FQqTSWNaRYjYXShipXaaD2jeIYxKjMNY6LibyGF0YjPQqeJnkmtPMWKHTBLkWcqh4egYHRVngORBOc5nwPKOxFpSlmaYs8YJcQ9TK0Q51AV0fjNXnVgVj1cTh8u_pKzhy1EJsq7Gu4aCuNngDh-arfl9Xt-HovgEr9peC |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PT8IwFH5BNNETKhp_24NHB2Nr1zbxQlCCAQkxkHAj7fZmTMxmxvDvty0TPHjx1vTS5jXN9732ve8DuBOCylTI2BMm-_GoYbieSs2IJ5oxFSRaSeXMJvh4LOZzOanB_aYXBhFd8Rm27ND95Sd5vLJPZW1rcGn4xQ7sMkoDf92ttXlRsV92bKu0Z4Ca80rMp0NZO7TgRHkrtJhlfXJ_uak4MOk3_reNQzjZduWRyQZvjqCG2TE0fmwZSHVLm_AwdaWwS9JdlblTZCWvaO05YlcX5I6C5CnpzR67ZIhFhh-kW7y5VZcnMOs_TXsDrzJJ8FToy9JTLE2EErHUJtdBbVvEMfBRxGlq2JhIfDRhiKXVwYsk15xGcSp0GCDXQnYUD0-hnuUZngHhNJEBTyLqa0FZGGnKAivJ1UGtDPFQ59C0wVh8rnUwFlUcLv6evoX9wfRltBg9j4eXcGCIhljXZl1BvSxWeA178Vf5vixu3DF-A0EXmsk |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=proceeding&rft.title=2018+33rd+IEEE%2FACM+International+Conference+on+Automated+Software+Engineering+%28ASE%29&rft.atitle=Towards+Automatic+Restrictification+of+CUDA+Kernel+Arguments&rft.au=Diarra%2C+Rokiatou&rft.date=2018-09-01&rft.pub=ACM&rft.eissn=2643-1572&rft.spage=928&rft.epage=931&rft_id=info:doi/10.1145%2F3238147.3241533&rft.externalDocID=9000057 |