MJay
MAGMA- Testing_ZGESV (General Linear Solve) 본문
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 );
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 |