Введение 3
Обзор аппаратных средств 5
GPU процессор как сопроцессор CPU 5
Отличия архитектур CPU и GPU 6
Реализация вычислений на графических процессорах 9
GPGPU 9
CUDA 9
NVIDIA Phy sX 10
Применение CUDA 11
Пример программы на CUDA 11
OpenCL 13
Пример программы с OpenCL 13
Сравнение производительности CPU и GPGPU программ 19
Криптовалюты 20
Тестирование GPGPU программ 22
Обзор предложений на рынке 34
Гибридные процессоры (APU) 34
Дискретные видеокарты 36
Заключение
Быстродействие является важнейшей характеристикой любого вычислительного устройства. В этом году архитектуре х86 исполняется 40 лет, разработка первого процессора на этой архитектуре (8086) началась весной 1976 года, а производство 8 июня 1978
Основным методом повышения быстродействия персональных компьютеров в течение 30 лет являлось увеличение тактовой частоты центрального процессора, но для этого необходимо сделать комплементарную пару транзисторов как можно более быстродействующей или как можно меньших размеров. Причем чем меньше технологический процесс, тем выше быстродействие пары. В настоящее время тактовая частота процессоров в большинстве настольных компьютеров составляет от 1.6 до 4.5 ГГц.
В 2005 году начался выпуск двухъядерных процессоров (AMD Opteron, Intel Pentium D), по причине невозможности быстрого увеличения тактовой частоты. Гонка за уменьшением техпроцесса продолжилась. Но теперь ее целью является размещение как можно большего количества ядер, повышение быстродействия и объема кэша с целью увеличения производительности, и повышение энергоэффективности. В последующие годы появились трех, четырех, шести и восьми ядерные решения. Произошел переход к многоядерным системам.
В настоящее время прирост производительности для mainstream- сегмента незначителен. При сравнении процессоров Intel Sandy Bridge (январь 2011) и Skylake (август 2015) установлено, что прирост производительности у старшего Core i7 составляет ~20% и ~10% с номинальными и одинаковыми частотами соответственно. При этом количество ядер в линейке пять лет так и не было увеличено, не смотря на смену четырех микроархитектур и двух технологических процессов.
Следовательно, закон Мура для обычных настольных решений не выполняется, а производительность становится напрямую зависима от цены.
Причина - отсутствие конкуренции на рынке в лице AMD, настольные процессоры которой фактически не обновлялись с 2013 года и не могут конкурировать с Intel по производительности и энергопотреблению. Флагманский процессор AMD Vishera (FX-9590) по производительности сравним с Intel Haswell (i7-4770K), но потребляет в 3 раза больше энергии. Остается надеется на архитектуру Zen, в которой AMD анонсировали 14нм техпроцесс, 32 ядра и аналог Hyper-Threading.
Недавно Intel анонсировала отказ от «Тик-Так» (Tick-Tock) - стратегии разработки процессоров, в которой «Тик» - миниатюризация текущей микроархитектуры и внесение относительно небольших изменений, а «Так» - разработку новой микроархитектуры с текущим технологическим процессом. Новая стратегия состоит из трех частей, добавлена «Semi-tock» - оптимизация архитектуры. Каждая часть цикла по-прежнему должна занимать примерно год.
Однако на рынке графических решений инновационное развитие все еще продолжается. На днях NVIDIA выпустила в продажу GTX 1080 с архитектурой Pascal, обладающую 2560 активными ядрами CUDA, базовой частотой в 1607 МГц и 8 Гб видеопамяти, частотой 10000 МГц. Согласно анонсу новый графический адаптер обладает существенно лучшей энергоэффективностью и производительностью.
В этой работе будет рассмотрено нестандартное применение аппаратных средств, с целью полного использования возможностей компьютера в экстремальных вычислениях, будут проведены исследования аппаратных возможностей графических ускорителей с целью увеличения производительности системы при выполнении ресурсоемких вычислений и реализация аппаратного ускорения при помощи OpenCL &CUDA.
В условиях относительно бурного развития графических ускорителей GPGPU является перспективной технологией при разработке ресурсоемких приложений. В параллельных вычислениях GPU в разы превосходит CPU по производительности, а применение фреймворка OpenCL позволяет разрабатывать программы, независимые от архитектуры графических процессоров и их производителей.
Следовательно, параллельные вычисления с использованием графического процессора видеокарты открывают для программистов безграничные возможности.