W4 Flashcards
Jakie jest znaczenie poziomów BLAS?
Im wyższy poziom BLAS-u, tym stosunek liczby odwołań do pamięci do liczby operacji wykonanych na tych danych jest niższy.
Jaki jest algorytm podstawowy mnożenia macierzy (Algorytm 1)?
Algorytm 1: for j = 1 to n do for i = 1 to m do t <- 0 for l = 1 do k do t <- t + a[i][l] * b[l][j] end for c[i][j] <- betac[i][j] + alphat end for end for
Jaki jest algorytm mnożenia macierzy przy użyciu BLAS 1 (Algorytm 2)?
Algorytm 2: for j = 1 to n do C[][j] <- beta * C[][j] for i = 1 to k do C[][j] <- C[][j] + (alphaB[i][j])A[*][i] end for end for
Jaki jest algorytm mnożenia macierzy przy użyciu BLAS 2 (Algorytm 3)?
Algorytm 3: for j = 1 to n do C[][j] <- alphaA[][]B[][j] + betaC[][j] end for
Jaki jest algorytm mnożenia macierzy przy użyciu BLAS 3 (Algorytm 4)?
Algorytm 4: C[][] <- beta * C[][] + alpha * A[][]B[][*]
Dlaczego operacje realizujące BLAS są tak wydajne?
Operacje realizujące BLAS uwzględniają dostęp procesora do pamięci i minimalizują czas oczekiwania na dane.
Czym jest rozkład Cholesky’ego?
Rozkład Cholesky’ego to dekompozycja macierzy symetrycznej i dodatnio określonej na macierz dolnotrójkątną L, taką że A = LL^T.
Jaki jest sekwencyjny (skalarna) algorytm rozkładu Cholesky’ego?
Algorytm: for j=1 to n do for k=1 to j-1 do for i=j to n do a[i][j] <- a[i][j] - a[j][k]*a[i][k] end for end for a[i][j] <- sqrt(a[i][j]) for i = j+1 to n do a[i][j] <- a[i][j]/a[j][j] end for end for
Czym jest wektorowa metoda Cholesky’ego?
Wektorowa metoda Cholesky’ego to optymalizacja rozkładu Cholesky’ego, uwzględniająca operacje wektorowe dla większej efektywności.
Czym jest wektorowo-macierzowa metoda Cholesky’ego?
Wektorowo-macierzowa metoda Cholesky’ego to optymalizacja rozkładu Cholesky’ego, uwzględniająca operacje macierzowe dla większej efektywności.
Jaki jest wpływ poziomu BLAS na metodę Cholesky’ego?
Drugi poziom BLAS (wektor-macierz) jest najlepszą optymalizacją dla metody Cholesky’ego ze względu na zależność danych między obrotami pętli.
Jak wyrazić rozkład Cholesky’ego w postaci operacji trzeciego poziomu BLAS-u?
Rozkład Cholesky’ego można wyrazić w postaci blokowej i wykorzystać operacje trzeciego poziomu BLAS (macierz-macierz) do optymalizacji.
Jakie są wnioski dotyczące zrównoleglania pętli w kontekście BLAS?
Zwykłe zrównoleglanie pętli nie przynosi poprawy wydajności. Należy zrównoleglić pętle zewnętrzne, a operacje wewnętrzne wektoryzować i doprowadzać do trzeciego poziomu BLAS.
Co to jest BLAS?
BLAS (Basic Linear Algebra Subprograms) to standard dla podprogramów realizujących podstawowe operacje algebry liniowej, obejmujące operacje wektorowe, macierzowe oraz wektorowo-macierzowe.