[g3]deview gpu를 통한 얼굴인식 가속
TRANSCRIPT
• PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식기����������� ������������������ – 얼굴인식����������� ������������������ 개요����������� ������������������ – 주요����������� ������������������ 모듈의����������� ������������������ 병렬성����������� ������������������
• GPU와����������� ������������������ 병렬프로그래밍����������� ������������������ – CUDA����������� ������������������ – OpenCL����������� ������������������
• GPU����������� ������������������ 기반����������� ������������������ 얼굴인식기의����������� ������������������ 설계����������� ������������������ – 매핑����������� ������������������ – 동기화����������� ������������������
• 실험결과����������� ������������������ 및����������� ������������������ 결론����������� ������������������
목차����������� ������������������
• PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식기����������� ������������������ – 얼굴인식����������� ������������������ 개요����������� ������������������ – 주요����������� ������������������ 모듈의����������� ������������������ 병렬성����������� ������������������
• GPU와����������� ������������������ 병렬프로그래밍����������� ������������������ – CUDA����������� ������������������ – OpenCL����������� ������������������
• GPU����������� ������������������ 기반����������� ������������������ 얼굴인식기의����������� ������������������ 설계����������� ������������������ – 매핑����������� ������������������ – 동기화����������� ������������������
• 실험결과����������� ������������������ 및����������� ������������������ 결론����������� ������������������
목차����������� ������������������
• 컴퓨터가����������� ������������������ 얼굴을����������� ������������������ 학습하여����������� ������������������ 식별해내는����������� ������������������ 일����������� ������������������ • 다수의����������� ������������������ 응용분야����������� ������������������ -����������� ������������������ 보안,����������� ������������������ 정보분류����������� ������������������ 등����������� ������������������
• 학습(training)����������� ������������������ – 입력:����������� ������������������ 서로����������� ������������������ 다른����������� ������������������ 여러����������� ������������������ 얼굴이미지들����������� ������������������ – 출력:����������� ������������������ 학습된����������� ������������������ 정보����������� ������������������
• 식별(testing)����������� ������������������ – 입력:����������� ������������������ 학습된����������� ������������������ 정보����������� ������������������ – 출력:����������� ������������������ 식별결과����������� ������������������
• 픽셀단위����������� ������������������ 정보를����������� ������������������ 처리하는����������� ������������������ 작업으로����������� ������������������ 학습에����������� ������������������ 많은����������� ������������������ 시간이����������� ������������������ 소요����������� ������������������
얼굴인식����������� ������������������
• 주성분����������� ������������������ 분석����������� ������������������ • 차원����������� ������������������ 정보를����������� ������������������ 줄이는����������� ������������������ 방법����������� ������������������
– 입력����������� ������������������ 정보들을����������� ������������������ 비교하여����������� ������������������ 고유����������� ������������������ 벡터(eigenvector)를����������� ������������������ 구하고,����������� ������������������ 입력����������� ������������������ 정보를����������� ������������������ 고유벡터로����������� ������������������ 표현����������� ������������������
고차원����������� ������������������ ����������� ������������������ 정보����������� ������������������
PCA����������� ������������������ 주성분����������� ������������������ 및����������� ������������������ ����������� ������������������ 정보별����������� ������������������ 가중치����������� ������������������
고차원����������� ������������������ ����������� ������������������ 정보����������� ������������������ 고차원����������� ������������������ ����������� ������������������ 정보����������� ������������������ 고차원����������� ������������������ ����������� ������������������ 정보����������� ������������������
가공된����������� ������������������ 정보����������� ������������������ 가공된����������� ������������������ 정보����������� ������������������ 가공된����������� ������������������ 정보����������� ������������������ 저차원����������� ������������������ 정보����������� ������������������
PCA����������� ������������������ (Principle����������� ������������������ Component����������� ������������������ Analysis)����������� ������������������
Projection����������� ������������������
• 입력����������� ������������������ 얼굴이미지����������� ������������������ – 픽셀����������� ������������������ 개수만큼의����������� ������������������ 차원����������� ������������������ ����������� ������������������ 너무����������� ������������������ 많은����������� ������������������ 정보����������� ������������������ ����������� ������������������ ����������� ������������������
• PCA를����������� ������������������ 통해����������� ������������������ 주성분(고유성분)을����������� ������������������ 계산����������� ������������������
• 얼굴공간(face����������� ������������������ space)에����������� ������������������ 대한����������� ������������������ 프로젝션����������� ������������������ – 각����������� ������������������ 입력����������� ������������������ 얼굴이미지에����������� ������������������ 대해,����������� ������������������ 주성분들에����������� ������������������ 대한����������� ������������������ 가중치를����������� ������������������ 구하는����������� ������������������ 것����������� ������������������
• 입력����������� ������������������ 얼굴이미지는����������� ������������������ 주성분들의����������� ������������������ 선형식으로����������� ������������������ 재구성����������� ������������������ 가능����������� ������������������ – 주성분들에����������� ������������������ 대한����������� ������������������ 가중치를����������� ������������������ 이용한����������� ������������������ weighted����������� ������������������ sum����������� ������������������
PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식����������� ������������������
PCA����������� ������������������
고유성분����������� ������������������ 얼굴(eigen����������� ������������������ face)����������� ������������������
입력����������� ������������������ 얼굴이미지����������� ������������������
입력얼굴이미지의����������� ������������������ ����������� ������������������ 고유얼굴별����������� ������������������ 가중치����������� ������������������ ����������� ������������������
1
→
W 2
→
W 3
→
W 4
→
W
7
→
W5
→
W 8
→
W
9
→
W 12
→
W
13
→
W 14
→
W 15
→
W 16
→
W
6
→
W
10
→
W 11
→
W
PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식����������� ������������������
Projection����������� ������������������ to����������� ������������������ face����������� ������������������ space����������� ������������������
pixel����������� ������������������ space����������� ������������������
• 모듈1����������� ������������������ :����������� ������������������ 공분산����������� ������������������ 행렬����������� ������������������ 계산����������� ������������������ – 얼굴이미지����������� ������������������ 픽셀����������� ������������������ 단위의����������� ������������������ 정보에����������� ������������������ 대한����������� ������������������ 공분산을����������� ������������������ 계산����������� ������������������ ����������� ������������������ – 각각����������� ������������������ 계산된����������� ������������������ 픽셀단위의����������� ������������������ 정보를����������� ������������������ 이미지����������� ������������������ 단위로����������� ������������������ 누적합����������� ������������������
• 모듈2����������� ������������������ :����������� ������������������ Jacobi����������� ������������������ method����������� ������������������ – 고유����������� ������������������ 벡터를����������� ������������������ 계산����������� ������������������
PCA����������� ������������������ 얼굴인식����������� ������������������ 알고리즘����������� ������������������ 주요모듈����������� ������������������
Covariance Matrix
Computation����������� ������������������
Eigen value Computation (Jacobi met
hod)����������� ������������������
Eigenface Computation����������� ������������������
Projecting to Subspace����������� ������������������
training images����������� ������������������
covar. matrix����������� ������������������
eigen value����������� ������������������
eigen vector����������� ������������������
eigenfaces����������� ������������������
Face DB����������� ������������������ weights����������� ������������������
1����������� ������������������ 2����������� ������������������
4����������� ������������������
Training����������� ������������������
3����������� ������������������
• 모듈3����������� ������������������ :����������� ������������������ 고유성분����������� ������������������ 얼굴����������� ������������������ 구성����������� ������������������ – 학습하는����������� ������������������ 얼굴����������� ������������������ 정보를����������� ������������������ 고유벡터와����������� ������������������ 곱을����������� ������������������ 통해����������� ������������������ 계산����������� ������������������ – 고유벡터의����������� ������������������ 수����������� ������������������ 만큼의����������� ������������������ 고유성분����������� ������������������ 얼굴����������� ������������������ 생성����������� ������������������
• 모듈4����������� ������������������ :����������� ������������������ 얼굴공간으로의����������� ������������������ 프로젝션����������� ������������������ – 입력되는����������� ������������������ 얼굴이미지를����������� ������������������ 고유성분얼굴로����������� ������������������ 구성된����������� ������������������ 얼굴공간으로����������� ������������������ 프로젝션����������� ������������������
PCA����������� ������������������ 얼굴인식����������� ������������������ 알고리즘����������� ������������������ 주요모듈����������� ������������������
Covariance Matrix
Computation����������� ������������������
Eigen value Computation (Jacobi met
hod)����������� ������������������
Eigenface Computation����������� ������������������
Projecting to Subspace����������� ������������������
training images����������� ������������������
covar. matrix����������� ������������������
eigen value����������� ������������������
eigen vector����������� ������������������
eigenfaces����������� ������������������
Face DB����������� ������������������ weights����������� ������������������
1����������� ������������������ 2����������� ������������������
4����������� ������������������
Training����������� ������������������
3����������� ������������������
식별할����������� ������������������ 이미지����������� ������������������
식별����������� ������������������ 결과����������� ������������������
C
B
A
D
A’
B’
C’
E’
PCA����������� ������������������ 얼굴인식(식별)����������� ������������������ 알고리즘����������� ������������������
Face DB����������� ������������������
Projecting to Subspace����������� ������������������ testing images����������� ������������������
4����������� ������������������ Finding the Ne
arest����������� ������������������
Testing����������� ������������������
• 오분류를����������� ������������������ 줄이기����������� ������������������ 위해서는����������� ������������������ 더����������� ������������������ 많은����������� ������������������ 얼굴이미지를����������� ������������������ 학습����������� ������������������ ����������� ������������������ 많은����������� ������������������ 시간이����������� ������������������ 소요����������� ������������������ ����������� ������������������ 가속의����������� ������������������ 필요성����������� ������������������
• 입력����������� ������������������ :����������� ������������������ 얼굴이미지����������� ������������������ • 출력����������� ������������������ :����������� ������������������ 얼굴이미지들간의����������� ������������������ 공분산(����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������ • 수식����������� ������������������
– Ф����������� ������������������ =����������� ������������������ Γ����������� ������������������ –����������� ������������������ Ψ����������� ������������������ (이미지와����������� ������������������ 평균����������� ������������������ 이미지의����������� ������������������ 차이)����������� ������������������ – C����������� ������������������ =����������� ������������������ 공분산����������� ������������������ 행렬����������� ������������������ (N����������� ������������������ x����������� ������������������ N)����������� ������������������
• 복잡도����������� ������������������ :����������� ������������������ ����������� ������������������ O(����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������ ����������� ������������������ ����������� ������������������ -����������� ������������������ N����������� ������������������ =����������� ������������������ 얼굴이미지����������� ������������������ 수,����������� ������������������ P����������� ������������������ =����������� ������������������ 이미지����������� ������������������ 픽셀수����������� ������������������
모듈1����������� ������������������ :����������� ������������������ 공분산����������� ������������������ 행렬계산����������� ������������������
Tjiij P
C )()(1
Ψ−Γ⋅Ψ−Γ=
PN 2
2N
• 입력����������� ������������������ :����������� ������������������ 얼굴이미지들간의����������� ������������������ 공분산����������� ������������������ 행렬����������� ������������������ • 출력����������� ������������������ :����������� ������������������ 고유벡터(����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������
– M����������� ������������������ =����������� ������������������ 고유벡터의����������� ������������������ 수 ����������� ������������������ ����������� ������������������
• 계산����������� ������������������ – Jacobi����������� ������������������ eigenvalue����������� ������������������ method����������� ������������������
• 복잡도����������� ������������������ :����������� ������������������ O(����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������
모듈2����������� ������������������ :����������� ������������������ Jacobi����������� ������������������ method����������� ������������������
3N
M
• 입력����������� ������������������ :����������� ������������������ 얼굴이미지,����������� ������������������ 고유벡터����������� ������������������ • 출력����������� ������������������ :����������� ������������������ 고유성분����������� ������������������ 얼굴(����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������ • 수식����������� ������������������
– u����������� ������������������ =����������� ������������������ 고유성분얼굴,����������� ������������������ ����������� ������������������ v����������� ������������������ =����������� ������������������ 고유벡터����������� ������������������ ����������� ������������������ – Ψ����������� ������������������ =����������� ������������������ 평균얼굴����������� ������������������ 이미지,����������� ������������������ ����������� ������������������ Γ����������� ������������������ =����������� ������������������ 얼굴����������� ������������������ 이미지����������� ������������������ – N����������� ������������������ =����������� ������������������ 학습하는����������� ������������������ 얼굴이미지의����������� ������������������ 수����������� ������������������
• 복잡도����������� ������������������ :����������� ������������������ O����������� ������������������ (����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������
모듈3����������� ������������������ :����������� ������������������ 고유성분����������� ������������������ 얼굴����������� ������������������ 구성����������� ������������������
∑=
Ψ−Γ=N
kkmkm vu
1
)(
NMP
MP
• 입력����������� ������������������ :����������� ������������������ 얼굴이미지,����������� ������������������ 고유성분����������� ������������������ 얼굴����������� ������������������ • 출력����������� ������������������ :����������� ������������������ 얼굴공간에서����������� ������������������ 사용되는����������� ������������������ 가중치(����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������ • 수식����������� ������������������
– u����������� ������������������ =����������� ������������������ 고유성분����������� ������������������ 얼굴,����������� ������������������ Γ����������� ������������������ =����������� ������������������ 얼굴����������� ������������������ 이미지,����������� ������������������ Ψ����������� ������������������ =����������� ������������������ 평균얼굴����������� ������������������ 이미지����������� ������������������ ����������� ������������������ ����������� ������������������
• 복잡도����������� ������������������ :����������� ������������������ O����������� ������������������ (����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ )����������� ������������������ ����������� ������������������
모듈4����������� ������������������ :����������� ������������������ 얼굴공간으로의����������� ������������������ 프로젝션����������� ������������������
)( Ψ−Γ⋅= nTmnm uw
NMP
NM
• PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식기����������� ������������������ – 얼굴인식����������� ������������������ 개요����������� ������������������ – 주요����������� ������������������ 모듈의����������� ������������������ 병렬성����������� ������������������
• GPU와����������� ������������������ 병렬프로그래밍����������� ������������������ – CUDA����������� ������������������ – OpenCL����������� ������������������
• GPU����������� ������������������ 기반����������� ������������������ 얼굴인식기의����������� ������������������ 설계����������� ������������������ – 매핑����������� ������������������ – 동기화����������� ������������������
• 실험결과����������� ������������������ 및����������� ������������������ 결론����������� ������������������
목차����������� ������������������
• Graphics����������� ������������������ Processing����������� ������������������ Unit����������� ������������������ – CPU에����������� ������������������ 비해����������� ������������������ 캐쉬의����������� ������������������ 크기를����������� ������������������ 줄이고,����������� ������������������ 다수의����������� ������������������ 코어를����������� ������������������ 집적����������� ������������������ – 데이터����������� ������������������ 병렬성에����������� ������������������ 적합����������� ������������������ – Throughput����������� ������������������ Computing����������� ������������������ – 계층적인����������� ������������������ 병렬����������� ������������������ 구조����������� ������������������
• GPGPU����������� ������������������ (General����������� ������������������ Purpose����������� ������������������ GPU)����������� ������������������ – GPU를����������� ������������������ 프로그래밍을����������� ������������������ 통해서����������� ������������������ 범용적으로����������� ������������������ 사용����������� ������������������ 가능����������� ������������������ – CUDA,����������� ������������������ OpenCL����������� ������������������ 등����������� ������������������ C기반����������� ������������������ 병렬프로그래밍����������� ������������������ 프레임워크����������� ������������������ 사용����������� ������������������
GPU����������� ������������������ 구조����������� ������������������
SM����������� ������������������ (Shared����������� ������������������ Multiprocessor)����������� ������������������
GTX����������� ������������������ 480����������� ������������������ 구조����������� ������������������
GPU����������� ������������������ 구조����������� ������������������ (GTX480)����������� ������������������
SP����������� ������������������ ����������� ������������������ (Streaming����������� ������������������ Processor����������� ������������������ =CUDA����������� ������������������ core)����������� ������������������
GPU����������� ������������������ 구조����������� ������������������
SM����������� ������������������
공유����������� ������������������ 메모리(shared����������� ������������������ memory)����������� ������������������ SM내에서����������� ������������������ 수행되는����������� ������������������ 쓰레드들간의����������� ������������������ 자료����������� ������������������ 공유,����������� ������������������ 동기화����������� ������������������
• Compute����������� ������������������ Unified����������� ������������������ Device����������� ������������������ Architecture����������� ������������������ – NVIDIA의����������� ������������������ GPU를����������� ������������������ 위한����������� ������������������ C����������� ������������������ 기반����������� ������������������ 병렬����������� ������������������ 프로그래밍����������� ������������������ 프레임워크����������� ������������������ – 컴파일러,����������� ������������������ 라이브러리,����������� ������������������ 디바이스����������� ������������������ 드라이버����������� ������������������
• Kernel����������� ������������������ – GPU에서����������� ������������������ 병렬로����������� ������������������ 수행되는����������� ������������������ 함수����������� ������������������
CUDA����������� ������������������
//serial code (host)
. . .
. . .
//parallel code in kernel (device) KernelA<<< nBlk, nThr >>> (args);
//serial code (host)
//parallel code = kernel (device) KernelB<<< nBlk, nThr >>>(args);
Thread����������� ������������������ block����������� ������������������
Threads����������� ������������������
• Open����������� ������������������ Compute����������� ������������������ Language����������� ������������������ – 다양한����������� ������������������ 종류의����������� ������������������ 멀티코어/매니코어����������� ������������������ 디바이스를����������� ������������������ 위한����������� ������������������ C����������� ������������������ 기반����������� ������������������ 병렬����������� ������������������ 프로그래밍����������� ������������������ 프레임워크����������� ������������������
– 이종����������� ������������������ (heterogeneous)����������� ������������������ 시스템의����������� ������������������ 병렬프로그래밍을����������� ������������������ 위한����������� ������������������ 표준����������� ������������������
OpenCL����������� ������������������ ����������� ������������������
SP����������� ������������������
SM����������� ������������������ GPU����������� ������������������
• PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식기����������� ������������������ – 얼굴인식����������� ������������������ 개요����������� ������������������ – 주요����������� ������������������ 모듈의����������� ������������������ 병렬성����������� ������������������
• GPU와����������� ������������������ 병렬프로그래밍����������� ������������������ – CUDA����������� ������������������ – OpenCL����������� ������������������
• GPU����������� ������������������ 기반����������� ������������������ 얼굴인식기의����������� ������������������ 설계����������� ������������������ – 매핑����������� ������������������ – 동기화����������� ������������������
• 실험결과����������� ������������������ 및����������� ������������������ 결론����������� ������������������
목차����������� ������������������
• Thread����������� ������������������ block����������� ������������������ =>����������� ������������������ 연산을����������� ������������������ SM으로����������� ������������������ 수행����������� ������������������ • Thread����������� ������������������ =>����������� ������������������ 연산을����������� ������������������ SP로����������� ������������������ 수행����������� ������������������
• 기본적으로����������� ������������������ 하나의����������� ������������������ 쓰레드����������� ������������������ 블록에서����������� ������������������ 다수의����������� ������������������ 쓰레드가����������� ������������������ 수행되어야����������� ������������������ 가속이����������� ������������������ 이루어질����������� ������������������ 수����������� ������������������ 있음����������� ������������������
• 극단적으로����������� ������������������ 두가지����������� ������������������ 매핑이����������� ������������������ 존재함����������� ������������������ – 매핑����������� ������������������ 1����������� ������������������ :����������� ������������������ 하나의����������� ������������������ 쓰레드에����������� ������������������ 하나의����������� ������������������ 픽셀����������� ������������������ 작업����������� ������������������ 할당����������� ������������������ – 매핑����������� ������������������ 2����������� ������������������ :����������� ������������������ 하나의����������� ������������������ 쓰레드에����������� ������������������ 하나의����������� ������������������ 얼굴이미지����������� ������������������ 작업����������� ������������������ 할당����������� ������������������
매핑(Mapping)����������� ������������������
• 동기화����������� ������������������ ����������� ������������������ – 쓰레드들의����������� ������������������ 연산결과를����������� ������������������ 하나로����������� ������������������ 모아야����������� ������������������ 하는����������� ������������������ 경우에����������� ������������������ 필요����������� ������������������ – 예)����������� ������������������ 합����������� ������������������ 리덕션����������� ������������������ (sum����������� ������������������ reduction)����������� ������������������ – 매핑����������� ������������������ 방법에����������� ������������������ 따라����������� ������������������ 동기화가����������� ������������������ 필요할����������� ������������������ 수����������� ������������������ 있음����������� ������������������
• 합����������� ������������������ 리덕션의����������� ������������������ 구현����������� ������������������ 예����������� ������������������
매핑(Mapping)����������� ������������������
+ + + +
+ +
+
step����������� ������������������ 1����������� ������������������
step����������� ������������������ 2����������� ������������������
step����������� ������������������ 3����������� ������������������
• 매핑����������� ������������������ 1����������� ������������������
매핑(Mapping)����������� ������������������
1����������� ������������������ 픽셀����������� ������������������
픽셀단위����������� ������������������ 연산����������� ������������������
일반적으로����������� ������������������ 이미지의����������� ������������������ 수가����������� ������������������ 적고����������� ������������������ 픽셀의����������� ������������������ 크기가����������� ������������������ 클����������� ������������������ 때����������� ������������������
장점:����������� ������������������ 병렬성이����������� ������������������ 높다����������� ������������������ 단점:����������� ������������������ 쓰레드간����������� ������������������ 동기화����������� ������������������ 필요����������� ������������������
매핑(Mapping)����������� ������������������
• 매핑����������� ������������������ 2����������� ������������������
이미지����������� ������������������ 단위����������� ������������������ 작업����������� ������������������
일반적으로����������� ������������������ 이미지의����������� ������������������ 수가����������� ������������������ 많고����������� ������������������ 픽셀의����������� ������������������ 크기가����������� ������������������ 작을����������� ������������������ 때����������� ������������������ 적용����������� ������������������
장점����������� ������������������ :����������� ������������������ 동기화가����������� ������������������ 필요없음����������� ������������������ 단점����������� ������������������ :����������� ������������������ 픽셀����������� ������������������ 단위����������� ������������������ 병렬성����������� ������������������ 없음����������� ������������������
• 일반적 매핑
매핑(Mapping)����������� ������������������
하나의����������� ������������������ 쓰레드가����������� ������������������ k개����������� ������������������ 만큼의����������� ������������������ 픽셀들을����������� ������������������ 담당����������� ������������������ (1<=����������� ������������������ k����������� ������������������ <=����������� ������������������ P)����������� ������������������ ����������� ������������������ ����������� ������������������
• 쓰레드����������� ������������������ 블록����������� ������������������ – 얼굴이미지����������� ������������������ 한����������� ������������������ 쌍����������� ������������������ ����������� ������������������ 총����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 개의����������� ������������������ 쓰레드����������� ������������������ 블록����������� ������������������ 필요����������� ������������������
• 쓰레드����������� ������������������ – 한����������� ������������������ 얼굴이미지����������� ������������������ 중����������� ������������������ 일정����������� ������������������ 개수의����������� ������������������ 픽셀들����������� ������������������ – 내적����������� ������������������ (dot����������� ������������������ product)를����������� ������������������ 계산����������� ������������������
����������� ������������������ ����������� ������������������
공분산����������� ������������������ 행렬계산����������� ������������������ -����������� ������������������ 모듈1����������� ������������������
내적����������� ������������������ 계산����������� ������������������
하나의����������� ������������������ 쓰레드����������� ������������������ 블록에서����������� ������������������ 이루어지는����������� ������������������ 연산����������� ������������������
서브����������� ������������������ 공분산1����������� ������������������
서브����������� ������������������ 공분산2����������� ������������������
서브����������� ������������������ 공분산4����������� ������������������
서브����������� ������������������ 공분산3����������� ������������������
서브����������� ������������������ 공분산5����������� ������������������
서브����������� ������������������ 공분산6����������� ������������������
서브����������� ������������������ 공분산7����������� ������������������
서브����������� ������������������ 공분산8����������� ������������������
서브����������� ������������������ 공분산9����������� ������������������
서브����������� ������������������ 공분산10����������� ������������������
합����������� ������������������ 리덕션����������� ������������������ 공분산����������� ������������������
2N
• 쓰레드����������� ������������������ 블록����������� ������������������ – 고유얼굴����������� ������������������ ����������� ������������������ 총����������� ������������������ 고유벡터의����������� ������������������ 수만큼����������� ������������������ 쓰레드����������� ������������������ 블록����������� ������������������ 필요����������� ������������������
• 쓰레드����������� ������������������ – 한����������� ������������������ 얼굴이미지����������� ������������������ 중����������� ������������������ 일정����������� ������������������ 개수의����������� ������������������ 픽셀들����������� ������������������
• 동기화����������� ������������������ – N장의����������� ������������������ 입력����������� ������������������ 얼굴이미지들에����������� ������������������ 대한����������� ������������������ 계산����������� ������������������ 결과를����������� ������������������ 누적하여����������� ������������������ 고유얼굴을����������� ������������������ 계산����������� ������������������
고유성분����������� ������������������ 얼굴����������� ������������������ 구성����������� ������������������ –����������� ������������������ 모듈3����������� ������������������
하나의����������� ������������������ 쓰레드����������� ������������������ 블록에서����������� ������������������ 이루어지는����������� ������������������ 연산����������� ������������������
순차적으로����������� ������������������ ����������� ������������������ 누적����������� ������������������
• 쓰레드����������� ������������������ 블록����������� ������������������ – 얼굴이미지����������� ������������������ 한����������� ������������������ 장과����������� ������������������ 고유얼굴����������� ������������������ 하나에����������� ������������������ 대한����������� ������������������ 연산����������� ������������������ – 총����������� ������������������ N����������� ������������������ x����������� ������������������ M����������� ������������������ 개의����������� ������������������ 쓰레드����������� ������������������ 블록����������� ������������������ 필요����������� ������������������
• 쓰레드����������� ������������������ – 일정 개수의 픽셀에 대해 내적 계산
고유얼굴����������� ������������������ 정보로����������� ������������������ 매핑����������� ������������������ –����������� ������������������ 모듈4����������� ������������������
서브����������� ������������������ 가중치����������� ������������������ 1����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 2����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 3����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 4����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 5����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 6����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 7����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 8����������� ������������������ 서브����������� ������������������ 가중치����������� ������������������ 9����������� ������������������
W내적����������� ������������������ 계산����������� ������������������ 합����������� ������������������ 리덕션����������� ������������������
하나의����������� ������������������ 쓰레드����������� ������������������ 블록에서����������� ������������������ 이루어지는����������� ������������������ 연산����������� ������������������
• PCA를����������� ������������������ 이용한����������� ������������������ 얼굴인식기����������� ������������������ – 얼굴인식����������� ������������������ 개요����������� ������������������ – 주요����������� ������������������ 모듈의����������� ������������������ 병렬성����������� ������������������
• GPU와����������� ������������������ 병렬프로그래밍����������� ������������������ – CUDA����������� ������������������ – OpenCL����������� ������������������
• GPU����������� ������������������ 기반����������� ������������������ 얼굴인식기의����������� ������������������ 설계����������� ������������������ – 매핑����������� ������������������ – 동기화����������� ������������������
• 실험결과����������� ������������������ 및����������� ������������������ 결론����������� ������������������
목차����������� ������������������
작업
실행시간(ms) 속도이득
C Portion(%) CUDA (kernel)
CUDA (kernel + memory)
Portion(%) C/CUDA (kernel)����������� ������������������
C/CUDA (kernel + memory)����������� ������������������
모듈1 9,201 22% 92 159 16% 100X 58X
모듈3 15,858 38% 268 332 34% 59X 48X
모듈4 16,477 39% 203 254 26% 81X 65X 모듈 (1+3+4) 41,535 99% 562 745 76% 74X 56X
전체 응용시간 41,776 987 52X 42X
고화질����������� ������������������ DB����������� ������������������ (190장)����������� ������������������ ����������� ������������������
DB����������� ������������������ :����������� ������������������ Caltech����������� ������������������ DB(픽셀����������� ������������������ 320X400)����������� ������������������ ����������� ������������������ 학습하는����������� ������������������ 이미지����������� ������������������ 수����������� ������������������ :����������� ������������������ 190,����������� ������������������ 쓰레드당����������� ������������������ 할당하는����������� ������������������ 픽셀의����������� ������������������ 수����������� ������������������ :����������� ������������������ 500����������� ������������������
작업
실행시간(ms) 속도이득
C Portion(%) CUDA (kernel)
CUDA (kernel + memory)
Portion(%) C/CUDA (kernel)����������� ������������������
C/CUDA (kernel + memory)����������� ������������������
모듈1 33,124 22% 331 403 11% 100X 82X
모듈3 57,249 38% 954 1,077 28% 60X 53X
모듈4 59,607 39% 735 851 22% 81X 70X 모듈 (1+3+4) 149,980 99% 2,019 2,331 61% 74X 64X
전체 응용시간 151,466 3,821 43X 39X
DB����������� ������������������ :����������� ������������������ Caltech����������� ������������������ DB(픽셀����������� ������������������ 320X400)����������� ������������������ ����������� ������������������ 학습하는����������� ������������������ 이미지����������� ������������������ 수����������� ������������������ :����������� ������������������ 360,����������� ������������������ 쓰레드당����������� ������������������ 할당하는����������� ������������������ 픽셀의����������� ������������������ 수����������� ������������������ :����������� ������������������ 500����������� ������������������
고화질����������� ������������������ DB����������� ������������������ (360장)����������� ������������������ ����������� ������������������
작업
실행시간(ms) 속도이득
C Portion(%) CUDA (kernel)
CUDA (kernel + memory)
Portion(%) C/CUDA (kernel)
C/CUDA (kernel + memory)
모듈1 819 21% 11 60 14% 76X 14X
모듈3 1,403 35% 25 35 8% 55X 40X
모듈4 1,455 37% 17 43 10% 87X 34X 모듈 (1+3+4) 3,677 93% 53 138 32% 70X 27X
전체 응용시간 3,969 427 12X 9X
DB����������� ������������������ :����������� ������������������ AT&T����������� ������������������ DB(픽셀����������� ������������������ 92X112)����������� ������������������ ����������� ������������������ 학습하는����������� ������������������ 이미지����������� ������������������ 수����������� ������������������ :����������� ������������������ 200,����������� ������������������ 쓰레드당����������� ������������������ 할당하는����������� ������������������ 픽셀의����������� ������������������ 수����������� ������������������ :����������� ������������������ 40����������� ������������������
저화질����������� ������������������ DB����������� ������������������ (200장)����������� ������������������ ����������� ������������������
작업
실행시간(ms) 속도이득
C Portion(%) CUDA (kernel)
CUDA (kernel + memory)
Portion(%) C/CUDA (kernel)����������� ������������������
C/CUDA (kernel + memory)����������� ������������������
모듈1 3,261 19% 43 95 4% 76X 34X
모듈3 5,664 33% 95 113 5% 59X 50X
모듈4 5,895 35% 59 123 5% 100X 48X 모듈 (1+3+4) 14,820 87% 196 331 13% 75X 45X
전체 응용시간 16,999 2,492 7X 7X
DB����������� ������������������ :����������� ������������������ AT&T����������� ������������������ DB(픽셀����������� ������������������ 92X112)����������� ������������������ ����������� ������������������ 학습하는����������� ������������������ 이미지����������� ������������������ 수����������� ������������������ :����������� ������������������ 400,����������� ������������������ 쓰레드당����������� ������������������ 할당하는����������� ������������������ 픽셀의����������� ������������������ 수����������� ������������������ :����������� ������������������ 40����������� ������������������
저화질����������� ������������������ DB����������� ������������������ (400장)����������� ������������������ ����������� ������������������
결론����������� ������������������ ����������� ������������������
• PCA����������� ������������������ 기반의����������� ������������������ 얼굴인식����������� ������������������ 알고리즘을����������� ������������������ GPU를����������� ������������������ 이용하여����������� ������������������ 가속����������� ������������������ ����������� ������������������ – 입출력,����������� ������������������ Jacobi����������� ������������������ 모듈을����������� ������������������ 제외한����������� ������������������ 주요����������� ������������������ 모듈들을����������� ������������������ 모두����������� ������������������ 가속����������� ������������������ (최대����������� ������������������ 100배)����������� ������������������
– 전체����������� ������������������ 얼굴인식기(학습)에����������� ������������������ 걸리는����������� ������������������ 시간이����������� ������������������ 40배����������� ������������������ 정도����������� ������������������ 단축����������� ������������������ • 128K����������� ������������������ 입력화소의����������� ������������������ 얼굴이미지����������� ������������������ 400장����������� ������������������
• 얼굴이미지를����������� ������������������ 많이����������� ������������������ 사용할수록����������� ������������������ Jacobi����������� ������������������ 모듈도����������� ������������������ 병렬화가����������� ������������������ 향후����������� ������������������ 필요����������� ������������������
����������� ������������������ ����������� ������������������