{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,5]],"date-time":"2026-03-05T15:33:44Z","timestamp":1772724824175,"version":"3.50.1"},"reference-count":76,"publisher":"IEEE","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2016,10]]},"DOI":"10.1109\/micro.2016.7783714","type":"proceedings-article","created":{"date-parts":[[2016,12,19]],"date-time":"2016-12-19T17:11:05Z","timestamp":1482167465000},"page":"1-14","source":"Crossref","is-referenced-by-count":15,"title":["MIMD synchronization on SIMT architectures"],"prefix":"10.1109","author":[{"given":"Ahmed","family":"ElTantawy","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tor M.","family":"Aamodt","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"263","reference":[{"key":"ref73","doi-asserted-by":"crossref","DOI":"10.1007\/978-3-540-89740-8_2","article-title":"MCUDA: An Efficient Implementation of CUDA Kernels for Multi-Core CPUs","author":"stratton","year":"2008","journal-title":"Languages and Compilers for Parallel Computing"},{"key":"ref72","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"ref71","doi-asserted-by":"publisher","DOI":"10.1145\/1941553.1941574"},{"key":"ref70","first-page":"1","article-title":"Convergence and Scalarization for Data-Parallel Architectures","author":"lee","year":"2013","journal-title":"Proc Int Symp Code Generation Optimization (CGO)"},{"key":"ref76","doi-asserted-by":"publisher","DOI":"10.1145\/2903150.2903155"},{"key":"ref74","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2013.82"},{"key":"ref39","article-title":"CUDA Binary Utilities","year":"2015","journal-title":"Nvidia"},{"key":"ref75","doi-asserted-by":"publisher","DOI":"10.1145\/2751205.2751232"},{"key":"ref38","article-title":"Correctness Discussion of a SIMT-induced Deadlock Elimination Algorithm","author":"eltantawy","year":"2016","journal-title":"University of British Columbia"},{"key":"ref33","article-title":"AMD OpenCL Compiler","author":"villmow","year":"2010","journal-title":"LLVM Developers Conference"},{"key":"ref32","article-title":"LLVN 3.6 Release Information","year":"2015","journal-title":"LLVM compiler"},{"key":"ref31","article-title":"How does the OpenACC API relate to the OpenMP API?","year":"0","journal-title":"Ope-nACC org"},{"key":"ref30","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737962"},{"key":"ref37","doi-asserted-by":"publisher","DOI":"10.1016\/B978-0-12-384988-5.00006-1"},{"key":"ref36","article-title":"GLSL Spinlock","year":"2014","journal-title":"NVIDIA Forums"},{"key":"ref35","article-title":"Weird behaviour of atomic functions","year":"2012","journal-title":"Intel Devloper Zone"},{"key":"ref34","article-title":"CUDA LLVM Compiler","year":"2015","journal-title":"Nvidia"},{"key":"ref60","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"ref62","article-title":"OpenMP GPU\/Accelerators Coming of Age in Clang","author":"wong","year":"2015"},{"key":"ref61","article-title":"OpenMP and NVIDIA","author":"larkin","year":"2013","journal-title":"Nvidia"},{"key":"ref63","article-title":"Integrating GPU support for OpenMP offloading directives into Clang","author":"bertolli","year":"2015","journal-title":"Proc ACM Int'l Workshop on the LLVM Compiler Infrastructure in HPC"},{"key":"ref28","doi-asserted-by":"publisher","DOI":"10.1145\/2384616.2384625"},{"key":"ref64","doi-asserted-by":"publisher","DOI":"10.1145\/2832087.2832089"},{"key":"ref27","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2010.5452013"},{"key":"ref65","first-page":"235","article-title":"The Dual-Path Execution Model for Efficient GPU Control Flow","author":"rhu","year":"2013","journal-title":"Proc IEEE Symp on High-Perf Computer Architecture (HPCA)"},{"key":"ref66","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155676"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145844"},{"key":"ref67","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2011.5749714"},{"key":"ref68","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155656"},{"key":"ref69","first-page":"61","article-title":"CAPRI: Prediction of Compaction-Adequacy for Handling Control-Divergence in GPGPU Architectures","author":"rhu","year":"2012","journal-title":"Proc IEEE\/ACM Symp on ComputerArchitecture (ISCA)"},{"key":"ref2","article-title":"The ISPC Parallel Execution Model","year":"2016","journal-title":"Intel Corporation"},{"key":"ref1","article-title":"NVIDIA CUDA Programming Guide","year":"2011","journal-title":"NVidia CUDA"},{"key":"ref20","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2007.30"},{"key":"ref22","article-title":"atomicCAS does NOT seem to work","year":"2009","journal-title":"NVIDIA Forums"},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1145\/1815961.1815992"},{"key":"ref24","author":"ramamurthy","year":"2011","journal-title":"Towards scalar synchronization in SIMT architectures"},{"key":"ref23","article-title":"atomic locks","year":"2012","journal-title":"NVIDIA Forums"},{"key":"ref26","doi-asserted-by":"publisher","DOI":"10.1109\/L-CA.2013.4"},{"key":"ref25","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155655"},{"key":"ref50","year":"2016","journal-title":"Microsoft"},{"key":"ref51","article-title":"LLVM Alias Analysis Infrastructure","year":"2015","journal-title":"LLVM compiler"},{"key":"ref59","article-title":"CUDA SDK 3.2","year":"2013","journal-title":"Nvidia"},{"key":"ref58","article-title":"LibNVVM Library","year":"2015","journal-title":"Nvidia"},{"key":"ref57","article-title":"CUDA to LLVM-IR","author":"mikushin","year":"2015"},{"key":"ref56","article-title":"LIBCLC Library","year":"2015","journal-title":"LLVM compiler"},{"key":"ref55","article-title":"Clang Front End","year":"2015","journal-title":"LLVM compiler"},{"key":"ref54","article-title":"GPGPU-Sim 3.x Manual","author":"aamodt","year":"2013","journal-title":"University of British Columbia"},{"key":"ref53","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2009.4919648"},{"key":"ref52","doi-asserted-by":"publisher","DOI":"10.1145\/236114.236115"},{"key":"ref10","doi-asserted-by":"publisher","DOI":"10.1145\/1941553.1941590"},{"key":"ref11","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2012.6402918"},{"key":"ref40","doi-asserted-by":"publisher","DOI":"10.1145\/53990.53994"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145832"},{"key":"ref13","first-page":"101","article-title":"OpenMP to GPGPU: a Compiler Framework for Automatic Translation and Optimization","author":"lee","year":"2009","journal-title":"Proc ACM Symp on Prin and Prac of Par Prog (PPoPP)"},{"key":"ref14","doi-asserted-by":"publisher","DOI":"10.1109\/HPCC.2011.73"},{"key":"ref15","doi-asserted-by":"publisher","DOI":"10.1109\/LLVM-HPC.2014.10"},{"key":"ref16","article-title":"OpenMP Offload Infrastructure in LLVM","author":"antao","year":"0"},{"key":"ref17","article-title":"OpenMP Clang Frontend Documentation","year":"2015","journal-title":"OpenMP Clang Frontend"},{"key":"ref18","article-title":"Explicit Vector Programming with OpenMP 4.0 SIMD Extension","author":"tian","year":"2014","journal-title":"Primeur Magazine 2014"},{"key":"ref19","article-title":"SSDE and AWARE codes","author":"eitantawy","year":"2016"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1145\/800031.808581"},{"key":"ref3","article-title":"Accelerated Parallel Processing: OpenCL Programming Guide","year":"2013","journal-title":"AMD"},{"key":"ref6","author":"beylin","year":"2013","journal-title":"Insertion of multithreaded execution synchronization points in a software program"},{"key":"ref5","article-title":"System and method for managing divergent threads in a simd architecture","author":"coon","year":"2008"},{"key":"ref8","author":"houston","year":"2013","journal-title":"Method and System for Synchronization of Workitems with Divergent Control Flow"},{"key":"ref7","article-title":"Southern Islands Series Instruction Set Architecture","year":"2012","journal-title":"AMD Corporation"},{"key":"ref49","first-page":"49","article-title":"Measuring synchronisation and scheduling overheads in openmp","volume":"8","author":"bull","year":"1999","journal-title":"Proceedings of the European Workshop on OpenMP"},{"key":"ref9","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28869-2_16"},{"key":"ref46","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2012.16"},{"key":"ref45","author":"coon","year":"2008","journal-title":"Tracking Register Usage during Multithreaded Processing Using A Scoreboard Having Separate Memory Regions and Storing Sequential Register Size Indicators"},{"key":"ref48","doi-asserted-by":"publisher","DOI":"10.1145\/2716282.2716292"},{"key":"ref47","article-title":"Cloth in OpenCL","author":"brownsword","year":"2009","journal-title":"Khronos Group"},{"key":"ref42","doi-asserted-by":"publisher","DOI":"10.1145\/143095.143114"},{"key":"ref41","doi-asserted-by":"publisher","DOI":"10.1145\/12276.13328"},{"key":"ref44","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2014.6835936"},{"key":"ref43","doi-asserted-by":"publisher","DOI":"10.1145\/357172.357173"}],"event":{"name":"2016 49th Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO)","location":"Taipei, Taiwan","start":{"date-parts":[[2016,10,15]]},"end":{"date-parts":[[2016,10,19]]}},"container-title":["2016 49th Annual IEEE\/ACM International Symposium on Microarchitecture (MICRO)"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/7777315\/7783693\/07783714.pdf?arnumber=7783714","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,9,16]],"date-time":"2019-09-16T14:51:47Z","timestamp":1568645507000},"score":1,"resource":{"primary":{"URL":"http:\/\/ieeexplore.ieee.org\/document\/7783714\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,10]]},"references-count":76,"URL":"https:\/\/doi.org\/10.1109\/micro.2016.7783714","relation":{},"subject":[],"published":{"date-parts":[[2016,10]]}}}