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...

Full description

Saved in:
Bibliographic Details
Published in:2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE) pp. 928 - 931
Main Author: Diarra, Rokiatou
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