Презентация бакалаврской работы Артема Лебедева
Post on 25-Jul-2015
970 Views
Preview:
TRANSCRIPT
Сравнительный анализ систем программирования
графических процессоровNVidia для решения задач
моделирования и обработки сигналов
Лебедев А.С.
Цели работы Проанализировать возможность использования
платформ .NET Framework и Java для программирования графических процессоров NVIDIA.
Сравнить инструменты программирования графических процессоров NVIDIA на примере задач моделирования и обработки сигналов.
Критерии сравнения инструментов Эффективность работы созданных с помощью
каждого из рассматриваемых инструментов приложений.
Удобство применения каждого из рассматриваемых инструментов.
Практическая ценность работы Результаты оценки эффективности работы приложений,
созданных с помощью различных инструментов программирования GPU NVIDIA, могут быть использованы как критерий выбора платформы и технологии для решения поставленной задачи высокопроизводительной распараллеленной обработки информации.
Результаты оценки удобства и простоты применения инструментов программирования GPU NVIDIA могут служить критерием выбора инструмента в случае наличия компромисса между эффективностью работы созданного приложения и трудоемкостью его разработки.
Задачи исследования Реализация с помощью всех рассматриваемых
инструментов алгоритмов решения выбранных задач моделирования и обработки сигналов.
Проведение замеров времени исполнения критических участков приложений и анализ полученных результатов измерений.
Определение границ применимости каждого из рассматриваемых инструментов и оценка времени, затраченного на создание приложений.
Архитектура вычислителя CUDA
Общая память
Диспетчер инструкций
Потоковый мультипроцессорТекстурный процессор
Кэш L1 инструкций Кэш L1 данных
Архитектура сред программирования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>>
Дискретное вейвлет-преобразование изображения
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
Гравитационная задача N тел В пустоте находится N
материальных точек, массы которых известны.
Известны начальные на момент времени положения и скорости каждой точки.
Требуется найти положения точек для всех последующих моментов времени.
Эволюция системы описывается следующей системой уравнений:
ii vdtrd
N
ij ij
ijj
i
rr
rrGm
dtvd
3
Выводы Для выполнения проектов, критичных к производительности,
разработчикам можно рекомендовать только CUDA SDK, использование которого помогает избежать проблем потери времени, связанных с исполнением управляемого кода под средами исполнения.
В случае, если разработка проекта ведется под платформу Java, разработчикам можно рекомендовать JCuda в условиях отсутствия альтернатив.
В случае, если разработка проекта ведется под платформу .NET/Mono и критична производительность приложения, то единственным вариантом является использование CUDA.NET. В противном случае, можно рекомендовать GPU.NET, но только для задач, которые вписываются в рамки, обозначенные его ограничениями.
top related