Я не нахожу разложение LU на устройстве с помощью cuSolver

Мне нужно вычислить определитель матрицы (массив двойных чисел) с помощью cuda, и я хочу использовать для этого разложение LU. Я не нахожу функцию устройства в cusolverSp.h, а только функцию хоста cusolverSpDcsrlsvluHost. Я смотрю в cuda 7.0 и cuda 7.5.

Я не понимаю, почему я не могу его найти, ведь он описан в официальной документации: http://docs.nvidia.com/cuda/cusolver/index.html#api

Другие функции вроде разложения Холецкого на приборе работают.

Это реализовано? Если да, то где я могу найти его?

Спасибо за помощь!


person TuDa    schedule 27.08.2015    source источник


Ответы (1)


Глядя на документацию, которую вы указали, я вижу:

Примечание 5: предоставляется только путь ЦП (хост)

Немного чтения на странице дает это:

Затем cuSolverSP предоставляет новый набор разреженных подпрограмм, основанных на разреженной QR-факторизации. Не все матрицы имеют хороший шаблон разреженности для параллелизма при факторизации, поэтому библиотека cuSolverSP также предоставляет путь ЦП для обработки таких последовательных матриц. Для матриц с обильным параллелизмом путь GPU обеспечит более высокую производительность. Библиотека предназначена для вызова из C и C++.

Объединив две цитаты, я думаю, что функция устройства не была сочтена заслуживающей внимания ... Хотя это всего лишь моя интерпретация.

person Gilles    schedule 27.08.2015
comment
Спасибо, я не читаю комментарии, и это ошибка для меня. Примечание 6: многопоточный csrlsvlu пока недоступен. Ясно. Спасибо. - person TuDa; 27.08.2015