본문 바로가기

Tech/Machine Learning

Dlib Face Recognition에서 CUDA 가속하기

Face recognition 오픈소스 : https://github.com/ageitgey/face_recognition

 

Dlib을 이용하여 구현하였고,  CPU와 GPU를 둘다 지원한다. 

GPU 가속을 사용하기 위해서는 Dlib 빌드시에 GPU 옵션을 주고 해야한다.

 

1. Dlib을 git에서 다운로드 받는다

 

git clone https://github.com/davisking/dlib.git

 

2. 아래 명령어를 실행해서 Dlib을 빌드한다.

 

cd dlib

mkdir build; cd build; cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1; cmake --build .

 

-- Using CMake version: 3.5.1 
-- Compiling dlib version: 19.18.99 
-- Enabling AVX instructions 
-- Looking for cuDNN install... 
-- Found cuDNN: /usr/lib/x86_64-linux-gnu/libcudnn.so 
-- Building a CUDA test project to see if your compiler is compatible with CUDA... 
-- Checking if you have the right version of cuDNN installed. 
-- Enabling CUDA support for dlib.  DLIB WILL USE CUDA 
-- C++11 activated. 
-- Configuring done 
-- Generating done

실행 초반에 빨간색 하이라이트한 메세지가 나오지 않는다면 CUDA 설치나 cuDNN 설치에 문제가 있으므로 제대로 설치 후 다시 시도하자.

 

build .. 

python setup.py install

 

위와 같이 입력했을때 중간 메세지에 CUDA라는 메세지가 나오면 성공이다.

 

뭔가 시도하다가 에러나서 CUDA, cudnn 설치를 잘했는데도 계속 에러가 나면

build 디렉토리를 삭제하고 다시 빌드해보자.

 

참고로 700개가량 되는 얼굴에서 encoding 값을 뽑아내는데

 

CPU (1core)기준 : 38초

GPU 가속 기준 : 0.18초

 

I love GPU

 

 

[참고]

CUDA 설치확인

nvcc -version

 

cudnn 설치확인

cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2

 

컴파일에러날 경우 gcc와 g++를 6.0으로 업데이트

https://gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91