CUDA: Решение СЛАУ

Узкое место программы в решении СЛАУ. Несколько вариантов:
а) использовать имеющийся алгоритм (уже портировано и работает)
б) найти другой алгоритм, который был бы более оптимизирован для CUDA (меньше обращений к памяти, использование меньшей памяти -> возможность использования общей памяти блока)
в) использовать CUBLAS - что кардинально изменит программу.

Вопросы:
1. Какие алгоритмы вообще существуют - какими вы уже пользовались.
2. Стоит ли переносить все вычисления кроме решения СЛАУ на хост - иначе говоря, каким быстродействием обладает CUBLAS? Скорее всего не стоит, потому что решение системы делается в цикле с количеством итераций 10000 и больше. Но все же, может кто пробовал?

Forums: 

Неужто свой алгоритм на CPU

Неужто свой алгоритм на CPU оказался лучше BLAS?

Я к тому клоню, что лично я бы - перенес бы на BLAS, а уж какую реализацию использовать, CUDA или Intel или Goto - это вопрос второй....

Конечно, если у вас маленькие матрицы, свой вариант может быть лучше.

Свой алгоритм для КУДЫ есть и

Свой алгоритм для КУДЫ есть и работает на видеокарте. Но может блас работал бы быстрее, только тогда пришлось бы его много много раз вызывать, что не есть хорошо из за overhead с этим связанного. А пока все итерции проходят на видеокарте, но к сожалению из девайс кода нельзя вызывать функции бласа а код его не открыт )