초보 개발자의 고사양 워크스테이션 YOLOv4 환경설정 삽질과 성공_800만원 짜리!?_RTX3090
최근 회사 업무를 위해 슈퍼 울트라 워크스테이션을 구입했습니다. 가격은 무려 800만원이며 그 중에 반이 GPU 값이었습니다. 아직 제대로 활용해보지도 못했지만 개발환경 세팅을 하며 느낀 소회를 남기고 싶어 글을 남깁니다. 워크스테이션 구입을 고민하신다면 참고할 수 있을 지도 아닐지도...
면허 시험 공부 한다니 아버지가 페라리를 사주셨다.
딥러닝 초보에겐 너무나 과분한 고사양의 워크스테이션은 마치 빨간색 페라리 같습니다. 아니 전용 제트기라고 할 수도 있을 것 같습니다. 당연히 몰 줄은 모릅니다. 키 꽂으면 시동 걸리고, 엑셀 밟으면 나가고 고속도로 타려면 톨게이트를 지나야 된다는거 정도는 알죠. 쏘카로 레이(구글코랩)를 여러번 몰아보긴 했으니까 생초보는 아닐 수도 있겠어요.
아무것도 모르는 상태에서 딥러닝 연구과제를 제안했습니다.
아이디어가 마음에 드셨는지, 연구원장님은 거침없이 추진을 허락하시며 이왕 시작하는거 장비는 제일 좋은놈으로 사라고 하시며 "대신 AI든 딥러닝이든 정확도는 100% 나와야 되는거 알쥐?" 라고 하시던 장면이 과제가 끝나가는 시점에서 갑자기 그때와는 다른 느낌으로 다가옵니다.
100% 정확도는 잘 모르겠지만 일단 장비는 정말 제일 좋을걸로 최선을 다해 뽑았습니다. 동료들과 다른 일 제쳐두고 머리를 싸매고 몇 일을 조사한 끝에 지금 워크스테이션의 견적을 받게 되었습니다. 그래픽 카드가 코인 채굴 때문에 가격이 많이 올랐다는건 들었지만 평소에 게임도 안하는 저로선 정말 상상을 초월하는 가격이었습니다.
어찌저찌 그렇게 울트라 캡짱 고성능 슈퍼 컴퓨터가 제 손에 들어오게 되었습니다.
아 이래서 비싼걸 사는구나!!
비싼 고급 장비들의 박스들은 정말이지 영롱하고 멋진 향기마저 나는 듯 했습니다.
그래 이거쥐!!!라고 생각했습니다. 조립을 하기 전까지는..
조립이 완성되고 부팅을 하는 순간 덩그라니 떠있는 윈도우10의 황량한 배경화면이 나타났습니다.
정말이지 그 황량한 느낌. 50만원 짜리의 배경화면과 다른게 하나도 없는 그저 황량한 창문 하나를 보며,
아, 나 개발 생초보였지
라는 생각이 머리를 때렸습니다. 명마가 있으면 뭐하나 좋은 기수가 없는데!! 나 달릴 수 있을까? 하는 생각이 저를 감싸며 막막함이 앞서더라구요. 그래도 원장님이 원하는 정확도 100%를 보여드려야 하기에..
페라리에 생명을 부여하기 위한 셋팅을 시작했습니다.
목표는 구글 코랩이닷!!
셋팅의 목표는 명확했습니다. 그 동안 써 오던 구글 코랩과 똑같은 환경을 구축해서 Seamless한 개발을 진행하자!였습니다.
이전 컴퓨터로 윈도우에 darknet을 설치 할 때의 그 복잡함과 머리아픔을 느낄바엔 익숙한 구글 코랩을 클론하는게 좋을 것 같다는 생각이었죠. 마침 개발자라면 무조건 리눅스지 라는 로망 같은게 있었구요.
구글 코랩의 사양을 분석해보고
수 많은 구글링을 통해
생에 첫 리눅스 설치를 알아보기 시작했습니다.
그리고 얼마 지나지 않아 윈도우10의 앱스토어에서 리눅스를 깔 수 있다는 걸 알게 되었죠!!
[개발초보] 나만 몰랐던 리눅스 OS 우분투를 윈도우에서 쉽게 돌리는 법_Ubuntu WSL
처음으로 리눅스를 설치하고 터미널을 설치해 ls, pwd, cd, mkdir 등 기초적인 명령어들을 쳐보며 엄청난 뿌듯함을 느꼈습니다. 세상을 다 가진것 같았죠.
하지만 곧 알게되었습니다. ubuntu WSL은 USB를 지원하지 않는 다는 사실을.. 즉 웹캠을 쓸 수 없는 것이었죠.
빠르게 포기하고 삭제한 후 다른 방법을 알아보았습니다.
Ubuntu 20.04 DUAL BOOT
그리고서 선택한 방향은 듀얼 부트 였습니다.
듀얼부트를 설치하며 정말 많은 방황을 했습니다. 초보자에겐 너무나 가혹한 일들의 연속이었습니다.
최종적으로 설치를 성공하며 내린 결론은
첫째, 모든 블로그가 성공한 사례를 공유한 것은 아니다.
둘째, 우분투는 생각보다 불안정하다.
셋째, 포맷 서너번은 기본.
첫째, 모든 블로그가 성공한 사례를 공유한 것은 아니다.
구글링으로 정말 많은 분들의 도움을 받았습니다. 저보다 먼저 비포장 도로를 걸어 가시고 많은 문제들의 해결법을 공유해주신 블로거분들은 저에게 신과 같은 존재였습니다. 하지만 신은 저에게 수차례 시련을 주었습니다.
제 블로그도 사실은 마찬가지 인 것 같습니다. 그 당시에는 이게 맞다고 작성한 포스팅이 지나고 나면 틀린걸 알게 되는 순간이 있습니다. 구글에 쌓여있는 글 들 중 많은 글들은 저에게 긴 방황을 안겨 주었습니다.
성공 사례라고 하더라도, 저와 환경이 맞지 않는 경우가 대다수였죠. 몇 번 실패를 하다보니 현타가 왔습니다. 내가 왜 네비도 없는 고성능 스포츠카를 샀을까? 그냥 적당한 그랜져를 샀어야 했나?
GTX3090과 호환성을 찾는 게 굉장히 어려웠습니다. 결국 처음 목표로 세웠던 구글 코랩과 같은 환경 구축이라는건 불가능하다는걸 뒤늦게야 알게 되었죠. 선례가 많고 호환이 좋은 적당한 기종을 뽑는 것도 현명한 선택이었을 거라는 생각을 했습니다.
둘째, 우분투는 생각보다 불안정하다.
초보자라면 정말 고민해봐야 합니다. 우분투를 설치하고서 윈도우를 쓸 때는 상상도 못하던 난관들이 많았습니다. 한글을 타이핑할 수 있게 하는 것 부터, 소소하게 손이 많이 가는 불편함들 투성이었습니다.
특히나 nvidia 그래픽카드 충돌 문제는 너무나 절망적이었습니다. 뭐가 잘못 된지 몰라 구글링의 나락에 빠져 몇 일을 헤맨 적도 있습니다. 툭하면 화면이 멈춰버린다거나, 부팅과 관련된 문제가 발생해 뭔가를 수정해주어야 된다던가 손이 계속 갑니다. 그렇다고 시스템에서 추천하는 RTX3090과 맞는 드라이버를 쓰자니 CUDA 버전을 맞추어줘야 되는 등 끊임 없는 태클에 지쳐갔습니다.
결국 네 번의 재설치 끝에 결국은 해결이 된 것 같습니다만 내일 어떻게 될지 모르는 이 찝찝한 기분은 여전히 남아있어요.
이 난관을 넘고 나면 체감되는 장점이 굉장히 많습니다. 앞으로 더 배워가야겠지만요.
셋째, 포맷 서너번은 기본.
우분투 환경설정을 한번에 성공한다면 정말 운이 좋은거라고 저는 생각하고 싶습니다. 왜냐면 전 아니었으니까..요..지식과 경험이 부족한 저는 해결할 수 없을 것 같은 포인트가 오거나, PATH나 Driver 버전이 복잡하게 꼬여버렸다고 생각이 들면 과감히 포기하고 재설치를 감행했습니다. 스트레스를 받지 않을 수 없는 순간들이었지만, 결론적으로 이 과정에서 정말 많이 배웠던 것 같습니다. 리눅스 시스템과 친해진 계기가 된 것 같아요. 어디를 조심히 만져야되는지, 뭘 만지면 어떻게 되는지 여러번 경험하며 싸우고 헤어지고 화해하며 더 가까워지게 됩니다. 애초에 공부하는 과정이다 라고 생각하고 시간을 넉넉하게 잡고 여러가지 시도해 보는게 속 편할 것 같습니다.
어떻게든 기록을 남기고 싶어 여러 포스팅을 남겼습니다. 그냥 넘어간 문제가 더 많긴 한 것 같아요. 지나고 보니 성공 사례는 아니었던 포스팅도 있는것 같아 조만간 수정을 해야겠습니다.
[문제해결] Linux Cudnn 설치 시 ldconfig.real: libcudnn.so.8 is not a symbolic link
[딥러닝첫걸음] CUDA 11.4, cuDNN 8.2.2 설치와 설치시 오류 해결 방법
[문제해결] OpenCV 4.5.3 우분투 빌드 결과 몇 가지 오류 발견 및 해결 방법 - 1
[문제해결] OpenCV 4.5.3 우분투 빌드 결과 몇 가지 오류 발견 및 해결 방법 - 2
[문제해결] OpenCV 4.5.3 우분투 빌드 결과 몇 가지 오류 발견 및 해결 방법 - 2
[우분투 듀얼부팅 설치] 윈도우 BIOS가 UEFI인지, Legacy인지 확인하는 방법
[문제해결] NUMA node read from SysFS had negative value -1
[문제해결] NUMA node read from SysFS had negative value -1
결국 최종 성공한 개발 환경
ubuntu 20.04 LTS Dual Boot
nvidia driver 460
CUDA 11.2
cuDNN 8.1.1
Python 3.8
Tensorflow-gpu 2.5.0
OpenCV 4.5.1
Darknet
결국 위와 같은 조합으로 성공했습니다. 이게 뭐라고 정말 오래 걸렸습니다. 하지만 첫 설치 실패 때보다 마지막 설치 성공 소요 시간이 거의 1/10으로 줄어 든 것 같습니다. 그 만큼 저도 조금이나마 성장했다는 위안을 얻습니다.
시작이 반이라는 말이 이래서 있나봅니다. 정말 엄청난걸 해낸 기분인데, 사실은 이제 시작입니다.
빨간 페라리가 최대 출력 내는 순간까지 화이팅 해봐야겠습니다.
환경설정에 대해 궁금한 점이 있으시다면 댓글을 남겨주세요.
저보다 초보시라면 친절히 답변 드리겠습니다.
감사합니다.