RT-CUDA: A Software Tool for CUDA Code Restructuring

RT-CUDA: A Software Tool for CUDA Code Restructuring. PhD thesis, King Fahd University of Petroleum and Minerals.

[img]
Preview
PDF (PhD Thesis)
RT-CUDA_PhD_Dissertation_Final.pdf - Accepted Version

Download (8MB) | Preview

Arabic Abstract

التطورات الأخيرة في وحدات معالجة الرسوميات قد فتحت تحديا جديدا في تسخير قوة الحوسبة كنموذج للحواسب ذو التطبيقات العامة باستخدام لغة البرمجة المتوازية الخاصة بها CUDA. لكن ، كتابة البرامج باستخدام CUDA يبقى تحديا للمبرمج العادي. في هذه الرسالة ، طورنا برمجية مفسرة معاد تأهيلها (RT-CUDA) مع أفضل التحسينات الممكنة للنواة لسد الفجوة بين لغات البرمجة عالية المستوى وبيئة CUDA التي تعتمد على طبيعة الآلة التي تعمل عليها. يعتمد RT-CUDA على مجموعة مـن التحسينات في المفسر. يقوم RT-CUDA بتحويل البرامج العادية والمكتوبة مثلا بلغة C إلى نواة CUDA محسنة مع الأخذ بالاعتبار توجيهات المستخدم لإرشاد المفسر. وبينما يعتبر استدعاء libraries مستحيلا مع OpenACC ، يسمح RT-CUDA باستدعاء واستخدام أفضل الـ libraries الخارجية للرياضيات مثل cuSparse و cuBLAS.لأجل ذلك ، RT-CUDA يستخدم بعض API’s للتواصل ، معالجة الأخطاء ويسمح أيضا ببرمجة واضحة وشفافة للمستخدم والذي بدوره يمكّن مـن تصميم أدوات لحل الجبر الخطي بشكل فعال. تم تقييم RT-CUDA باستخدام معالج الرسوميات Tesla K20 مع مجموعة متنوعة مـن عمليات الجبر الخطي مثل (M+, MM, MV, VV) وغيرها وأيضا برمجة أدوات لحل نظام مـن المعادلات الخطية مثل Jacobi و Conjugate Gradient. وفي الحقيقة لقد حصلنا على زيادة في السرعة بشكل كبير جدا مقارنة بمفسر OpenACC ومفسر GPGPU أيضا. يقوم RT-CUDA بتسهيل تصميم البرمجيات المتوازية لتطوير برامج محاكاة متوازية مثل ( محاكاة آبار النفط ، الديناميكية الجزيئية وغيرها والتي تعتبر تطبيقات مهمة جدا في صناعة النفط والغاز في المملكة العربية السعودية. نحن نتوقع أن يكون هناك طلب كبير على RT-CUDA مـن مجالات الصناعة في السعودية التي تتعامل مع محاكاة التطبيقات العملية والهندسية على أجهزة الحاسب المتوازية الكثيفة مثل معالجات الرسوميات الخاص بـ NVIDIA.

English Abstract

Recent development in Graphic Processing Units (GPUs) has opened a new challenge in harnessing their computing power as a new general-purpose computing paradigm with its CUDA parallel programming. However, porting applications to CUDA remains a challenge to average programmers. In this thesis work we have developed a restructuring software compiler (RT-CUDA) with best possible kernel optimizations to bridge the gap between high-level languages and the machine dependent CUDA environment. RT-CUDA is based upon a set of compiler optimizations. RT-CUDA takes a C-like program and convert it into an optimized CUDA kernel with user directives in a configuration _le for guiding the compiler. While the invocation of external libraries is not possible with OpenACC commercial compiler, RT-CUDA allows transparent invocation of the most optimized external math libraries like cuSparse and cuBLAS. For this, RT-CUDA uses interfacing APIs, error handling interpretation, and user transparent programming. This enables efficient design of linear algebra solvers (LAS). Evaluation of RT-CUDA has been performed on Tesla K20c GPU with a variety of basic linear algebra operators (M+, MM, MV, VV, etc.) as well as the programming of solvers of systems of linear equations like Jacobi and Conjugate Gradient. We obtained significant speedup over other compilers like OpenACC and GPGPU compilers. RT-CUDA facilitates the design of efficient parallel software for developing parallel simulators (reservoir simulators, molecular dynamics, etc.) which are critical for Oil & Gas industry in KSA. We expect RT-CUDA to be needed by many KSA industries dealing with science and engineering simulation on massively parallel computers like NVIDIA GPUs.

Item Type: Thesis (PhD)
Subjects: Computer
Department: College of Computing and Mathematics > Information and Computer Science
Committee Advisor: Al-Mouhamed, Mayez
Committee Members: Ahmed, Moataz and Niazi, Mehmood and El-Basuny, Tarek Helmy
Depositing User: KHAN AYAZ UL HASSAN (g201002860)
Date Deposited: 14 Jan 2015 12:16
Last Modified: 01 Nov 2019 15:44
URI: http://eprints.kfupm.edu.sa/id/eprint/139428