전체 PDF 자료!
1. 문제의 발단
- 기존 프로젝트 개발을 클라우드 서버에서 Linux OS로 개발
- CUDA가 세팅 되어있는 가상 환경을 받아서 사용
- 개발 환경 세팅의 어려움없이 이용
- Windows OS PC에서 개발환경 설정 → 경로 오류 발생으로 개발 지연 발생
2. 사용된 하드웨어 스펙
- CPU: Intel i9-10850K
- GPU: NVIDIA GeForce RTX 3090
3. 문제해결을 위한 고민
- Windows OS에서도 동작 가능하도록 경로를 모두 수정하는 방법
- Linux OS의 가상머신(Virtual Machine)을 구축하는 방법
- WSL을 활용하여 Windows에서 Linux환경을 구축하는 방법
4. 문제해결 방법 선택
1. Windows OS에서도 동작 가능하도록 경로를 모두 수정하는 방법
=> 하드코딩 되어있는 부분이 많아 경로를 수정하는데 시간이 많이 소요
2. Linux OS의 가상머신(Virtual Machine)을 구축하는 방법
=> 가상머신 프로그램에서 Computing Cost가 과다하게 발생할 것으로 예상
3. WSL을 활용하여 Windows에서 Linux환경을 구축하는 방법
=> CUDA를 잘 설치할 수 있을까? 의문이 들었지만, 시도해보기로 결정!
5. WSL 설치 에러
- PowerShell에서 “wsl --install” 하면 설치가 됩니다!
- WSL (Windows Subsystem for Linux) 설치 오류 발생 !
- Error: 0x80370102 필요한 기능이 설치되어 있지 않아 가상 머신을 시작할 수 없습니다.
[참고URL]
○https://velog.io/@jaylnne/WSL-Error-0x80370102-해결
- Windows 기능 켜기/끄기 -> Linux용 Windows 하위 시스템, Hyper-V
-설치 하는 중 에러가 발생한다면 확인해야 할 것들!
- Windows 기능 켜기/끄기 -> Linux용 Windows 하위 시스템, Hyper-V
- 설치 하는 중 에러가 발생한다면 확인해야 할 것들!
- BIOS에서 가상화가 사용되고 있는지 확인
-BIOS에서 가상화가 사용되고 있는지 확인(추가 예시)
-SVM Mode 활성화로 변경 필요!
6. WSL 전용 그래픽 드라이버 설치
- Windows의 하위 시스템이므로 Windows에 설치된 그래픽 드라이버를 사용할 수 있을 줄 알았지만, 그것은 역시나 착각
- WSL 전용 그래픽 드라이버 설치 필요!!
[설치 링크]
https://www.nvidia.com/Download/index.aspx?lang=en-us
7. WSL 전용 CUDA 설치
- WSL 전용 CUDA 설치 필요!!
[참고 링크]
8. GPU 인식 실패
- WSL 전용 그래픽 드라이버와, WSL 전용 CUDA를 설치 했지만,
- 매뉴얼대로 설정했으나, 그래픽 카드가 인식 실패?
- 아무리 해도 안 돼서 쉴 겸..
- 로스트아크 실행해보니, 렉이 발생하는 것을 확인
- 컴퓨터 사양에 렉이 걸리는 것에 이상함 감지!
- 장치 관리자 디스플레이 어댑터 목록에 외장 그래픽 카드가 표시되지만 설정이 안 되는 것을 확인!
-본체 뒷면을 확인해보니, 모니터 선이 내장 그래픽 포트에 연결된 것을 확인!
-외장 그래픽 포트에 연결하니 정상적으로 작동!!
9. torch.cuda.fail, nvidia-smi 명령어 안됨 현상
- 이제는 될 때가 되지 않았니??
- 여전히 torch.cuda.fail, nvidia-smi 안됨 현상
- 에러 메시지
[폭풍 구글링 후 참고 링크]
-https://pbsquid.tistory.com/entry/WSL-Cuda-WSL-환경에서-실행하기-1-WSL에서-Cuda-사용
- Windows 업데이트가 필요하다!
- 업데이트 링크[웹에서 최신 업데이트가 필요합니다. 해당 링크를 활용하세요!]
10. torch.cuda.is_available() == True
-드디어 True!!
-느낀점
이렇게 다양한 에러를 경험했지만 끝까지 포기하지 않고 목표를 달성했습니다.
디버깅 과정을 상세히 기록하여 다음에도 활용할 수 있도록 했으며,
해당 문서가 다른 개발자 분들에게 도움이 되길 바랍니다.
이렇게 다양한 에러를 경험했지만 끝까지 포기하지 않고 목표를 달성했습니다.
디버깅 과정을 상세히 기록하여 다음에도 활용할 수 있도록 했으며,
해당 문서가 다른 개발자 분들에게 도움이 되길 바랍니다.
부록. CUDA Out of Memory 개선
- 같은 스펙의 PC에서 프로그램이 정상적으로 동작했는데,
- 다른 PC에서는 CUDA Out of memory 발생
- cuda pin memory = False
[참고 링크]
https://discuss.pytorch.org/t/when-to-set-pin-memory-to-true/19723
https://discuss.pytorch.org/t/using-pined-memory-causes-out-of-memory-error-even-though-batch-size-is-set-to-low-values/30602
https://cvml.tistory.com/24
https://discuss.pytorch.org/t/when-to-set-pin-memory-to-true/19723
https://discuss.pytorch.org/t/using-pined-memory-causes-out-of-memory-error-even-though-batch-size-is-set-to-low-values/30602
https://cvml.tistory.com/24
- cuda pin memory = False
연산을 빠르게 해주고, 미리 올려놓고 하는 방법으로 알고 있다.