Я ищу способ найти псевдообратную матрицу, чтобы это можно было сделать на графическом процессоре.
SVD / QR трудно распараллелить и не поддерживаются, но GPU MATLAB, но кажется, что LU, хотя и может работать параллельно, также не поддерживается GPU MATLAB. Я сравнил производительность, и она кажется медленнее, чем работа на одноядерном процессоре.
Я ищу псевдообратный (или даже регулярный обратный для квадратных матриц), который я могу использовать. Согласно Matlab, использование mldivide () выполняет исключение Гаусса, которое применимо для графических процессоров.
Я пытался использовать A \ I, но, к сожалению, он не работает эффективно на графических процессорах.
Кто-нибудь может направить меня к оптимизированному коду для параллельного устранения LU или Gaussian?
Я слышал о пакете MAGMA, но, кажется, много работы по установке и компиляции, и мне очень нужна эта простая вещь.
Код C ++ также приветствуется.
Спасибо,
Гил
В MATLAB R2013a все LU, QR и SVD поддерживаются на графическом процессоре через gpuArray. Здесь есть список поддерживаемых функций: http://www.mathworks.co.uk/help/distcomp/using-gpuarray.html#bsloua3-1 . Все функции линейной алгебры в gpuArray реализованы с использованием MAGMA.
A\b
может эффективно работать на GPU, см. этот пример: http://www.mathworks.co.uk/help/distcomp/examples/benchmarking-a-b-on-the-gpu.html . По мере увеличения размера проблемы можно ожидать, что прилично мощный графический процессор (например, Tesla) будет работать в 5 раз быстрее, чем центральный процессор.
Эта статья МАТРИЦА ИНВЕРСИИ УСКОРЕННАЯ С CUDA может помочь:
АННОТАЦИЯ
В этом проекте разработано несколько математических алгоритмов для получения метода инверсии матриц, который сочетает в себе параллельную архитектуру CUDA и MATLAB, который на самом деле быстрее, чем встроенная в MATLAB функция обратной матрицы. Этот метод обращения матриц предназначен для использования при восстановлении изображения в качестве более быстрой альтернативы итерационным методам с сопоставимым качеством. Алгоритмы, разработанные в этом проекте, включают исключение Гаусса-Джордана, разложение Холецкого, исключение Гаусса и умножение матриц.