Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемЭдуард Мичурин
1 Сравнение производительности NVidia NPP и Intel IPP Участники: Калишев Глеб Майоров Алексей Руководитель: Половинкин Алексей Участники: Калишев Глеб Майоров Алексей Руководитель: Половинкин Алексей
2 Image Processing Работа с наиболее простейшими примитивами Работа с более сложными примитивами теория сигналов сжатие данных криптография обработка видео компьютерное зрение
3 Пример. Фильтр Байера. Используется для получения цветного изображения в матрицах цифровых фотоаппаратов, видеокамер и сканеров. Для отличия от других разновидностей его называют GRGB, RGBG, или RGGB Каждый фотоприемник воспринимает лишь 1/3 цветовой информации участка изображения, а 2/3 отсекается фильтром. Для получения остальных цветовых компонент используются значения из соседних ячеек. Недостающие компоненты цвета рассчитываются процессором камеры на основании данных из соседних ячеек в результате интерполяции Таким образом, в формировании конечного значения цветного пикселя участвует 9 или более фотодиодов матрицы. Каждый фотоприемник воспринимает лишь 1/3 цветовой информации участка изображения, а 2/3 отсекается фильтром. Для получения остальных цветовых компонент используются значения из соседних ячеек. Недостающие компоненты цвета рассчитываются процессором камеры на основании данных из соседних ячеек в результате интерполяции Таким образом, в формировании конечного значения цветного пикселя участвует 9 или более фотодиодов матрицы.
4 Пример. Фильтр Байера. Конечное изображение Интересующая область
5 Пример. Фильтр Байера. Сначала получаются три цветовые составляющие: Алгоритм Фильтрации Алгоритм Фильтрации
6 Пример. Сжатие данных. Исходное изображение Изображение после фильтрации Алгоритм сжатия данных Алгоритм сжатия данных
7 Пример. Восстановление качества изображения. Исходное изображение Изображение после обработки
8 Пример. Восстановление качества изображения. Исходное изображение Изображение после обработки
9 Постановка задачи Выявить общую функциональность библиотек Intel IPP и NVidia NPP. Спроектировать и реализовать тестовую систему для проведения экспериментов. Провести серию экспериментов при различных входных данных. Определить зависимость времени выполнения функций от разрешения входных изображений: время выполнения заданной функции из библиотеки IPP; время выполнения заданной функции из библиотеки NPP с учетом времени передачи данных на GPU; время выполнения заданной функции из библиотеки NPP без учета времени передачи данных на GPU; Провести анализ полученных результатов. Выявить общую функциональность библиотек Intel IPP и NVidia NPP. Спроектировать и реализовать тестовую систему для проведения экспериментов. Провести серию экспериментов при различных входных данных. Определить зависимость времени выполнения функций от разрешения входных изображений: время выполнения заданной функции из библиотеки IPP; время выполнения заданной функции из библиотеки NPP с учетом времени передачи данных на GPU; время выполнения заданной функции из библиотеки NPP без учета времени передачи данных на GPU; Провести анализ полученных результатов.
10 Общая функциональность Intel IPP и NVidia NPP Image Transpose Image Color Channel Swap Arithmetic Operations (Image Addition, Subtraction, Multiplication, Division Methods) Image Absolute Difference Methods Image Threshold Methods Image Compare Methods Mean_StdDev NormDiff 1D Filters (Linear Filter, Window Sum) 2D Filters (Morphology Filters, Linear Variable Filters, Linear Fixed Filters, Tile Max/Median/Min) Image Transpose Image Color Channel Swap Arithmetic Operations (Image Addition, Subtraction, Multiplication, Division Methods) Image Absolute Difference Methods Image Threshold Methods Image Compare Methods Mean_StdDev NormDiff 1D Filters (Linear Filter, Window Sum) 2D Filters (Morphology Filters, Linear Variable Filters, Linear Fixed Filters, Tile Max/Median/Min) (Image Processing)
11 Использование вычислений на GPU в области Image Processing Специализированная конвейерная архитектура Большое количество ядер Векторная обработка данных Большая эффективность в обработке графической информации Специализированная конвейерная архитектура Большое количество ядер Векторная обработка данных Большая эффективность в обработке графической информации Актуальность:
12 Использование вычислений на GPU в области Image Processing Быстрый рост пиковых производительностей GPU по сравнению с CPU Быстрый рост пиковых производительностей GPU по сравнению с CPU
13 Описание тестовой инфраструктуры Архитектура: x86, 32-bit CPU: Intel® Core®2 Duo E GHz RAM: 4 GB GPU: NVIDIA GeForce 8800 GTS 640 MB Операционная система: MS Windows XP Professional SP3 32-bit CUDA Driver: NVIDIA Driver for Windows XP 32-bit with CUDA Support CUDA Toolkit: CUDA Toolkit 2.3 for Windows XP 32-bit Библиотека IPP: Intel® Integrated Performance Primitives v6.0 for Windows* Библиотека NPP: NVIDIA NPP Library and SDK Version 1.0 Библиотека OpenCV: Open Source Computer Vision Library v1.1 for Intel® Architecture Компилятор: Microsoft (R) 32-bit C/C++ Optimizing Compiler Version for 80x86 Архитектура: x86, 32-bit CPU: Intel® Core®2 Duo E GHz RAM: 4 GB GPU: NVIDIA GeForce 8800 GTS 640 MB Операционная система: MS Windows XP Professional SP3 32-bit CUDA Driver: NVIDIA Driver for Windows XP 32-bit with CUDA Support CUDA Toolkit: CUDA Toolkit 2.3 for Windows XP 32-bit Библиотека IPP: Intel® Integrated Performance Primitives v6.0 for Windows* Библиотека NPP: NVIDIA NPP Library and SDK Version 1.0 Библиотека OpenCV: Open Source Computer Vision Library v1.1 for Intel® Architecture Компилятор: Microsoft (R) 32-bit C/C++ Optimizing Compiler Version for 80x86
14 Общая структура тестовой системы RUN.BAT BUILD.BAT OBJ IMAGES SET.BAT INCLUDE cl.exe
15 Файл с исходным кодом Функция runTest_ ; Пример: ipp_npp runTest_Transpose_8u_C1R(IplImage * srcImg, double *times); IplImage * srcImg – указатель на структуру, содержащую исходное изображение; double * times – указатель на 3-х элементный массив для сохранения временных результатов тестирования: times[0] – время вызова функции из библиотеки IPP; times[1] – время вызова функции из библиотеки NPP с учетом времени передачи данных на видеокарту; times[2] – время вызова функции из библиотеки NPP без учета времени передачи данных на видеокарту. Функция main(); Функция runTest_ ; Пример: ipp_npp runTest_Transpose_8u_C1R(IplImage * srcImg, double *times); IplImage * srcImg – указатель на структуру, содержащую исходное изображение; double * times – указатель на 3-х элементный массив для сохранения временных результатов тестирования: times[0] – время вызова функции из библиотеки IPP; times[1] – время вызова функции из библиотеки NPP с учетом времени передачи данных на видеокарту; times[2] – время вызова функции из библиотеки NPP без учета времени передачи данных на видеокарту. Функция main();
16 Результаты вычислительного эксперимента
17 Операции с памятью Функция Transpose_8u_C1R Функция SwapChannels_8u_C4IR
18 Арифметические операции Функция Add_32f_C1R Функция Sub_8u_C1RSfs Функция Mul_8u_AC4RSfs Функция Div_8u_C4RSfs
19 Функция Mean_StdDev_8u_C1R Функция NormDiff_L2_8u_C1R
20 Фильтры Функция Dilate_8u_C4R Функция Erode_8u_C4R
21 Фиксированные фильтры Функция FilterBox_8u_C4R Функция FilterMax_8u_C1R Функция FilterMin_8u_C4R
22 Выводы: Время вычислений на GPU в десятки раз меньше, чем на CPU. На большинстве функций Nvidia NPP проигрывает из-за низкой скорости передачи данных в память GPU и обратно. Для функций, выполняющих сложные вычисления, а также при многократной обработке одних и тех же данных, находящихся в памяти GPU, Nvidia NPP выигрывает в производительности у Intel IPP. В большинстве случаев объем видеопамяти в несколько раз меньше объема оперативной памяти, что ограничивает обработку изображений большого разрешения средствами NVidia NPP. Intel IPP более проста в установке и использовании, чем Nvidia NPP, имеет большую функциональность и не требует наличия специальных графических процессоров. Время вычислений на GPU в десятки раз меньше, чем на CPU. На большинстве функций Nvidia NPP проигрывает из-за низкой скорости передачи данных в память GPU и обратно. Для функций, выполняющих сложные вычисления, а также при многократной обработке одних и тех же данных, находящихся в памяти GPU, Nvidia NPP выигрывает в производительности у Intel IPP. В большинстве случаев объем видеопамяти в несколько раз меньше объема оперативной памяти, что ограничивает обработку изображений большого разрешения средствами NVidia NPP. Intel IPP более проста в установке и использовании, чем Nvidia NPP, имеет большую функциональность и не требует наличия специальных графических процессоров.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.