2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 связь blas и lapack
Сообщение23.06.2014, 09:15 


20/04/12
114
Допустим имеем обёртку вокруг BLAS на python (т.е. имеем numpy), можем ли руками написать ф-ии из LAPACK?(по минимуму мне надо eig, svd.)
я знаю про numpy.linalg.svd и numpy.linalg.eig так же там можно посмотреть сорцы, которые показывают в случае svd

Цитата:
The decomposition is performed using LAPACK routine _gesdd


, а в случае eig

Цитата:
implemented using the _geev LAPACK routines




но там правда есть ссылка на

Цитата:
References
----------
G. Strang, *Linear Algebra and Its Applications*, 2nd Ed., Orlando, FL,
Academic Press, Inc., 1980, Various pp.



Для чего всё это нужно:

переписать стандартные функции из numpy (svd и eig) с использованием numpy.memmap и cudamat (тот же blas обертка вокруг cublas как я понимаю).
Так же для поддержки больших матриц можно использовать блочное перемножение матриц (хотя может еще какие то ф-ии blas придется переделать? и я чего то не учёл?)

Что точнее нужно:

может быть есть lapack собранный только из вызовов blas? (так ли это и возможно ли это?)
возможно есть примеры на других языках? (т.к. нет никакого желания разбираться в фортран коде и ф-иях с названиями типа dgemm)
какие книги по линейной алгебре(для инженеров скорее, а не для математиков) лучше читать, которые более близки к реальности и рассказывают о подводных камнях(например вырожденные случаи (типа сингулярная матрица) или там потеря точности (типа таким методом никто не считает, а вот более точный) и т.д.), опять же учитывая, что blas и обёртки у нас уже есть и требуется написать только высокоуровневые алгоритмы.

 Профиль  
                  
 
 Re: связь blas и lapack
Сообщение24.06.2014, 19:22 


28/05/08
284
Трантор
(сам не читал! просто попадалась рекомендация, как очень хорошей книги)
Деммель, Вычислительная линейная алгебра.
Ну и для практиков еще полезна, кажется, вот эта книга:
Numerical Recipes in C (есть вариации для других языков; лиц. соглашение на код очень неприятное --- лучше самому переписать, а не копировать из книжки).

 Профиль  
                  
 
 Re: связь blas и lapack
Сообщение26.06.2014, 21:04 
Заслуженный участник


19/07/08
1266
mrgloom_ в сообщении #878543 писал(а):
Для чего всё это нужно:

переписать стандартные функции из numpy (svd и eig) с использованием numpy.memmap и cudamat (тот же blas обертка вокруг cublas как я понимаю).

Про http://www.culatools.com/ или хотя бы http://icl.cs.utk.edu/magma/ в курсе?
Судя по вопросам которые возникают, самописный вариант быстрее готового не получится.

 Профиль  
                  
 
 Re: связь blas и lapack
Сообщение07.07.2014, 13:09 


20/04/12
114
вкурсе, но первое не подходит т.к. закрытое и скорее всего не рассчитано на работу с данными больше объема памяти на видеокарте, а второе т.к. сложное для настройки и у меня нету кластера.


почитав немного, я склоняюсь к тому, что мне надо реализовать SVD, т.к. он более полезный, т.к. на базе его можно получить и собственные значения\векторы.
Но похоже там существует несколько методов я нашел: QR method, Jacobi rotations, divide-and-conquer.
но как то всё очень запутанно.
http://en.wikipedia.org/wiki/Singular_v ... ng_the_SVD

Цитата:
The routine dgesdd uses a divide and conquer algorithm for the bidiagonal SVD, whereas dgesvd uses a QR algorithm.
In summary, I recommend always calling the dgesdd if the memory is available, otherwise dgesvd.


тут много по eig адгоритмов
http://en.wikipedia.org/wiki/Eigenvalue_algorithm

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group