Гафаров - Слайды.pptx
- Количество слайдов: 18
Дипломная работа Математическое и программное обеспечение 3 D-визуализации на RISC-процессорах Выполнил: Гафаров А. Р Студент группы МО-516 а Научный Руководитель: Макеев Г. А.
Введение На сегодняшний день алгоритмы визуализации имеют широкий спектр применения в различных сферах жизни общества, таких как Медицина Автоматизированные системы проектирования (CAD) Создание компьютерных игр
Актуальность 3 D визуализация Растеризаци я Может работать только в пространстве полигонов Глобальное освещение Ray Tracing Достаточно медленный и работает только с полигонами Очень медленный и трудно параллелится Ray Casting Плохое качество картинки по сравнению с Ray tracing
Цель дипломной работы Разработка математического и программного обеспечения для повышения скорости визуализации сложных воксельных моделей с помощью алгоритма Volume Ray Casting на RISCархитектурных процессорах
Формальная постановка задачи
Детальная структура решения
Математическая постановка задачи Дано: Исполнители: Производительность исполнителей: Общий объём задачи Z Найти: 1) 2) такие, что Z, где - часть задачи Z, выделяемая i-ому исполнителю
Реализация алгоритма. Организация параллельных вычислений Алгоритм распределения 1. Распределяем по исполнителям одинаковые части 2. Ждем завершения обработки 3. Собираем результаты со всех подпроцессоров 4. Формируем изображение 5. Перераспределяем задания с учетом балансировки 6. Возвращаемся к шагу 2 SPU 1 SPU 2 SPU 3 PPU SPU 4 SPU 5 SPU 6 SPU 7 SPU 8
Реализация алгоритма. Распределение вычислительной нагрузки между подпроцессорами Алгоритм распределения нагрузки представляет собой балансировку нагрузки подпроцессоров, то есть снимает часть сложных вычислений с одного подпроцессора и распределяет их между остальными подпроцессорами Для каждого подпроцессора SPU Если tspu[i-1] > tср[i-1], tср[i-1]= nspu[i]=nspu[i]-1, где, i – шаг, за который совершается визуализация одного фрейма, N – количество SPU, tср[i] – среднее время выполнения задания на i-ой итерации, tspu[i] – время выполнения задания на i-ой итерации на SPU nspu[i]- количество строк для обработки на i-ой итерации
Реализация алгоритма. Использование SIMD-инструкций на SPU A[0] A[1] A[2] A[3] • 32 бита Алгоритм Volume Ray Casting состоит из следующих шагов • Нахождение пересечения луча с вокселем • Интерполяция • Нахождение цвета Основные математические операции, на данных этапах: • Сложение • Вычитание • Умножение • Деление (x 128)
Диаграмма классов
Пользовательский интерфейс Программа была написана и скомпилирована с помощью IBM CELL SDK, однако программа не содержит графического интерфейса (GUI), только консольный режим 1. Задаем папку с DICOM файлами 2. Выбираем нужное разрешение экрана 3. Изображение сохраняется в ту же папку где находится исполняемый файл
Производительность Тип: приставка(игровая консоль) Playstation 3 Процессор IBM CELL, 3. 2 ГГц(1 PPU и 5 SPU) RAM 256 Mb HDD 120 GB ОС – Linux Тестирование проводилось на следующих моделях: Модель мозга (2, 5 мб) Модель челюсти (89, 5 мб)
Время рендеринга моделей: модель Мозга 4. 5 4 Время рендеринга(в сек. ) 3. 5 3 2. 5 AMD Opteron 64 2 IBM Cell 1. 5 1 0. 5 0 640 x 480 Время рендеринга(в сек. ) 12 800 x 600 Разрешение экрана(в пикселях) 1024 x 768 Время рендеринга моделей: модель Челюсти 10 8 6 AMD Opteron 64 IBM Cell 4 2 0 640 x 480 800 x 600 Разрешение экрана(в пикселях) 1024 x 768
Масштабируемость SPU 3 D-модель: Мозг Время визуализации 6 Реальное время визуализации на CELL 5 4 3 Идеальное время визуализации на CELL 2 1 0 1 2 3 Количество SPU 4 5 3 D-модель: Челюсти Время визуализации 16 14 Реальное время визуализации на CELL 12 10 8 6 Идеальное время визуализации на CELL 4 2 0 1 2 3 Количество SPU 4 5
SPU без распределения нагрузки 5 4 3 2 1 Количество подпроцессоров SPU Распределение нагрузки для SPU 0 0. 2 0. 4 0. 6 0. 8 1 Время визуализации, в сек. 1. 2 1. 4 1. 6 1. 8 SPU с распределением нагрузки 5 4 3 2 1 0 0. 2 0. 4 0. 6 0. 8 1 Время визуализации, в сек. 1. 2 1. 4 1. 6 1. 8
Результаты В процессе работы были получены следующие результаты Был портирован алгоритм Volume Ray Casting на процессор CELL Алгоритм был распараллелен для всех подпроцессоров SPU Реализован эвристический алгоритм динамического распределния нагрузки между подпроцессорами SPU Был получен прирост производительности по сравнению с архитектурой x 86(Intel, AMD) благодаря использованию машинных SIMD-инструкций
Будущая работа Использование предсказания ветвлений(branch hinting) Использование кэширования Использование других структур данных для хранения всего массива вокселей и сравнение эффективности 2 -х подходов Реализация работы с сетью для визуализации по сети Включение поддержки большего числа форматов данных
Гафаров - Слайды.pptx