Исходный код, предоставленный заказчиком, был последовательным; задача состояла в максимальном ускорении кода на заданной архитектуре. В ходе исследования кода была проанализирована возможность переноса вычислений на GPU,векторизации и распараллеливания существующего кода на процессоре. В итоге был разработан гибридный CPU/GPU алгоритм с динамической балансировкой. Наиболее ресурсоёмкие вычисления на CPU были ускорены за счёт использования интринсиков и для более эффективного использования кэша процессора. На верхнем уровне алгоритм был распараллелен при помощи OpenMP. Вычисления на GPU происходят параллельно с вычислениями на CPU, достигая, таким образом, максимального использования вычислительных ресурсов компьютера. В результате исходный алгоритм был ускорен в 7 раз (с 280 секунд до 40 секунд).

Портирование алгоритма обработки сейсмоданных на GPU
Разработано для: Amberg Technologies AG, Швейцария, РегенсдорфНазначение: оптимизация библиотеки обработки сейсмических сигналов
Спецификация
Заказчик: | Amberg Technologies AG, Швейцария, Регенсдорф |
Сфера применения: | геофизические исследования |
Тип (платформа): | Библиотека под Windows |
Технологии и алгоритмы: | C++, OpenMP, Intrinsics, GPU, OpenCL |