Я не нахожу разложение LU на устройстве с cuSolver

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

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

Другие функции, такие как разложение Холецкого на устройстве, работают.

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

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

1 ответ

Решение

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

Замечание 5: указывается только путь процессора (хоста)

Небольшое чтение на странице дает это:

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

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

Другие вопросы по тегам