Действительно интересно. А для просто решения системы линейных уравнений
можно убыстрить процесс?
> Хочу отметить, что для достижения максимальной производительности
> необходимо тесное "сотрудничество " с железом. Например, на процессоре
> q6700 это будет один алгоритм, а на процессоре q9450 - это уже совсем
> другой алгоритм (для IA32).
В этом и была идея спецификации BLAS, чтобы выделить код, зависимый от
железа. Или у вас надо менять сам исходный алгоритм диагонализации?
Это я понимаю. Вопрос был связан с тем, что, если я правильно понял, вы
нашли метод ускорения нахождения собственных значений по сравнению с
LAPACK + оптимизированный BLAS. Соответственно вопрос был можно ли
ускорить решение системы линейных уравнений по сравнению с LAPACK +
оптимизированный BLAS.
>> В этом и была идея спецификации BLAS, чтобы выделить код, зависимый от
>> железа.
>>
> Для BLAS LEVEL 3 весь алгоритм меняется. При этом его необходимо
> реализовывть на ассемблере (SSE3). На языке высокого уровня хороший
> алгоритм реализовать невозможно. При этом алгоритмы для IA32 и EM64T
> различны.
А вы не видели сравнений оптимизированных BLAS с последней версией
ATLAS? ATLAS, насколько я знаю, ассемблер не использует.
А на сколько? Если ли у вас какие-нибудь ссылки в этом отношении?
>> А вы не видели сравнений оптимизированных BLAS с последней версией
>> ATLAS? ATLAS, насколько я знаю, ассемблер не использует.
>>
> http://www.intel.com/cd/software/products/asmo-na/eng/266858.htm
Если посмотреть на работу при использовании одного процессора, то
разницы практически и нет. С этой точки зрения преимущества ассемблера
особенно не видно.
А то, что multithread у Интел лучше, в этом нет ничего удивительного.
Это требует специальных усилий.