Научный журнал
ИЗВЕСТИЯ ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЙ.
СЕВЕРО-КАВКАЗСКИЙ РЕГИОН.

ТЕХНИЧЕСКИЕ НАУКИ


ИЗВЕСТИЯ ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЙ СЕВЕРО-КАВКАЗСКИЙ РЕГИОН. 2017; 3: 13-21

 

http://dx.doi.org/10.17213/0321-2653-2017-3-13-21

 

ДИАЛОГОВЫЙ ГЕНЕРАТОР CUDA-КОДА

А.Н. Аллазов, С.А. Гуда, Р.И. Морылев

Аллазов Афар Назим оглы – программист, IT Solutions LLC Баку, Азербайджан,  E-mail: afarallazov@gmail.com

Гуда Сергей Александрович – канд. физ.-мат. наук, доцент, Южный федеральный университет, г. Ростов-на-Дону, Россия. E-mail: gudasergey@gmail.com

Морылев Роман Игоревич – программист, ООО Синопсис СПб, г. Санкт-Петербург, Россия. E-mail: rmorylev@gmail.com

 

 

Аннотация

Портируя программы на CUDA, программист сталкивается с множеством трудностей. Ему приходится анализировать зависимости в программе, искать распараллеливаемые циклы, трансформировать код так, чтобы достичь наилучшего отображения на архитектуру видеокарты. Избежать ошибок – невозможно. Описываемый в статье Диалоговый высокоуровневый оптимизирующий распараллеливатель программ (ДВОР) позволяет автоматизировать разработку CUDA-программ. Диалоговый подход имеет ряд преимуществ над полностью автоматическим распараллеливанием: пользователь может выбрать последовательность преобразований программы, попробовать несколько вариантов результирующего кода, задать параметры преобразований, сравнить производительность и выбрать лучшие значения. ДВОР может автоматически находить распараллеливаемые циклы, визуализировать зависимости по данным, выполнять множество преобразований кода (расщепление тела цикла, слияние, гнездование, раскрутка, векторизация циклов, преобразование рекуррентных циклов к распараллеливаемой форме и др.), генерировать CUDA-код, автоматически определять оптимальные параметры запуска задачи на видеокарте.

 

Ключевые слова: генерация CUDA-кода; диалоговая оптимизация; автоматическое распараллеливание; ДВОР.

 

Полный текст: [in elibrary.ru]

 

Ссылки на литературу

  1. ДВОР. URL: http://ops.rsu.ru/about.shtml (дата обращения 01.02.2017)
  2. Lidman J., Quinlan D.J., Liao C., McKee S.A.: Rose: FTTransform – a source-to-source translation framework for exascale fault-tolerance research // Dependable systems and networks workshops. 2012. P. 1 – 6.
  3. Liao S., Diwan A., Bosch R.P., Ghuloum, A., Lam M.S.: SUIF Explorer: an interactive and interprocedural parallelizer // SIGPLAN, 1999. № 34. P. 37 – 48.
  4. Lee S.I., Johnson T., Eigenmann R.: Cetus – an extensible compiler infrastructure for source-to-source transformation // Proc. Workshops on Languages and Compilers for Parallel Computing. 2003.
  5. Verdoolaege S., Juega J.C., Cohen A., Gomez J.I., Tenllado Ch., Catthoor F. Polyhedral parallel code generation for CUDA // ACM Trans. Archit. Code Optim. 2013. Vol. 9, № 4. P. 54:1 – 54:23.
  6. Amini M., Creusillet B., Even S., Keryell R., Goubier O., Guelton S., McMahon J.O., Pasquier F.X., Pean G., Villalon P. Par4All: From convex array regions to heterogeneous computing // 2nd International Workshop on Polyhedral Compilation Techniques, Impact. 2012.
  7. Balasundaram V., Kennedy K., Kremer U., McKinley K. Subhlok J. The parascope editor: an interactive parallel programming tool // Proceedings of the 1989 ACM/IEEE conference on Supercomputing. New York: ACM. P. 540 – 550.
  8. Feautrier P.: Parametric Integer Programming // RAIRO Recherche Operationnelle. 1988. Vol. 22. P. 243 – 268.
  9. Pai S., Govindarajan R., Thazhuthaveetil M.J. Fast and efficient automatic memory management for GPUs using compiler-assisted runtime coherence scheme // Proceedings of the 21st international conference on Parallel architectures and compilation techniques, 2012. New York:ACM. P. 33 – 42.
  10. Веб-распараллеливатель. URL: http://ops.opsgroup.ru (дата обращения 01.02.2017)
  11. CUDA C Programming Guide. URL: http://docs.nvidia.com/cuda/cuda-c-programming-guide (дата обращения 01.02.2017)