PyTorch를 이용한 머신러닝을 시작하시는 분들, 혹은 원래 데스크탑으로만 돌리다 노트북을 알아보시는 분들은 어느 노트북을, 더 나아가 맥북이 좋을지 윈도우 PC가 좋을지 고민하실 것 같습니다. 저렴한 노트북은 성능이 안될것이고 쓸만하다 싶으면 가격이 비싸기 때문에 한번에 선택하는 것이 쉽지 않은 선택이죠. 단순히 가격만 비싸다고 머신러닝을 더 잘 돌릴 수 있는 것도 아닙니다. 기계학습에 더 적합한 구성이 있으니 말이죠.
일반적으로 기계학습의 성능은 GPU의 성능이 가장 크게 좌우하고, NVidia GPU를 사용하는 CUDA 라이브러리를 활용하는 방식이 절대다수이기 때문에 사실상 NVidia 제품 라인업에 따라 성능차이를 예상할 수 있습니다. 그러나, 최근 애플이 애플 실리콘이라는 명칭으로 내놓은 자체 프로세서인 M1과 M2가 생각보다 머신러닝 성능이 우수하다는 평가가 많습니다. 새 프로세서가 소비전력도 인텔 CPU에 비해 월등이 낮은데, 성능까지 우수하다니 놀랍지 않을 수 없습니다.
이번 포스팅에서는 노트북 중에서도 NVidia GPU를 탑재한 노트북 중 성능으로 손에 꼽혔던 마이크로소프트 서피스북3 (Microsoft Surface Book 3)와 M2 Pro를 내장한 애플 맥북 프로 MacBook Pro로 동일한 PyTorch 기반 머신러닝 프로그램을 돌리며 확인한 성능 비교를 공유드리도록 하겠습니다.
참고로, 맥북의 MPS 가속화를 PyTorch에서 사용하는 방법에 대한 포스팅도 있으니 해당 기능이 필요하신 분들을 함께 참고하시면 좋을 것 같습니다.
Table of Contents
서피스북 3와 맥북 프로 – 스펙 비교
실제 성능 비교 테스트에 앞서 우선 두 노트북의 스펙을 간단히 비교해보도록 하겠습니다. 여러 스펙 중 머신러닝 성능에 가장 많이 영향을 미치는 요소는 GPU > CPU > RAM 순서로 볼 수 있겠습니다만, GPU가 절대적으로 가장 중요합니다.
서피스 북 3는 나온지 몇년 된 모델이지만, 서비스 최상위 라인의 가장 마지막 모델로 하이엔드에 속하는 것은 맞습니다. 다만 더 최근에 나온 Surface Laptop Studio 2가 더 우수한 GPU를 탑재하고 있긴 합니다. 두 노트북의 일반적인 GPU 벤치마킹상으로는 대략 60% 정도 더 빠른것으로 나옵니다. [출처]
한편, 가장 최신 Surface Laptop Studio 2와 M2 Pro MacBook Pro의 비교글이 있는데, 결과적으로 M2 Pro가 GPU 렌더링 성능이 더 우수했다는 내용이 있습니다. [출처]
Surface Book 3 (i7)
GPU | NVIDIA GeForce GTX 1660 TI |
GPU RAM | 6GB GDDR6 |
CPU | Intel Core i7-1065G7 Quad-core |
RAM | 32GB DDR4 |
MacBook Pro (M2 Pro)
GPU | 16-core GPU (16 Neural Engine Core) |
GPU RAM | 16GB LPDDR5 (Unified Memory) |
CPU | M2 Pro |
RAM | 16GB LPDDR5 (Unified Memory) |
애플이 새 프로세서를 만들면서 일반적으로 통용되던 프로세서와 메모리가 분리된 구조가 아닌 리소스를 서로 공유하는 구조로 변경하게 되면서 다른 PC와의 직접적인 스펙상 비교는 어려워졌습니다. 일반적인 PC는 CPU가 사용하는 RAM과 GPU용 RAM이 따로 있었지만, 애플 프로세서는 CPU/GPU/RAM 등 거의 모든 컴퓨팅 리소스가 한 칩에 모여있어 리소스 공유가 더 용이해졌습니다.
CPU의 경우 안그래도 클럭의 수치가 큰 의미가 없어지고 있었는데, Apple은 그 수치를 몰라도 될 정도 더 의미가 없어진 것 같습니다. 수치상으로 M2 Pro의 클럭속도는 1.4Ghz 이지만, 왠만한 3Ghz 이상의 CPU 보다 좋은 성능을 내기 때문입니다.
또, 머신러닝에 있어 CPU는 GPU가 데이터를 처리하기 전 전처리역할 정도만 하기 때문에 전체적으로 봤을 때 큰 영향을 미치는 요인은 아닙니다.
놀라운 점은 이미 잘 알려져있는 바와 같이 전력소모에 있습니다. 서피스북 3에 내장된 10세대 i7 프로세서의 소비전력은 최대 25W로 되어있고 GPU 전력은 별도로 합산해야 하지만, M2 Pro의 전력소모는 다 합쳐 15W 입니다. 물론 두 프로세서의 출시 시점에 차이가 좀 있어 그에 따른 공정기술도 달라진 것도 중요한 이유일 것 입니다.
PyTorch 학습 성능 비교
스펙을 뒤로하고 실제 학습 성능을 비교해보도록 하겠습니다. 비교는 두 시스템에서 모두 실행 가능한 동일한 Python 코드이며, PyTorch 공식 예제코드 중 Convolutional Neural Network를 이용하는 MNIST 데이터셋 Classification 예제를 사용하였습니다. 사용한 환경은 아래와 같습니다. [테스트 코드 링크]
Versions | Surface Book 3 | MacBook Pro |
---|---|---|
Python 버전 | 3.9.13 | 3.9.6 |
PyTorch 버전 | 2.1.2 | 2.3.0 |
GPU 가속화 | CUDA 11.8 | MPS |
기본 Epoch은 14회로 정해져있지만 테스트는 10번으로 설정하고 실행하였습니다. 각 Epoch의 학습시간과 시험시간을 구분하여 측정하여 정리하였습니다.
Training 시간 비교
각 Epoch의 학습 시간은 M2 Pro 맥북이 서피스북 보다 2배 이상 빠르게 측정되었습니다. 서피스북의 평균 학습시간은 약 18.05초, 맥북의 평균 학습시간은 약 8.11초 입니다.
Test 시간 비교
특이하게도 Training에 대한 Test 시간의 차이는 훨씬 더 크게 나타났습니다. 서피스북의 평균 시험시간은 약 5.21초, 맥북의 평균 시험시간은 약 0.56초 입니다.
같은 데이터의 시험시간이 학습시간에 비해 이렇게까지 많이 차이나는 것은 정확히는 모르겠지만 제가 유추해보기로는 시험 데이터의 전처리 및 데이터 전달이 모든 리소스가 한 칩에 모여있는 애플 프로세서가 더 유리하기 때문이지 않을까 합니다.
학습 과정에서의 전력소모
두 노트북의 차이는 성능 만큼이나 전력소모에서도 확인할 수 있었습니다. 서피스북의 스펙상 전력소모는 CPU와 GPU만 봤을 때 각 25W와 60W인데, 실제 학습을 돌려보면 서피스북에서 이보다는 낮게 소비전력을 조절하는 것 같습니다. 학습 과정에서 측정된 서피스북의 Load와 전력소모를 측정한 데이터 입니다.
학습이 진행되는 동안 GPU 전력소모는 대략 21W, CPU 전력소모는 대략 17W 정도로 유지되는 것으로 확인할 수 있었습니다. 이 둘만 합산하면 약 38W로 계산해 볼 수 있는데, 이는 M2 Pro 프로세서의 최대 전력소모인 15W의 두배가 넘는 것을 알 수 있습니다. 성능도 두배인데 전력소모는 절반도 되지 않으니 적어도 기계학습 성능에 있어 비교가 필요 없다고 결론지을 수 있을 것 같습니다.
당연히 이로인해 배터리 사용시간 역시 크게 영향을 받을 것이라고 예상해 볼 수 있습니다. 실제로, 각 노트북을 만충 후 충전케이블 제거 직후 동일한 학습과 시험을 완료한 후 배터리 잔량을 비교해보았습니다. 최대한 정확한 비교를 위해 인터넷은 연결하지 않고 가능한 모든 다른 프로세스는 종료하고 화면 밝기도 최저로 설정하여 테스트 해보았습니다.
서피스북은 잔량이 96% 였던 반면, 맥북은 표기상 100%를 유지했습니다. 머신러닝 특성상 대부분 전원을 연결하고 사용하겠지만, 혹시라도 외부에서 전원 없이 사용한다면 큰 차이를 가지게 되는 점 입니다.
결과에 대한 의견
앞에서도 잠시 적어본 바와 같이 요즘의 CPU나 GPU의 클럭 스피트는 더이상 결과적인 성능에 큰 의미가 없는 듯 싶습니다. 서피스북 3가 출시된지 몇 년 되긴 했어도 스펙상 아직 밀리는 PC는 아닌데다 전력소모도 큰 파워풀한 노트북인데, 가볍게 뛰어넘는걸 보면 역시 애플은 애플이라는 생각이 듭니다.
새로 노트북을 구입한다면 서피스북 외에도 더 최신 하이엔드 노트북인 서피스 랩탑 스튜디오 2 Surface Laptop Studio 2를 고려하는 것이 지금은 더 맞는 선택일 수 있습니다. 서피스북 3와 출시 가격이 비슷한 랩탑 스튜디오 2는 Mobile용 RTX 4050을 탑재하는데, 서피스북의 GTX 1660 Ti Max-Q 보다 벤치마크 성능은 더 높지만 그래도 M2 Pro 맥북을 넘을 정도는 아닌 듯 싶습니다. 위에서 공유드린 해외 블로그 글에서도 설명되어 있지만, 렌더링을 기준으로는 M2 Pro 맥북이 더 좋은 성능을 보이는 것 같습니다. 게다가 RTX 4050의 최대 전력소모는 80W로, 60W 인 GTX 1660 Ti Max-Q에 비해 전력소모가 더 적을 것 같지는 않습니다.
마무리
이번 포스팅에서는 M2 Pro 프로세서를 탑재한 맥북 프로와 NVidia GPU를 탑재한 하이엔드 윈도우즈 PC 서피스북 3의 PyTorch 학습 성능 비교에 대해 적어보았습니다. 가볍고 디자인만 신경 쓴 노트북인 것 처럼 보이기도 하는 맥북 프로의 성능이 너무나도 가볍게 서피스북 성능을 뛰어넘는 것은 거의 충격에 가까웠습니다.
위에 적어드린 내용을 정리하면, 머신러닝 용도로 사용할 노트북인데 윈도우일 필요가 없다면 맥북 프로를 선택하는 것이 좋은 선택일 수 있겠다는 의견을 드리며 이 포스팅을 마칩니다.