Исходный код, предоставленный заказчиком, был последовательным; задача состояла в максимальном ускорении кода на заданной архитектуре. В ходе исследования кода была проанализирована возможность переноса вычислений на GPU,векторизации и распараллеливания существующего кода на процессоре. В итоге был разработан гибридный CPU/GPU алгоритм с динамической балансировкой. Наиболее ресурсоёмкие вычисления на CPU были ускорены за счёт использования интринсиков и для более эффективного использования кэша процессора. На верхнем уровне алгоритм был распараллелен при помощи OpenMP. Вычисления на GPU происходят параллельно с вычислениями на CPU, достигая, таким образом, максимального использования вычислительных ресурсов компьютера. В результате исходный алгоритм был ускорен в 7 раз (с 280 секунд до 40 секунд).
Портирование алгоритма обработки сейсмоданных на GPU
Разработано для: Amberg Technologies AG, Швейцария, Регенсдорф
Спецификация
Заказчик
Amberg Technologies AG, Швейцария, Регенсдорф
Сфера применения
геофизические исследования
Назначение
оптимизация библиотеки обработки сейсмических сигналов
Тип (платформа)
Библиотека под Windows
Технологии и алгоритмы
C++, OpenMP, Intrinsics, GPU, OpenCL
Похожие проекты
оптимизация алгоритма миграции (обработка сейсмоданных)