Preview

Труды Института системного программирования РАН

Расширенный поиск

Автоматическая генерация OpenCL-кода из гнезд циклов с помощью полиэдральной модели

Аннотация

В данной работе предлагается способ автоматической генерации кода для стандарта OpenCL из гнезд циклов без зависимостей по данным между итерациями для программ на языках Си, Си++ и Фортран. Для генерации используется инфраструктура GRAPHITE компилятора GCC, использующая полиэдральную модель для анализа пространства итераций и пространства данных цикла. Описывается выполненная реализация и проведенные эксперименты, показывающие наилучшие результаты на вычислительных программах, основную часть которых составляют гнезда циклов.

Об авторах

Андрей Белеванцев
ИСП РАН
Россия


Алексей Кравец
ИСП РАН
Россия


Александр Монаков
ИСП РАН
Россия


Список литературы

1. ATI. OpenCL Programming Guide, March 2010. http://developer.amd.com/gpu_assets/ATI_Stream_SDK_OpenCL_Programming_Guide.pdf

2. C. Bastoul. Code generation in the polyhedral model is easier than you think. In PACT'13 IEEE International Conference on Parallel Architecture and Compilation Techniques,

3. pp. 7-16, Juan-les-Pins, September 2004.

4. Standard Performance Evaluation Corporation. Spec CPU 2000. http://www.spec,org/cpu

5. Khronos OpenCL Working Group. The OpenCL 1.1 Specification, September 2010. http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf

6. IBM Polykernels. http://groups.google.com/group/gcc-graphite/

7. NVIDIA OpenCL JumpStart Guide, April 2009. http://developer.download.nvidia.com/OpenCL/NVIDIA_OpenCL_JumpStart_

8. Guide.pdf

9. Jan Sjödin, Sebastian Pop, Harsha Jagasia, Tobias Grosser, and Antoniu Pop. Design of graphite and the polyhedral compilation package. In Proceedings of GCC Summit 2009, Ottawa, Canada.

10. Polyhedron Software. Polyhedron 2005 benchmark suite. http://www.polyhedron.com/polyhedron_benchmark_suite.html

11. Альфред Ахо, Рави Сети, Джеффри Ульман. Компиляторы: Принципы, Технологии, Инструменты. Издательский дом Вильямс, 2008.

12. NVIDIA. CUDA Programming Guide, 2010. http://developer.download.nvidia.com/compute/cuda/3_0/toolkit/docs/NVIDIA_CUDA_ProgrammingGuide.pdf

13. A. Monakov, A. Lokhmotov, and A. Avetisyan. Automatically Tuning Sparse Matrix-Vector Multiplication for GPU Architectures. High Performance Embedded Architectures and Compilers, 2010, pp. 111-125.

14. A. Monakov and A. Avetisyan. Implementing Blocked Sparse Matrix-Vector Multiplication on NVIDIA GPUs. Embedded Computer Systems: Architectures, Modeling, and Simulation, 2009, pp. 289-297.

15. A. Kravets, A. Monakov, and A. Belevantsev. GRAPHITE-OpenCL: Generate OpenCL Code from Parallel Loops. Proceedings of the GCC Developers’ Summit, 2010, pp. 7-6.


Рецензия

Для цитирования:


Белеванцев А., Кравец А., Монаков А. Автоматическая генерация OpenCL-кода из гнезд циклов с помощью полиэдральной модели. Труды Института системного программирования РАН. 2011;21.

For citation:


Belevantsev A., Kravets A., Monakov A. Automatically generating OpenCL code from loop nests via a polyhedral model. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2011;21. (In Russ.)



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)