MJay

MAGMA- Testing_ZGESV (General Linear Solve) 본문

Cloud Computing/MAGMA

MAGMA- Testing_ZGESV (General Linear Solve)

MJSon 2017. 7. 14. 21:17
Magma 의 Testing 폴더를 보면

GFLOPS/Sec를 측정 할 수 있는 여러 코드들이 있다.


그 중에 ZGESV를 코드가 있다.

Z - 복소수

GE- General

SV - Linear Solve를 뜻한다.

Computes the solution to the system of linear equations with a square coefficient matrix A and multiple right-hand sides.

선형대수의 Linear Solve를 뜻한다. 

간단히 설명하자면



A와 B가 주어지면 

A*X =B 를 만족하는 X를 구하는 과정이다. 기본적이고 중요한 선형대수의 공식이다.

testing_zgesv.cpp 코드는 이렇다 중요한 것만 말해보자면


mamga_v2.h  헤더파일을 이용한다.

각 변수들을 초기화시켜주고

magma_opts opts;
opts.parse_opts( argc, argv );

magma 의 options들이 여러개 있다 여기서 option을 지정해준다

예로 들면

gpu의 개수를 4개 쓰고 싶다면 ./testing_zgesv --ngpu 4 이렇게 해주면 

default인 gpu 개수 1개 대신 4개를 써준다




magma_zgesv라는 함수가 있다. 

input는 다음과 같다. 



Output는 다음과 같다.




pivot은 permutation matrix P를 뜻한다고 한다. 


코드는 GitHub에 주석과 함께 올려놨다.

./testing_zgesv --ngpu 4를 실행한 결과




N은 X의 행 크기

NRHS X의 열 크기

GPU Gflops -> GPU의 측정 치수 를 알려준다

B-AX 는 Residual이다. (오차, 잔차)를 뜻한다.

ok는 문제없다는것이다. 



'Cloud Computing > MAGMA' 카테고리의 다른 글

GEMM은 무엇일까?  (0) 2017.07.16
Magma함수 정리 ( zfill_matrix, MAGMA_ZMAKE)  (0) 2017.07.15
행렬 Column-Wise 뜻  (0) 2017.07.15
Magma_opts란  (0) 2017.07.14
Magma에 있는 testing_zgesv 와 testing_zgesv_gpu 차이점  (0) 2017.07.14