РЕАЛИЗАЦИЯ И ОЦЕНКА ПРОИЗВОДИТЕЛЬНОСТИ РАЗРЕЖЕННОГО МАТРИЧНО-ВЕКТОРНОГО УМНОЖЕНИЯ МНОГОКРАТНОЙ ТОЧНОСТИ НА CUDA С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ ОСТАТОЧНЫХ КЛАССОВ
Умножение разреженной матрицы на плотный вектор (SpMV) является основным и наиболее затратным элементом в итерационных методах решения разреженных линейных систем и задач на собственные значения. Эффективная реализация SpMV имеет решающее значение для многих научных и инженерных вычислений, причем важно обеспечить не только высокое быстродействие, но и достаточную точности SpMV, поскольку итерационные методы известны своей чувствительностью к ошибкам округления. В статье мы рассматриваем параллельные реализации SpMV для CUD А-совместимых графических процессоров видеокарт (GPU) с использованием арифметики многократной точности на основе системы остаточных классов (СОК). Основным преимуществом СОК перед позиционными системами счисления является отсутствие переносов между цифрами числа, что позволяет заменить многоразрядные операции группами покомпонентных операций с цифрами небольшой разрядности, которые выполняются без накладных расходов, связанных с обработкой информации о переносах между цифрами. Мы рассматриваем реализации SpMV, основанные на двух широко распространеннв1х форматах хранения разреженной матрицы — CSR и ELLPACK. Экспериментальная оценка с матрицами из реальных приложений показывает, что во многих случаях представленные реализации выполняются быстрее, чем реализации на основе существующих библиотек многократной точности для GPU.0005