Сравнение возможностей инструментария разработки программного обеспечения графических процессоров
GPU – мультиядерные чипы, предназначенные для параллельных вычислений Сотни скалярных процессоров Десятки тысяч одновременно выполняемых потоков Пиковая производительность 1 TFLOPS (единичная точность), 0.5 TFLOPS (двойная точность) Вычисления с параллелизмом данных
В отличие от CPU, большая часть транзисторов отведена под арифметику/логику, а не под инструкции/кэш
Массивно-параллельные части кода выполняются на GPU как ядра (kernels) В каждый момент времени выполняется одно ядро Каждое ядро обрабатывается множеством потоков Каждый поток выполняет один и тот же код Каждый поток имеет идентификатор, который позволяет вычислить позицию в памяти и осуществлять ветвления
Задача Дирихле для уравнения Пуассона
Пятиточечный шаблон Метод Гаусса-Зейделя
Размер сетки 256x256 УстройствоВремя решенияУскорение Последовательный алгоритм CPU Core 2 Duo P CPU Core 2 Duo E CUDA реализация GPU nVidia GeForce 450 GTS12232,12,1 Размер сетки 512x512 УстройствоВремя решенияУскорение Последовательный алгоритм CPU Core 2 Duo P CPU Core 2 Duo E CUDA реализация GPU nVidia GeForce 450 GTS26564,24,2
Размер сетки 1024x1024 УстройствоВремя решения, мсУскорение Последовательный алгоритм CPU Core 2 Duo P CPU Core 2 Duo E CUDA реализация GPU nVidia GeForce 450 GTS80115,35,3 Размер сетки 2048x2048 УстройствоВремя решенияУскорение Последовательный алгоритм CPU Core 2 Duo P CPU Core 2 Duo E CUDA реализация GPU nVidia GeForce 450 GTS295515,8