Piszę teraz kod i mam obiekt zastępczy z matmul
, który wydaje się działać całkiem dobrze, ale chciałbym użyć implementacji LAPACK
dgemm
. Obecnie używam tylko gfortran
i uzyskuję bardzo dobre prędkości z matmul
, ale zastanawiam się, czy mogę się poprawić.Czy "matmul" fortrana korzysta z MKL, jeśli dołączę bibliotekę?
Obecny połączenie jest:
C = transpose(matmul(transpose(A), B))
gdzie A
, B
i C
są dla kwadratowy double precision
macierzy. Mogę z łatwością napisać opakowanie dla dgemm
z bieżącą implementacją gfortran
z LAPACK
, ale podoba mi się, że mogę to wszystko zrobić jako funkcję (zamiast martwić się o call
dla surbroutine i mając do czynienia z transpose
).
Zastanawiam się, czy mogę skompilować z ifort
i obejmują MKL
będzie to matmul
magicznie zmienić na MKL
dgemm
funkcji dla mnie bez owijki?