18
Сравнительный анализ систем программирования графических процессоров NVidia для решения задач моделирования и обработки сигналов Лебедев А.С.

Презентация бакалаврской работы Артема Лебедева

Embed Size (px)

Citation preview

Сравнительный анализ систем программирования

графических процессоровNVidia для решения задач

моделирования и обработки сигналов

Лебедев А.С.

Цели работы Проанализировать возможность использования

платформ .NET Framework и Java для программирования графических процессоров NVIDIA.

Сравнить инструменты программирования графических процессоров NVIDIA на примере задач моделирования и обработки сигналов.

Критерии сравнения инструментов Эффективность работы созданных с помощью

каждого из рассматриваемых инструментов приложений.

Удобство применения каждого из рассматриваемых инструментов.

Практическая ценность работы Результаты оценки эффективности работы приложений,

созданных с помощью различных инструментов программирования GPU NVIDIA, могут быть использованы как критерий выбора платформы и технологии для решения поставленной задачи высокопроизводительной распараллеленной обработки информации.

Результаты оценки удобства и простоты применения инструментов программирования GPU NVIDIA могут служить критерием выбора инструмента в случае наличия компромисса между эффективностью работы созданного приложения и трудоемкостью его разработки.

Задачи исследования Реализация с помощью всех рассматриваемых

инструментов алгоритмов решения выбранных задач моделирования и обработки сигналов.

Проведение замеров времени исполнения критических участков приложений и анализ полученных результатов измерений.

Определение границ применимости каждого из рассматриваемых инструментов и оценка времени, затраченного на создание приложений.

Архитектура вычислителя CUDA

Общая память

Диспетчер инструкций

Потоковый мультипроцессорТекстурный процессор

Кэш L1 инструкций Кэш L1 данных

Структура вычислителя CUDA на логическом уровне

Логическая организация памятивычислителя CUDA

Архитектура сред программированияCUDA

GPU

CPU

Драйвер CUDA<<DLL>>

Среда исполнения CUDA

<<DLL>>

CUDA.NET<<DLL>>

JCUDA<<Generic Package>>

GPU.NET<<DLL>>

Приложение Java<<Main Program>>

Библиотеки CUDA<<Generic Package>>

Приложение .NET<<Main Program>>

Приложение Unmanaged

<<Main Program>>

Особенности компиляции kernel в рамкахGPU.NET

Дискретное вейвлет-преобразование изображения

4/))12,12()12,2()2,12()2,2((, yxsrcyxsrcyxsrcyxsrcyxdst

4/))12,12()12,2()2,12()2,2((, yxsrcyxsrcyxsrcyxsrcyNxdst

4/))12,12()12,2()2,12()2,2((, yxsrcyxsrcyxsrcyxsrcNyxdst

4/))12,12()12,2()2,12()2,2((, yxsrcyxsrcyxsrcyxsrcNyNxdst

Преимущество GPU перед CPU (4 потока)

Преимущество GPU перед CPU (1 поток)

Гравитационная задача N тел В пустоте находится N

материальных точек, массы которых известны.

Известны начальные на момент времени положения и скорости каждой точки.

Требуется найти положения точек для всех последующих моментов времени.

Эволюция системы описывается следующей системой уравнений:

ii vdtrd

N

ij ij

ijj

i

rr

rrGm

dtvd

3

Преимущество GPU перед CPU (4 потока)

Преимущество GPU перед CPU (1 поток)

Ускорение с sqrt.f32 в gpu.net

Выводы Для выполнения проектов, критичных к производительности,

разработчикам можно рекомендовать только CUDA SDK, использование которого помогает избежать проблем потери времени, связанных с исполнением управляемого кода под средами исполнения.

В случае, если разработка проекта ведется под платформу Java, разработчикам можно рекомендовать JCuda в условиях отсутствия альтернатив.

В случае, если разработка проекта ведется под платформу .NET/Mono и критична производительность приложения, то единственным вариантом является использование CUDA.NET. В противном случае, можно рекомендовать GPU.NET, но только для задач, которые вписываются в рамки, обозначенные его ограничениями.