ПРОИЗВОДИТЕЛЬНОСТЬ GPU И CPU ДЛЯ МАТРИЧНОГО УМНОЖЕНИЯ
GPU AND CPU PERFORMANCE FOR MATRIX MULTIPLICATION
Сторінки: 102-110. Номер: №2, 2019 (271)
Автори:
А. А. МЯСИЩЕВ, В. М. ПОЛОЗОВА
Хмельницкий национальный университет
A. A. MYASISCHEV, V. M. POLOZOVA
Khmelnytskyi National University
DOI: https://www.doi.org/10.31891/2307-5732-2019-271-2-102-110
Рецензія/Peer review : 02.03.2019 р.
Надрукована/Printed : 10.04.2019 р.
Анотація мовою оригіналу
В работе исследуется целесообразность применения графических процессоров при решении задач матричного умножения по сравнению с обычными многоядерными процессорами. Указываются особенности использования и проблемы установки библиотеки MAGMA. Для проведения вычислительных экспериментов рассмотрены две системы. В каждой из них установлен шестиядерный процессор (CPU) AMD. В первой системе использован графический процессор (GPU) Tesla C2075, во второй – GeForce GTX 480 фирмы «NVIDIA». GPU выполняют роль вычислительных ускорителей для решения задач матричного умножения. Причем в первом случае расчет выполняется с учетом распараллеливания по 6 ядрам процессора с использованием библиотек MPI, ScaLAPACK и ATLAS. Во втором и третьем случаях – распараллеливанием по ядрам GPU Tesla C2075 и GeForce GTX 480 с использованием технологии CUDA. Вычислительные системы работают под управлением операционной системы Linux Ubuntu. На них установлены компиляторы фортран и C++ с перечисленными выше библиотеками для 6-ядерного процессора. Для программирования на GPU Tesla C2075 и GeForce GTX 480 инсталлированы видеодрайвер nvidia и программное обеспечение CUDA Toolkit. Установлено, что производительность GPU GeForce GTX 480 и GPU Tesla C2075 выше производительности CPU AMD примерно в 3.5 и 6.3 раз соответственно для чисел с двойной точностью. А производительность GPU GeForce GTX 480 в 1.3 раза выше производительности GPU Tesla C2075 для чисел с одинарной точностью. Показано, что для достижения максимальной производительности GPU NVIDIA CUDA необходимо использование библиотек MAGMA или CUBLAS, которые дают ускорение расчетов примерно в 6.4 раза по сравнению с традиционным способом программирования с использованием глобальной памяти. Рассмотрено решение задачи матричного умножения с использованием разделяемой памяти. Показано, что в этом случае производительность GPU незначительно ниже по сравнению с использованием библиотек MAGMA. Показано, что производительность GPU при матричном умножении с использованием CUBLAS для GeForce GTX 480 практически равна пиковой производительности при двойной точности вычислений (пиковая – 168.1, полученная 165.1 Гигафлопс). Для GPU Tesla C2075 пиковая производительность почти в два раза выше полученной (пиковая – 515.2, полученная 300.6 Гигафлопс). Это указывает на недостаточную эффективность библиотеки CUBLAS и MAGMA для GPU Tesla.
Ключевые слова: GPU Tesla C2075, MAGMA, CUBLAS, CUDA, графический процессор, NVIDIA Tesla V100, SMP система, MPI, ScaLAPACK, ATLAS
Розширена анотація англійською мовою
The paper investigates the expediency of using graphics processors when solving problems of matrix multiplication compared to conventional multi-core processors. Indicates the features of the use and installation problems of the library MAGMA. To carry out computational experiments, two systems were considered. Each of them has a six-core AMD processor. The first system uses a graphics processor (GPU) Tesla C2075, the second GeForce GTX 480 from NVIDIA. GPUs play the role of computational accelerators for solving problems of matrix multiplication. Moreover, in the first case, the calculation is performed taking into account parallelization across the 6 cores of the processor using the MPI, ScaLAPACK and ATLAS libraries. In the second and third cases – parallelization across the cores of the Tesla C2075 GPU and GeForce GTX 480 using the CUDA technology. Computing systems run under the Linux Ubuntu operating system. The compilers Fortran and C ++ are installed on them with the libraries listed above for a 6-core processor. For programming on the Tesla C2075 GPU and GeForce GTX 480, the nvidia video driver and CUDA Toolkit software are installed. It has been established that the performance of the GPU GeForce GTX 480 and the GPU Tesla C2075 is higher than the performance of the AMD CPU by approximately 3.5 and 6.3 times, respectively, for double-precision numbers. And the performance of the GPU GeForce GTX 480 is 1.3 times higher than the performance of the GPU Tesla C2075 for numbers with single precision. It is shown that in order to achieve maximum performance of the NVIDIA CUDA GPU, it is necessary to use the MAGMA or CUBLAS libraries, which accelerate the calculations by about 6.4 times compared to the traditional programming method using global memory. The solution of the problem of matrix multiplication using shared memory is considered. It is shown that in this case the performance of the GPU is not significantly lower compared with the use of the MAGMA libraries. It is shown that GPU performance with matrix multiplication using CUBLAS for GeForce GTX 480 is almost equal to peak performance with double computational accuracy (peak – 168.1, obtained 165.1 Gigaflops). For the Tesla C2075 GPU, the peak performance is almost twice as high as obtained (peak – 515.2, obtained 300.6 Gigaflops). This indicates a lack of effectiveness of the CUBLAS and MAGMA libraries for the Tesla GPU.
Keywords: GPU Tesla C2075, MAGMA, CUBLAS, CUDA, graphics processor, NVIDIA Tesla V100, SMP system, MPI, ScaLAPACK, ATLAS.
References
- The ScaLAPACK Project. 2017 [Jelektronnyj resurs]. – Rezhim dostupa : http://www.netlib.org
- Automatically Tuned Linear Algebra Software (ATLAS). 2016 [Jelektronnyj resurs]. – Rezhim dostupa : http://math-atlas.sourceforge.net/
- NVIDIA TESLA V100 TENSOR CORE GPU. 2018 [Jelektronnyj resurs]. – Rezhim dostupa : https://www.nvidia.com/en-us/data-center/tesla-v100/
- Antonov A.S. Parallel’noe programmirovanie s ispol’zovaniem tehnologii MPI : uchebnoe posobie / Antonov A.S. – M. : Izd-vo MGU, 2004. – 71 s.
- Mjasishhev A.A. Dostizhenie naibol’shej proizvoditel’nosti peremnozhenija matric na sistemah s mnogojadernymi processorami. T. 3: Teorіja ta metodika navchannja іnformatiki / Mjasishhev A.A. – Krivij Rіg : Vidavnichij vіddіl NmetAU, 2010. – 303 s.
- Mjasіshhev O.A. Ocіnka produktivnostі GPU NVIDIA CUDA pri virіshennі zadach matrichnogo mnozhennja / O.A. Mjasіshhev // Vimіrjuval’na ta obchisljuval’na tehnіka v tehnologіchnih procesah. – Hmel’nic’kij, 2012. – № 1. – S. 73–79.
- Parallel’nye vychislenija na GPU. Arhitektura i programmnaja model’ GPU : ucheb. posobie / A.V. Boreskov i dr. ; predisl.: V.A. Sadovnichij. – M. : Izdatel’stvo Moskovskogo universiteta, 2012. – 336 s., ill. – (Serija “Superkomp’juternoe obrazovanie”).
- Gergel’ V.P. Teorija i praktika parallel’nyh vychislenij. 2016 [Jelektronnyj resurs]. – Rezhim dostupa : https://www.twirpx.com/file/1978282/
- Parallel’nye vychislenija na GPU. Arhitektura i programmnaja model’ CUDA : ucheb. posobie / Boreskov A.V., Harlamov A.A., Markovskij N.D. i dr. – M. : Izdatel’stvo Moskovskogo universiteta, 2012. – 336 s.
- Matrix Algebra on GPU and Multicore Architectures. 2018 [Jelektronnyj resurs]. – Rezhim dostupa : http://icl.cs.utk.edu/magma/index.html
- CUBLAS (NVIDIA CUDA Basic Linear Algebra Subroutines). 2018 [Jelektronnyj resurs]. – Rezhim dostupa : http://developer.nvidia.com/cublas
- Ustanovka CUDA Toolkit i drajvera NVIDIA dlja razrabotchikov. 2012 [Jelektronnyj resurs]. – Rezhim dostupa : http://forum.ubuntu.ru/index.php?topic=114802.0
- Mjasishhev A.A. Vychislitel’nye vozmozhnosti mikrokontrollerov STM32F4/ A.A. Mjasishhev, S.V. Lenkov // Zbіrnik naukovih prac’ Vіjs’kovogo іnstitutu Kiїvs’kogo nacіonal’nogo unіversitetu іmeny Tarasa Shevchenka. – Kiїv, 2016. – Vipusk № 51. – S. 185–192.
- Top 500 the list. 2018 [Jelektronnyj resurs]. – Rezhim dostupa : https://www.top500.org/lists/2018/06/
- NVIDIA TURING. 2018 [Jelektronnyj resurs]. – Rezhim dostupa : https://www.nvidia.com/ru-ru/geforce/turing/
- Myasischev A.A. Computing capabilities stm32f429i-disco for matrix multiplication / A.A. Myasischev // Materials of the XI International scientific and practical conference. – 2015. – Vol 17. Sheffild. – S. 51–57.
- Mjasіshhev O.A. Efektivnіst’ vikoristannja GPU NVIDIA pri virіshennі sistem lіnіjnih rіvnjan’ / O.A. Mjasіshhev // Zb. nauk. prac’ Vіjs’kovogo іnstitutu Kiїvs’kogo NU іm. Taras Shevchenko. – K. : VІKNU, 2012. – Vip. 38. – S. 76–80.
- Mjasishhev A.A. Sopostavlenie proizvoditel’nostej GPU i CPU dlja matrichnogo umnozhenija s dvojnoj tochnost’ju / A.A. Mjasishhev // Teorіja ta metodika navchannja matematiki, fіziki, іnformatiki : zbіrnik naukovih prac’ : v 3-h t. T. 3: Teorіja ta metodika navchannja іnformatiki. – Krivij Rіg : Vidavnichij vіddіl NMetAU, 2012. – Vipusk X. – S. 99–108.
- Mjasishhev A.A. Sopostavlenie proizvoditel’nostej GPU TESLA C2075, GEFORCE 480 GTX s 6-jadernym CPU AMD pri reshenii sistem linejnyh uravnenij / A.A. Mjasishhev // Materialy mezhdunar. NPK «Kljuchevye problemy sovremennoj nauki – 2012». – Sofija : Bjal GRAD-BG, 2012. – Tom 30. – S. 28–40.