Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Программно-аппаратная архитектура CUDA, осень 2015 [Открытое прочтение]: Архитектура GPU

436 views

Published on

  • Be the first to comment

Программно-аппаратная архитектура CUDA, осень 2015 [Открытое прочтение]: Архитектура GPU

  1. 1. Архитектура GPU Храмченков Э.М.1,2 1. Казанский федеральный университет 2. НИИСИ РАН Computer Science клуб, Казань, 21.10-23.10, 2015 г.
  2. 2.  Лекция №1 Архитектура GPU  Лекция №2 Программная модель CUDA  Лекция №3 Иерархия памяти GPU  Лекция №4 Примеры алгоритмов и решения задач с помощью GPU  Лекция №5 Программная модель OpenCL (Демидов Д.Е.)  Лекция №6 Использование С++ для программирования на OpenCL и CUDA (Демидов Д.Е.) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Программа курса
  3. 3.  Производительность – одна из основных характеристик вычислительной системы Computer Science клуб, Казань, 21.10-23.10, 2015 г. Производительность
  4. 4.  Производительность – одна из основных характеристик вычислительной системы  Единица измерения – количество операций над вещественными числами в секунду (floating point operations per second, Flops) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Производительность
  5. 5.  Производительность – одна из основных характеристик вычислительной системы  Единица измерения – количество операций над вещественными числами в секунду (floating point operations per second, Flops)  Различают пиковую и реальную производительность Computer Science клуб, Казань, 21.10-23.10, 2015 г. Производительность
  6. 6.  Производительность – одна из основных характеристик вычислительной системы  Единица измерения – количество операций над вещественными числами в секунду (floating point operations per second, Flops)  Различают пиковую и реальную производительность  Пиковая – максимально теоретически возможная Computer Science клуб, Казань, 21.10-23.10, 2015 г. Производительность
  7. 7.  Производительность – одна из основных характеристик вычислительной системы  Единица измерения – количество операций над вещественными числами в секунду (floating point operations per second, Flops)  Различают пиковую и реальную производительность  Пиковая – максимально теоретически возможная  Реальная – зависит от задачи, работы с памятью, архитектуры системы, может быть значительно ниже пиковой Computer Science клуб, Казань, 21.10-23.10, 2015 г. Производительность
  8. 8. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  9. 9.  Увеличение частоты центрального процессора – классический путь Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  10. 10.  Увеличение частоты центрального процессора – классический путь  Частота CPU семейства x86 выросла с 4.77 MHz до 3 GHz Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  11. 11.  Увеличение частоты центрального процессора – классический путь  Частота CPU семейства x86 выросла с 4.77 MHz до 3 GHz  Повышение тактовой частоты ведет к нелинейному росту тепловыделения Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  12. 12.  Увеличение частоты центрального процессора – классический путь  Частота CPU семейства x86 выросла с 4.77 MHz до 3 GHz  Повышение тактовой частоты ведет к нелинейному росту тепловыделения  Увеличение количества транзисторов в ядре имеет физические пределы Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  13. 13.  Выход – параллельные вычисления Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  14. 14.  Выход – параллельные вычисления  Вместо одного сложного и горячего супермощного процессора – множество менее мощных Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  15. 15.  Выход – параллельные вычисления  Вместо одного сложного и горячего супермощного процессора – множество менее мощных  Разбиение задачи на несколько потоков Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  16. 16.  Выход – параллельные вычисления  Вместо одного сложного и горячего супермощного процессора – множество менее мощных  Разбиение задачи на несколько потоков  Нужны специальные алгоритмы для параллельных вычислений Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  17. 17.  Выход – параллельные вычисления  Вместо одного сложного и горячего супермощного процессора – множество менее мощных  Разбиение задачи на несколько потоков  Нужны специальные алгоритмы для параллельных вычислений  Не все йогурты одинаково полезны – не все задачи хорошо параллелятся Computer Science клуб, Казань, 21.10-23.10, 2015 г. Повышение производительности
  18. 18.  Многоядерные процессоры:  Доступны – любой современный CPU  Использует несколько ядер для параллельного исполнения и наборы специальных инструкций (SSE) для векторных команд  Простая параллелизация, общая память – OpenMP  Количество ядер в большинстве доступных CPU ≤4, это ограничивает параллельность  Эффективное использование SSE – нетривиально Computer Science клуб, Казань, 21.10-23.10, 2015 г. Параллельные архитектуры
  19. 19.  Многопроцессорные системы – классические суперкомпьютеры:  Большие и очень дорогие (цена, помещение и электричество)  Недоступны большинству пользователей  Каждый узел кластера содержит несколько многоядерных CPU  Серверные CPU – количество ядер до 16  Параллельные технологии – MPI Computer Science клуб, Казань, 21.10-23.10, 2015 г. Параллельные архитектуры
  20. 20.  Массивно-параллельные системы:  Прежде всего видеокарты (GPU) Nvidia и AMD  Доступность – любая современная видеокарта (суперкомпьютер за 200$)  Содержит от сотен до тысяч вычислительных ядер  Технологии программирования – OpenCL, CUDA  Гетерогенность – использование как GPU, так и установленного в системе многоядерного CPU Computer Science клуб, Казань, 21.10-23.10, 2015 г. Параллельные архитектуры
  21. 21.  Гетерогенные суперкомпьютеры:  Кластеры, в узлах – многоядерные CPU и GPU/сопроцессоры (профессиональные решения – Nvidia/ATI/Intel)  Используют лучшее от разных архитектур  Высокая эффективность  Все еще большие и дорогие – недоступны обычным пользователям Computer Science клуб, Казань, 21.10-23.10, 2015 г. Параллельные архитектуры
  22. 22.  Суперкомпьютерная гонка вооружений – список самых мощных суперкомпьютеров планеты  Лидер на июнь 2015 года – китайский Tianhe-2, ≈33 Pflops (1015 Flops)  Самый мощный в России – 31-е место, Ломоносов-2, МГУ, ≈1 Pflops  4 системы из первой десятки используют массивно-параллельные сопроцессоры Computer Science клуб, Казань, 21.10-23.10, 2015 г. TOP-500
  23. 23. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  24. 24.  Изначально GPU предназначались для рендеринга 3D графики Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  25. 25.  Изначально GPU предназначались для рендеринга 3D графики  Рендеринг – применение одной и той же функции (освещенность, поворот, и т.д. – последовательность математических операций) ко всем полигонам сцены Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  26. 26.  Изначально GPU предназначались для рендеринга 3D графики  Рендеринг – применение одной и той же функции (освещенность, поворот, и т.д. – последовательность математических операций) ко всем полигонам сцены  Полигоны – набор вершин и фрагментов, в итоге обычные вещественные числа Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  27. 27.  Производительность «заточена» под одинарную точность (тип float) – такой точности достаточно для рендеринга графики, скорость важнее точности Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  28. 28.  Производительность «заточена» под одинарную точность (тип float) – такой точности достаточно для рендеринга графики, скорость важнее точности  Поддержка двойной точности – типа double есть не во всех архитектурах GPU Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  29. 29.  Производительность «заточена» под одинарную точность (тип float) – такой точности достаточно для рендеринга графики, скорость важнее точности  Поддержка двойной точности – типа double есть не во всех архитектурах GPU  SIMD архитектура – Single Instruction Multiple Data Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  30. 30. Computer Science клуб, Казань, 21.10-23.10, 2015 г. SIMD
  31. 31.  Идея – использовать возможности вычислительные ресурсы GPU не только для расчетов 3D графики Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  32. 32.  Идея – использовать возможности вычислительные ресурсы GPU не только для расчетов 3D графики  GPGPU – General Purpose computations on GPU Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  33. 33.  Идея – использовать возможности вычислительные ресурсы GPU не только для расчетов 3D графики  GPGPU – General Purpose computations on GPU  Ускоритель выступает фактически в роли сопроцессора Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  34. 34.  Идея – использовать возможности вычислительные ресурсы GPU не только для расчетов 3D графики  GPGPU – General Purpose computations on GPU  Ускоритель выступает фактически в роли сопроцессора  Как писать – архитектура GPU отличается от архитектуры CPU Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  35. 35.  Идея – использовать возможности вычислительные ресурсы GPU не только для расчетов 3D графики  GPGPU – General Purpose computations on GPU  Ускоритель выступает фактически в роли сопроцессора  Как писать – архитектура GPU отличается от архитектуры CPU  На чем писать – язык шейдеров не предназначен для вычислений общего назначения Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  36. 36.  Идея – использовать возможности вычислительные ресурсы GPU не только для расчетов 3D графики  GPGPU – General Purpose computations on GPU  Ускоритель выступает фактически в роли сопроцессора  Как писать – архитектура GPU отличается от архитектуры CPU  На чем писать – язык шейдеров не предназначен для вычислений общего назначения Computer Science клуб, Казань, 21.10-23.10, 2015 г. Вычисления на GPU
  37. 37. Характеристика CPU GPU Количество ядер <20 >100 Тактовая частота ядра Высокая Низкая SSE, ветвление, и т.д. Есть Нет Кеш Большой Незначительный Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU vs CPU
  38. 38. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Производительность GPU vs CPU
  39. 39. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Скорость памяти GPU vs CPU
  40. 40. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Энергоэффективность GPU vs CPU
  41. 41. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU vs CPU
  42. 42.  Построение на основе массива потоковых мультипроцессоров (Streaming Multiprocessor, SM) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  43. 43.  Построение на основе массива потоковых мультипроцессоров (Streaming Multiprocessor, SM)  В каждом мультипроцессоре несколько скалярных процессоров (SP, Scalar Processor) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  44. 44.  Построение на основе массива потоковых мультипроцессоров (Streaming Multiprocessor, SM)  В каждом мультипроцессоре несколько скалярных процессоров (SP, Scalar Processor)  На SP выполняются вычисления Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  45. 45.  Построение на основе массива потоковых мультипроцессоров (Streaming Multiprocessor, SM)  В каждом мультипроцессоре несколько скалярных процессоров (SP, Scalar Processor)  На SP выполняются вычисления  Кроме SP каждый SM содержит два блока специальных функций (SFU, Special Function Unit) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  46. 46.  Построение на основе массива потоковых мультипроцессоров (Streaming Multiprocessor, SM)  В каждом мультипроцессоре несколько скалярных процессоров (SP, Scalar Processor)  На SP выполняются вычисления  Кроме SP каждый SM содержит два блока специальных функций (SFU, Special Function Unit)  В каждом SM есть своя память, помимо общей Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  47. 47.  Вывод – GPU эффективен при решении задач с параллелизмом по данным: Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  48. 48.  Вывод – GPU эффективен при решении задач с параллелизмом по данным:  Число арифметических операций >> Число операций с памятью Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  49. 49.  Вывод – GPU эффективен при решении задач с параллелизмом по данным:  Число арифметических операций >> Число операций с памятью  3D рендеринг – повершинная обработка сцен Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  50. 50.  Вывод – GPU эффективен при решении задач с параллелизмом по данным:  Число арифметических операций >> Число операций с памятью  3D рендеринг – повершинная обработка сцен  Обработка изображений, кодирование видео, распознавание образов Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  51. 51.  Вывод – GPU эффективен при решении задач с параллелизмом по данным:  Число арифметических операций >> Число операций с памятью  3D рендеринг – повершинная обработка сцен  Обработка изображений, кодирование видео, распознавание образов  За счет архитектуры производительность GPU растет очень быстро в каждом поколении Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  52. 52.  Вывод – GPU эффективен при решении задач с параллелизмом по данным:  Число арифметических операций >> Число операций с памятью  3D рендеринг – повершинная обработка сцен  Обработка изображений, кодирование видео, распознавание образов  За счет архитектуры производительность GPU растет очень быстро в каждом поколении  GPU более энергоэффективен в смысле FLOP/Watt Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура GPU
  53. 53.  Компания Nvidia/AMD выпускает несколько линеек графических ускорителей:  Игровые карты GeForce/Radeon – массовый сегмент для обычных пользователей  Профессиональные карты Quadro/Firepro – обработка графики и видео  Профессиональные карты Tesla/Firepro – суперкомпьютеры, высокопроизводительные вычисления Computer Science клуб, Казань, 21.10-23.10, 2015 г. Железо
  54. 54.  Низкая стоимость – до 1500$ (Titan X)  Урезанная двойная точность – производительность на операциях с числами double примерно 25% от профессиональных решений  Быстрая шина и увеличенные частоты работы  Объем памяти – до 12Gb (Titan X) Computer Science клуб, Казань, 21.10-23.10, 2015 г. GeForce/Radeon
  55. 55.  Очень дорогие – от 4000$ до 5500$  Полноценная производительность в двойной точности  Объем памяти – до 16Gb  Очень требовательны к мощности блока питания Computer Science клуб, Казань, 21.10-23.10, 2015 г. Tesla/Firepro
  56. 56.  Для изучения и обучения технологиям GPGPU подойдет любая игровая видеокарта среднего и верхнего ценового диапазона  Для профессиональной работы с высокопроизводительными вычислениями с использованием GPU требуется приобретение карт семейства Tesla/Firepro  Профессиональные карты нужны на очень больших задачах Computer Science клуб, Казань, 21.10-23.10, 2015 г. Железо
  57. 57.  2006 год  Игровые карты поколений GeForce 8-9, и GeForce 100-300  Первая профессиональная карта для GPGPU – Nvidia Tesla  До 30 SM по 8 SP в каждом  Производительность на числах с двойной точностью (тип double) – 77,76 GFLOPs на профессиональной карте (Nvidia Tesla C1060) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Tesla
  58. 58.  2009 год  Игровые карты семейств GeForce 400-500  SM – содержит 32 SP, всего 448 ядер  Один SM за такт выполняет 32/16 операции на числах float/double  Производительность на числах с двойной точностью (тип double) – 515,2 GFLOPs на профессиональной карте (Nvidia Tesla C2070) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Fermi
  59. 59. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Fermi
  60. 60.  2012 год  Игровые карты семейств GeForce 600-700  NextGen Streaming Multiprocessor (SMX) – содержит 192 вычислительных ядра (SP)  До 2880 ядер (Nvidia Tesla K40)  Производительность на числах с двойной точностью (тип double) – 1430 GFLOPs (Nvidia Tesla K40) Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Kepler
  61. 61. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Kepler
  62. 62. Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Kepler
  63. 63.  2014 год  Игровые карты семейств GeForce 800-900, GeForce Titan  Новый Streaming Multiprocessor (SMM) – содержит 128 вычислительных ядер  Отсутствует поддержка операций над double – технически возможно, но производительность 150 GFLOPS (Kepler – 1430 GFLOPs)  На Maxwell нет профессиональных карт Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Maxwell
  64. 64.  Выход планируется на 2016 год  Планируется полноценная поддержка двойной точности  Планируется выпуск профессиональных карт нового поколения Computer Science клуб, Казань, 21.10-23.10, 2015 г. Архитектура Pascal
  65. 65.  Компания AMD, как основной конкурент предлагает схожие по цене и производительности решения  Менее стабильные драйверы под Linux  На 2015 год AMD FirePro W9100 превосходит Nvidia Tesla K40  В ответ Nvidia выпустила K80 – 2 K40 в одном корпусе, но архитектура очень сложная Computer Science клуб, Казань, 21.10-23.10, 2015 г. AMD vs Nvidia
  66. 66. Характеристика AMD W9100 Nvidia K40 Производительность в двойной точности 2,62 Tflops 1,66 TFlops Объем памяти 16 Gb 12 Gb Скорость работы памяти 320 Gb/s 288 Gb/s Цена около 3900$ около 4000$ Computer Science клуб, Казань, 21.10-23.10, 2015 г. AMD vs Nvidia
  67. 67.  Видеокарты от AMD и Nvidia используют разные программные архитектуры (фреймворки) для параллельных вычислений Computer Science клуб, Казань, 21.10-23.10, 2015 г. AMD vs Nvidia
  68. 68.  Видеокарты от AMD и Nvidia используют разные программные архитектуры (фреймворки) для параллельных вычислений  Карты AMD поддерживают OpenCL – открытый стандарт, позволяющий писать программы как под многоядерные CPU, так и под GPU Computer Science клуб, Казань, 21.10-23.10, 2015 г. AMD vs Nvidia
  69. 69.  Видеокарты от AMD и Nvidia используют разные программные архитектуры (фреймворки) для параллельных вычислений  Карты AMD поддерживают OpenCL – открытый стандарт, позволяющий писать программы как под многоядерные CPU, так и под GPU  Карты Nvidia оптимизированы под фреймворк CUDA – проприетарный продукт Nvidia; карты Nvidia тоже поддерживают OpenCL Computer Science клуб, Казань, 21.10-23.10, 2015 г. AMD vs Nvidia
  70. 70.  Два основных фреймворка – OpenCL и Nvidia CUDA Computer Science клуб, Казань, 21.10-23.10, 2015 г. Фреймворки
  71. 71.  Два основных фреймворка – OpenCL и Nvidia CUDA  OpenCL более универсален, но сложнее в освоении Computer Science клуб, Казань, 21.10-23.10, 2015 г. Фреймворки
  72. 72.  Два основных фреймворка – OpenCL и Nvidia CUDA  OpenCL более универсален, но сложнее в освоении  Оба фреймворка написаны на С и могут рассматриваться как его расширения Computer Science клуб, Казань, 21.10-23.10, 2015 г. Фреймворки
  73. 73.  Два основных фреймворка – OpenCL и Nvidia CUDA  OpenCL более универсален, но сложнее в освоении  Оба фреймворка написаны на С и могут рассматриваться как его расширения  В лекциях 2-4 будут рассмотрены принципы работы CUDA Computer Science клуб, Казань, 21.10-23.10, 2015 г. Фреймворки
  74. 74.  Два основных фреймворка – OpenCL и Nvidia CUDA  OpenCL более универсален, но сложнее в освоении  Оба фреймворка написаны на С и могут рассматриваться как его расширения  В лекциях 2-4 будут рассмотрены принципы работы CUDA  В лекциях 5 и 6 будет рассмотрена работа с OpenCL Computer Science клуб, Казань, 21.10-23.10, 2015 г. Фреймворки
  75. 75.  Боресков А. В. и др., Параллельные вычисления на GPU: архитектура и программная модель CUDA: учебное пособие. Изд-во МГУ им. М.В. Ломоносова  http://www.nvidia.ru/object/tesla-high-performance- computing-ru.html  http://www.google.com  https://developer.nvidia.com/cuda-zone Computer Science клуб, Казань, 21.10-23.10, 2015 г. Источники
  76. 76. Computer Science клуб, Казань, 21.10-23.10, 2015 г. To be continued…

×