26-29 октября 2010 года, Красноярск

Владимиров Е.И.   Рейн Т.С.  

Сравнение технологий CUDA и OpenCL на примере распараллеливания алгоритмов матрично-векторного умножения

Докладчик: Владимиров Е.И.

На современном этапе развития вычислительной техники применение параллельных вычислений является стратегическим направлением развития вычислительной техники. Постоянно возрастающие требования к точности решения и сложность математических моделей, обусловленное увеличением размера исследуемых задач, стимулировали стремительное развитие аппаратной и программной составляющих ЭВМ.

До последнего времени ключевым компонентом систем для высокопроизводительных вычислений, включая кластеры, был центральный процессор. Долгое время повышение числа транзисторов в CPU сопровождалось соответствующим ростом производительности, но затем ситуация усложнилась. Разработчики архитектуры CPU подошли к закону сокращения прироста: число транзисторов, которое требовалось добавить для нужного увеличения производительности, резко возрастало. Это привело к необходимости построения гибридных вычислительных систем, c применением графических процессоров (GPU).

Высокая производительность GPU объясняется особенностями его архитектуры. В отличие от центрального процессора, который состоит из нескольких ядер, графический процессор изначально создавался как многоядерная структура, в которой количество ядер измеряется сотнями. Также есть существенная разница и в принципах работы - архитектура CPU предполагает последовательную обработку информации, а GPU исторически предназначался для обработки компьютерной графики, поэтому рассчитан на массивно параллельные вычисления. Можно выделить два основных (лидирующих) способа организации параллельных вычислений на графических процессорах: OpenCL [1] - открытый стандарт, и CUDA [2]- технология, разработанная компанией NVIDIA для своих графических карт.

В данной работе представлено сравнение технологий CUDA и OpenCL на примере распараллеливания алгоритмов матрично-векторного умножения. А также приведено сопоставление результатов (эффективность и ускорение), полученных на графических процессорах, с результатами расчетов на многопроцессорных вычислительных системах с общей (технология OpenMP) и распределенной (стандарт MPI) памятью.

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

  1. Статья <OpenCL от nVidia> [Электронный ресурс] // (http://habrahabr.ru/blogs/CUDA/55566/).
  2. Статья <CUDA: с места в карьер> [Электронный ресурс] // (http://habrahabr.ru/blogs/CUDA/50241/).


К списку докладов