Я не нахожу разложение 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++.
Объединяя эти две цитаты, я полагаю, что функцию устройства не стоило предоставлять... Это только моя интерпретация.