[Azure] 딥러닝을 위한 가상 머신을 만들어보자

2023. 5. 6. 04:35클라우드 컴퓨팅

요즘 딥러닝 프레임워크 실습환경으로는 구글 코랩이 대세다. 아니... 요즘이 아니라 오래되었다

그런데 코랩은 흠... 파이썬이랑 tensorflow에 최적화 되어 있어서 나 같은 C# 유저에겐 사실 그림의 떡이기도 하다.

그래서 C# 친화적인 Azure 에서도 코랩과 비슷한 게 있는고 하고 검색해보니 그나마 적당한 게 하나 보여서 이에 대해 포스팅 해 볼 생각이다.

 

기본 아이디어는 별거 없다 그냥... 가상머신 하나 만드는데 가상머신 만들 때 GPU 최적화 된 가상머신으로 만드는 것 뿐...

그 이후에 그 환경에서 뭘 하든지는 호갱 마음

고로 일단 Azure에서 가상머신을 만들 줄 알아야 한다. 모른다면 아래 포스팅을 통해 실습 한번 하고 오자. 얼마 안 걸린다

 

[Azure] 애저 가상 머신을 만들어보자 - 기본 (tistory.com)

 

[Azure] 애저 가상 머신을 만들어보자 - 기본

이번 글에서는 아주 간단하게 애저 가상머신 만들어보도록 한다. 우선 Azure Portal 사이트로 이동한 후 아래와 같이 체험 계정 만들기를 클릭하자. 아래와 같이 계정을 만들 수 있는 창이 나타나는

forsoftwaredev.tistory.com

 

 

자 그럼 이제 딥러닝을 위해 GPU 최적화 된 가상머신 하나 만들어보도록 하자.

나머지는 위 포스팅이랑 다 똑같고 아래 내용만 다르다. 즉 나머지는 위 포스팅이랑 다 똑같이 해도 되는데 아래 내용만 다르게 해주면 된다.

 

 

우선 크기 항목에서 모든 크기 보기를 클릭한다.

 

 

그러면 아래처럼 나올텐데...

 

우린 GPU가 중요하므로 범용 형식은 볼 필요 없고 아래 쭉 ~ 내려서 N 시리즈를 클릭하도록 하자

그러면 아래 이미지처럼 2개 목록이 나올텐데... 두 개가 가격이 다르다

아래께 더 좋고 비싼거니깐 나처럼 가난한 서민들은 위를 추천하고, 만약 나 금수저야 우리 아부지 돈 많아 하면 아래껄 추천한다.

 

선택하면 아래처럼 NVxas_v4 가 나와야 올바르게 선택된거니 자신이 올바르게 선택했는지 꼭 다시 한번 확인하자

 

그 외에 나머지 모든 과정은 애저가상머신 만드는 포스팅과 같으니 그걸 참고하도록 하자...

참고로 배포 존나 느리니까 똥 한번 싸고 오도록 하자 갈길이 멀다...

.

 

 

자 가상머신을 만들고 나면 아래처럼 RDP를 통해 접속이 가능할텐데, 분명히 GPU 성능을 우선시 한 가상머신이라고 했는데 GPU-Z를 확인해보면 올바른 그래픽 카드 이름이 보이지 않는다...

 

필자가 만들고 있는 딥러닝 프레임워크로 GPU 리스트를 확인해봐도 안나온다.

 

이유는 드라이버가 제대로 설치되지 않은 것으로 드라이버를 설치해줘야 한다.

자 그럼 드라이버를 설치하기 위해 portal.azure.com 으로 가서 가상머신 설정화면으로 가서 아래 이미지처럼 확장프로그램 + 어플리케이션을 설치하도록 하자.

 

 

그럼 아래 화면이 나오는데 추가 버튼을 눌러주자.

 

 

그리고 아래처럼 AMD 드라이버 선택하고 다음 누르고 설치하면 된다.

 

 

그러면 아래처럼 배포 진행중 화면이 뜨는데... 이번엔 시간 그리 많이 안걸리니 우리 조루 친구들은 이틈에 야동 키고 물한번 빼고 와도 된다. 조루 친구들에겐 시간 충분하다.

 

 

배포가 완료되면 가상머신을 재시작해주자. 찾아갈줄 모르겠다면 상단 중앙 검색창에서 가상머신 검색하면 된다.

 

 

다시 시작 버튼이 비활성화되었다가 다시 활성화 되면 재부팅이 완료된 것이다. 다시 시작 버튼이 다시 활성화 된것이 보이면 RDP를 통해 접속해서 그래픽카드를 확인해보면 올바로 작동중임을 알 수 있다.

 

 

필자가 개발중인 딥러닝 프레임워크로 GPU 리스트를 확인해봐도 아래처럼 잘 나온다.

 

 

gfx900?? chat gpt 형에게 물어봤다.

 

 

그렇단다...

자 이제 마지막으로 해당 그래픽카드를 사용해서 필자가 개발중인 딥러닝 프레임워크로 10000 x 10000 행렬 계산에 GPU를 사용하는지 시간은 얼마나 걸리는지 테스트를 해보았다. 알다시피 GPU가 간단한 계산을 병렬로 수행하는데 최적화 되어 있다보니 행렬곱셈은 GPU로 계산하게끔 해두었다.

위 이미지를 보면 행렬곱 수행전엔 GPU 사용량이 5%대를 유지하다가 행렬곱 로직을 타면서 CPU 사용량은 큰 변화 없고 GPU 사용량이 95% ~ 100%를 왔다갔다 하는게 보인다.  사용중인 GPU 메모리 역시 한계치까지 올라갔고...

이걸 통해 CPU가 아닌 GPU로 행렬곱을 계산하고 있다는 걸 알 수 있다.

 

그리고 실행시간은 65초 좀 넘게 걸렸다 10000 x 10000 행렬 두개를 곱하는데 65초 좀 넘게 걸렸으니 괜찮은거 맞겠지

이렇게 GPU를 빌려서 딥러닝 프레임워크에 최적화 된 가상머신을 만들어보았다.

혹시나 필자처럼 C# 애호가가 있다면 이 방법을 추천한다.

 

아 그리고 중요한것!!!!!!!!!!!!!!!!!!!!!!!!!!

다 사용했으면 반드시 가상머신을 중지시키거나 삭제하도록 하자. 안그럼 비용청구되서 개인회생 신청하거나 한강 가야될수도 있다.

 

 

사실 중지시켜도 비용청구가 안되는지는 확실하지 않다. 그래서 Chat gpt 형에게 물어봤는데

 

 

그렇단다. 이 부분은 비용 분석을 통해 비용이 얼마나 올라가는지 확인해보면 될듯 하다. 필자 같은 경우는 2시간 가량 사용하고 550원 정도 청구됐다.