Определение оптимального количества потоков CUDA на основе машинного обучения для реализации метода трехдиагонального разбиения на GPU
Аннотации
Аннотация
Представлена эвристика для поиска оптимального количества потоков CUDA с использованием инструментов, общих для современных подходов, ориентированных на ИИ, и применяемых к алгоритму параллельного разбиения. Построена модель временной сложности для реализации метода разбиения на GPU. Далее сформулирована уточненная модель временной сложности для алгоритма разбиения, выполняемого на нескольких потоках CUDA. Проведены вычислительные эксперименты для различных размеров СЛАУ, и найдено эмпирически оптимальное количество потоков CUDA для каждого из них. На основе собранных данных с помощью регрессионного анализа сформулирована модель для суммы времен для недоминирующих операций GPU (которые принимают участие в перекрытии потоков). Создана подходящая нелинейная модель для накладных расходов, связанных с созданием потоков CUDA. Для всех построенных моделей выполнен статистический анализ. Сформулирован алгоритм для поиска оптимального количества потоков CUDA. С использованием этого алгоритма вместе с двумя упомянутыми выше моделями сделаны прогнозы для оптимального количества потоков CUDA. Сравнивая прогнозируемые значения с фактическими данными, можно сказать, что алгоритм является приемлемо хорошим.

