맥북 M4 Pro GPU의 딥러닝 성능 테스트
딥러닝 학습의 어려움
맥북 에어 M1을 매우 만족하며 잘 쓰고 있었다.
정말 가볍고, 배터리도 오래 가고, 딥러닝도 돌릴 정도로 성능도 좋았다.
그런데, 맥북 에어는 팬이 없어서, 딥러닝을 돌리면 고장 날까 겁날 정도로 본체가 어마 어마하게 뜨거워졌다.
그래서, 딥러닝을 돌릴 땐 아이스팩을 맥북 아래에 깔아 놓고 돌리곤 했다.
냉각 효과는 정말 확실했다.!!
그러다가, 이게 뭐하는 짓인가 싶어서…
딥러닝을 돌릴 땐, 클라우드 서비스를 이용해 보기로 했다
처음엔 Google Colab을 유료 결제해서 이용해 봤다
그런데 Google Colab은 잠시만 활동이 없어도 노트북과 연결이 끊기고,
인스턴스를 새로 시작할 때마다 로컬 저장 공간이 완전히 초기화되고,
파이썬 패키지를 다시 설치해야 하는 등 불편한 점이 많았다
그러다가 AWS Sagemaker를 알게 되었다
인스턴스를 한번 만들어 놓으면 저장 공간도 계속 유지되고,
CPU, GPU, 램 등 다양한 인스턴스 스펙을 제공하고,
저장 공간을 유지한 채, 하드웨어 스펙만 변경할 수 있다는 점이 매우 좋았다.
그러나 문제는 돈이다.
인스턴스를 실행되는 동안, 특히 GPU 인스턴스가 실행되는 동안,
청구금액이 쭉쭉 늘어나는 것이 보이니까 마음껏 쓰질 못한다.
필요한 것만 빨리 실행해 보고, 주피터 노트북을 로컬에 다운 받은 후 인스턴스를 삭제….
계속해서 마음을 졸이며 쓸 수 밖에 없었다.
맥북 프로(m4 Pro)를 구입하다
맥북 프로가 계속해서 눈에 밝혔다.
맥북 프로는 GPU도 더 많고, 팬이 있어서 냉각 성능도 더 뛰어날테니,
맥북 프로만 있으면 로컬에서 딥러닝 실습을 쾌적하게 할 수 있을텐데… 라고 생각하면서
그런데 맥북의 GPU는 mps라서 cuda 방식보다 딥러닝 학습에 비효율적이라는 글들을 많이 보게 되어서 마음이 걸렸다.
그러다가 M4 Pro 칩의 맥북 프로가 24년 12월에 출시된다는 것을 알게 되었다.
처음에는 맥북 프로를 살 것인가? 말 것인가?로 고민하다가…
맥북 프로 기본 모델(M4칩)을 살 것인가?
M4 Pro 칩 모델로 살 것인가? 로 고민하게 되었다…
그리고, 스페이스 블랙 색상으로 할 것안가?
애플 본연의 실버 색상으로 할 것인가?
진짜 보름 이상을, 장바구니에 이 모델 넣었다가 삭제하고, 저 모델 넣었다가 삭제하고… 반복하다가…
아래와 같이 구입하게 되었다!
구분 | 사양 |
---|---|
색상 | 스페이스 블랙 |
CPU | 12코어 |
GPU | 16코어 |
RAM | 24GB 통합 메모리 |
SSD | 512GB |
맥북 프로(M4 Pro 칩) GPU의 딥러닝 성능 테스트
맥북 프로가 생각보다 가볍고, 색상도 너무 너무 이뻐서 매우 만족하며 잘 쓰고 있었다
그러다가 pytorch를 공부하는 중에 CPU와 GPU간 성능 차이를 테스트하는 예제를 실습하게 되었다
당초 예제는 100 x 100 사이즈의 두 행렬의 행렬곱을 10,000번 시행하는 것이었는데
CPU나 GPU나 실행시간이 얼마 차이가 나지 않았다
Chat GPT한테 왜 이렇게 차이가 안 날까? 물어봤더니
행렬의 크기를 더 크게 해 보라고 한다
그래서 화끈하게 10,000 x 10,000 크기의 두 행렬간 행렬곱을 1,000번 시행하는 것을 실험해 보았다
우선 CPU로 테스트 하는데, 이건 뭐 끝날 기미가 안 보인다
인내심을 가지고 기다리다 보니, 699.5초(약 11.7분) 만에 끝났다
GPU는 최소한 CPU보다는 빨리 끝날테니, 마음 편하게 기다리다 보니, 363.9초(약 6분)만에 끝났다
맥북 CPU | 맥북 GPU | CPU/GPU |
---|---|---|
11.7분 | 6분 | 1.92 |
GPU가 CPU보다 빠르긴 한데, 생각보다는 덜 빠른 거 같다는 생각이 들었다
그러다가 AWS Sagemaker에서는 얼마나 차이가 날까? 하는 생각이 들었다
AWS Sagemaker GPU의 딥러닝 성능 테스트
인스턴스 사양은 기존에 사용하던 ml.g4dn.xlarge로 했다.
perplexity한테 물어보니 ml.g4dn.xlarge의 사양은 아래와 같다
구분 | 사양 |
---|---|
CPU | vCPU 2.5 GHz 4개 |
GPU | NVIDIA T4 Tensor Core 1개 |
RAM | 16GB |
GPU RAM | 16GB |
동일한 연산을 수행해 봤는데
CPU는 70분이 지나도 끝날 기미가 없어서 강제 종료
GPU는 441.8초 약 7.4분이 걸렸다.
구분 | AWS | 맥북 프로 |
---|---|---|
CPU | 측정 불가 (최소 75분 이상) | 11.7분 |
GPU | 7.4분 | 6분 |
결론
맥북 프로에서 CPU와 GPU 간에 생각보다 속도 차이가 얼마 나지 않는 것이 아니라
맥북 프로의 CPU 성능이 엄청나게 좋았다는 것을 알 수 있었다
그리고 맥북 GPU(mps)가 딥러닝에 그리 좋지 않다는 얘기를 많이 들었는데
맥북이 AWS보다 시간이 더 적게 걸려서 매우 만족스러웠다
그래도 AWS를 쓸 수 밖에 없는 상황도 있다
BERT 모델을 실습할 때 맥북 프로는 통합 메모리가 24기가임에도 불구하고 메모리 부족으로 강제 종료가 되었는데
AWS에서는 GPU 메모리 16기기에서 원활하게 잘 돌아가는 것을 확인할 수 있었다
그래도 대부분의 상황에서는 편안하게 맥북 프로에서 딥러닝 실습을 진행할 수 있다는 것을 확인할 수 있었던
기분 좋은 성능 테스트였다