지금은 2022년 5월 30일 화요일 새벽 5시 30분이다. 드디어 해냈다 ㅜㅜ
다시 포맷했다. 처음부터 다시 정리한다. 내가 결과적으로 얻은 교훈은 공식문서가 읽기 너무어려워도 제일 정확한 방법인 걸 꺠달았다.
OS: ubuntu 18.04 LTS
GPU: geforce 2060 super
진짜 고마운 실날같은 희망이다. 아래의 동영상에서 정말 많은 도움을 받았다. 앞선 cuda, cudnn설치를 할때 잘 되었지만 build과정에서 너무 고생을 했다. 명령어인식을 안됬는데 그 이유는 나중에 시간이 되면 해야겠고 지금은 cmake를 할때 gui환경에서 opencv를 build를 해서 해결했다.
https://www.youtube.com/watch?v=whAFl-izD-4
1. cuda설치
https://developer.nvidia.com/cuda-toolkit-archive
위 사이트에서 cuda를 설치했습니다.
여기서 11.3.0을 클릭합니다.
다음과 같이 체크합니다.
명령어를 한줄씩 입력합니다.
그러면 맨 마지막 명령어를 입력하면 secure boot 비밀번호를 입력해야하는데 숫자로 8개 입력했습니다.
그리고 reboot를 입력합니다.
그러면 위와 같은 화면이 나옵니다.
Enroll MOK -> View Key 0 -> ESC 클릭 -> Continue -> password: 아까 설정한 비밀번호 -> OK -> reboot
이렇게 하고 나서 nvidia-smi를 입력하면 그래픽카드도 인식하고 cuda설치가 완료된다.
(deb으로 명령어 방식으로 설치되면 이렇게 하면되고 runfile로 다운받아 실행 시 또 다른 방식으로 설치된다.)
위 두 방식으로 cuda의 버전을 확인할 수 있습니다.
2.cudnn 설치
사실 이부분에서 동영상의 방식이 지금까지 했던 방식과 많이 달랐고 이거 때문에 너무 좋았습니다.
-공식사이트
https://developer.nvidia.com/rdp/cudnn-download
로그인 하여 접속합니다.
맨 밑의 Archived cuDNN Releases클릭합니다.
8.2.0버전, CUDA 11.x를 클릭합니다.
여기서 18.04이므로 맨밑의 runtime부터 아래 3개를 다운받습니다. sample도 그냥 받았습니다.
nvidia폴더를 만들고 이 안에 다운 받은 3개의 파일을 전부 넣습니다. 그리고 전에 설치한 CUDA11.3.0도 그냥 넣습니다.
우클릭후 터미널에서 열기를 클릭합니다.
$ sudo dpkg -i 파일명
을 해서 압축파일을 바로 설치합니다. 위의 파일 이름수정을 해서 복붙한다음에 파일명에다가 복사해서 전부 명령어를 실행합니다.
3. opencv설치
opencv를 깃허브로 다운받을 예정이므로 git을 설치합니다.
$ sudo apt install git
https://github.com/opencv/opencv/tree/4.5.2
git clone 깃주소 입력합니다.
https://github.com/opencv/opencv_contrib
마찬가지로 contib도 git clone 깃주소를 입력합니다.
위와 같이 opencv폴더를 새로 만들고 안에 다운 받은 2개의 파일을 넣고 빈 폴더인 build를 만들어 줍니다.
그 다음 cmake-gui환경을 위해 프로그램을 설치합니다.
$ sudo apt install cmake cmake-gui
그리고 설정에 들어가 cmake 프로그램을 실행합니다.
위의 opencv 경로를 설정하고 congigure를 클릭합니다. 새로운 창이 뜰텐데 아무것도 수정안하고 finish를 누르면 위와 같은 화면이 나옵니다.
contrib경로 지정합니다.
위와 같이 표시가 안되고 세개 정도가 나올텐데 맨 밑의 opencv_dnn_cuda랑 with_cuda를 체크합니다.
python3경로를 지정합니다.
python3_EXECUTABLE 경로표시를 표시합니다. 이 경로로 수정합니다.
python3_INCLUDE_DIR 경로표시입니다. 맨위의 include 경로를 복사 후 입력합니다.
$ python3
$ from sysconfig import get_paths
$ from pprint import pprint
$ pprint(get_paths())
이렇게 차근차근히 경로를 찾아봅니다.
$ find / -name "libpython*" > out
$ less out
스크롤을 내리다 보면
위 같은 화면이 나오는데
/usr/lib/x86_64-linux-gnu/libpython3.6m.so
이와 같이 python3이고 뒤에 so로만 끝나는 것을 찾고 입력합니다. 이것이
python3_LIBRARY경로입니다.
또 다음입니다.
$ sudo apt-get install python3-pip
$ sudo apt-get install python-pip
를 해서 pip를 설치합니다.
$ sudo pip install numpy
$ find / -name "numpy" > out
$ less out
맨 아래의 경로를 복사합니다. 여기서 include까지만하고 뒤의 /numpy는 뺍니다. 이것이
python3_NUMPY_INCLUDE_DIR경로입니다.
그리고
python3_PACKAGES_PATH 경로입니다. 이것은 위의 경로에서 Packages까지 입력하고 뒤에 부분은 없앱니다.
이렇게 경로설정은 끝났습니다.
arch를 누릅니다.
https://en.wikipedia.org/wiki/CUDA
필자는 RTX 2060 SUPER이므로 7.5이고 turing입니다.
방금 arch_bin에 7.5를 적고
CUDA_GENERATION에 Turing을 선택합니다.
그리고 난 다음에 아래의 confgure, generate를 누릅니다.
그러면 이제 빌드를 하면 됩니다.
일단은
$ cat /proc/cpuinfo | grep processor
를 실행시켜 cpu의 코어 수를 확인합니다.
필자의 코어 수는 4개이므로
$ time make -j4
를 눌러 빌드합니다.
사진이 날라가서 동영상 사진으로 대체했습니다. 필자는 37분 정도 걸렸습니다.
그 다음
$ sudo make install
을 해서 opencv관련 패키지를 설치합니다.
다 설치하고 코드 실행했는데 패키지 설치를 안한 모습
'STUDY > YOLO' 카테고리의 다른 글
ubuntu 프젝과정 최종정리 (0) | 2022.06.06 |
---|---|
우분투 opencv 정리 (0) | 2022.06.04 |
우분투 그래픽드라이버 cuda cudnn (0) | 2022.05.28 |
우분투 yolo 환경구축 (0) | 2022.05.28 |
opencv with CUDA실행 (0) | 2022.05.25 |
댓글