2012-10-16 8 views
8

Większość z BLAS Level 1 API można trywialnie pisać prosto do przodu przy użyciu Fortran 9x + wektoryzacji i procedur wewnętrznych.Czy procedury BLAS poziomu 1 są nadal istotne dla współczesnych kompilatorów fortranów?

Zakładając, że używasz nowoczesnego kompilatora, jak Intel Fortran i poprawne opcje optymalizacji kompilatora celowane, czy są jakieś korzyści wydajności z zastosowaniem procedury BLAS Poziom 1 zamiast, powiedzmy od Intel MKL lub inne szybko Blas wdrożeń?

Jeśli tak, to jaka jest typowa wielkość wektora, gdy pojawiają się te korzyści?

Odpowiedz

9

To zależy. Testowaliśmy to już wcześniej z kompilatorem Intel i osiągnęliśmy zaskakujące wyniki. Na przykład DOT_PRODUCT z Fortran vs implementacja BLAS podała różne trendy w zależności od rozmiaru problemu. Wraz ze wzrostem liczby elementów w tablicach, BLAS stał się lepszy od wewnętrznego. Jednak w przypadku niewielkich rozmiarów problemu samoistne działanie było znacznie szybsze.

Rzeczywiście, dla naszych przypadków użycia, mierzyliśmy, jaki jest rozmiar odcięcia, który jest potrzebny, aby uzyskać lepszy wynik niż drugi, i faktycznie używa się instrukcji if, aby zdecydować, do którego połączenia. Nie mogę podzielić się tymi wynikami, ale zachęcam do samodzielnego przetestowania tego. Nadal można korzystać z BLAS.

Powiązane problemy