پیش بینی کارآیی برنامه های منظم کودا ازطریق روشهای یادگیری ماشین

نوع مقاله : مقاله پژوهشی

نویسندگان

1 گروه مهندسی کامپیوتر، دانشکده مهندسی برق و کامپیوتر، دانشگاه علم و فناوری مازندران، بهشهر، ایران

2 گروه مهندسی کامپیوتر، دانشکده مهندسی، دانشگاه فردوسی مشهد، مشهد، ایران

چکیده

چکیده: پیش‌بینی کارآیی پردازنده‌های گرافیکی یک چالش برای برنامه‌نویسان کودا است و در تنظیم برنامه‌ها کاربرد وسیعی دارد. چراکه سربارهای برنامه‌های کودا ممکن است باعث شوند که اجرای برنامه‌ها روی پردازنده‌ی گرافیکی مقرون‌به‌صرفه نباشند. پیش‌بینی کارآیی به برنامه‌نویس کمک می‌کند تا تنظیم برنامه‌ها را آگاهانه‌تر انجام دهند و به‌جای آزمون و خطا، نقطه‌ی بهینه‌ی تنظیم را دقیق‌تر پیدا کند. وجود یک مدل که بتواند کارآیی را پیش‌بینی کند، می‌تواند به برنامه‌نویسان در تنظیم دستی و به توسعه‌دهندگان کامپایلرهای مبدأ به مبدأ در تنظیم خودکار برنامه‌های کودا کمک کند. در این مقاله، ما یک مدلکارآیی برای پیش‌بینی زمان اجرای یک کرنل کودا ارائه کرده‌ایم. در این مدل، ابتدا با استفاده از پروفایلینگ و با استفاده از تحلیل ایستای کدهای کودا و PTX، دو دیتاست برای زمان اجرای کرنل‌های محاسبه‌گرا و حافظه‌گرا ایجاد شده است. سپس با استفاده از روش‌های شبکه‌ی عصبی مصنوعی، ماشین بردار پشتیبان، و ماشین یادگیری افراطی، زمان اجرای کرنل کودا پیش‌بینی شده است. نتایج آزمایشگاهی نشان می‌دهند که روش ماشین یادگیری افراطی می‌تواند زمان اجرای یک کرنل محاسبه‌گرا را با حداکثر خطای 3.42 درصد و زمان اجرای یک کرنل حافظه‌گرا را با حداکثر خطای 9.84 درصد پیش‌بینی کند. برای اعتبارسنجی بهتر نتایج از روش اعتبارسنجی متقاطع استفاده شده است. همچنین با استفاده از روش‌های انتخاب ویژگی، میزان تاثیر هریک از ویژگی‌های ورودی روی زمان اجرای کرنل مشخص شده است.

کلیدواژه‌ها

موضوعات


عنوان مقاله [English]

Performance Prediction of Regular CUDA Programs By Machine Learning Methods

نویسندگان [English]

  • Ali Riahi 1
  • Abdorreza Savadi 2
  • Mahmoud Naghibzadeh 2
1 Department of Computer Engineering, University of Science and Technology of Mazandaran, Behshahr, Iran
2 Computer Engineering Department, Ferdowsi University of Mashhad, Mashhad, Iran
چکیده [English]

Abstract
Performance predicting of GPUs is a challenge for CUDA programmers and has a wide application in the tuning of these programs. This is because the overheads of CUDA programs may make running programs on a GPU uneconomical. Performance prediction helps the programmer to tune the programs more consciously and find the optimal point of the tuning more accurately instead of trial and error. Having a model that can predict performance can help programmers in manual tuning and source-to-source compiler developers in auto-tuning CUDA programs. In this paper, we presented a performance model for predicting the execution time of a CUDA kernel. In this model, first by using profiling and by using the static analysis of CUDA and PTX codes, two datasets have been created for the execution time of computation-bound and memory-bound kernels. Then, using the methods of the artificial neural network, support vector machine, and extreme learning machine, the execution time of the CUDA kernel is predicted. The experimental results show that the extreme learning machine method can predict the execution time of a computation-bound kernel with a maximum error of 3.42% and the execution time of a memory- bound kernel with a maximum error of 9.84%. The cross-validation method was used to validate the results. Also, by using feature selection methods, the impact of each input feature on kernel execution time has been determined.

کلیدواژه‌ها [English]

  • GPU
  • CUDA
  • Performance Model
  • Execution Time Prediction
  • Machine Learning
  • Feature Selection