Apple Silicon을 탑재한 M1 Pro에서의 딥 러닝
저의 새 Macbook Pro를 한 번 둘러보고 얼마나 잘 작동하는지 확인해 볼까요?
Created on April 22|Last edited on April 22
Comment
멋진 Apple Silicon이 탑재된 반짝이는 새 Mac 🍎를 구입하셨다면, 여러분은 "Python을 실행하고 딥 러닝 실험을 하기 위해 이 장비를 정확히 어떻게 설정해야 할까?" 궁금하실 겁니다. 그렇다면 운이 좋으시네요. 저희가 도와드리겠습니다. (참고로, M1Pro를 구입하거나 결과를 알고 싶다면 아래의 벤치마킹 섹션으로 이동하세요!)
✅ 새로운 Python용 Macbook Pro와 몇 가지 공통 라이브러리를 설정하는 방법
✅ Tensorflow를 Metal 백엔드와 함께 설치하여 GPU를 최대한 가속하는 방법
✅ M1Pro GPU에 대한 몇 가지 딥러닝 벤치마크! (스포일러 경고: 매우 유망해 보입니다.)
좋아요, 이제 알아보겠습니다.
Python 🐍을 새 Mac에 설치합니다.
먼저 터미널을 열고 Apple 개발자 도구를 설치해야 합니다. 그러려면 다음과 같이 입력하십시오.
git clone some_repo_of_your_choice
그러면 여러분의 설정이 트리거됩니다. 이거 끝나면 다른 건 필요 없습니다. BREW도, 맥포트도, 아무것도 필요 없어요!
참고: Mac에서는 시스템 설치를 가지고 장난치지 않는 것처럼 시스템 Python을 다른 것에 사용하지 않습니다. 저의 새 14인치 Macbook Pro에서 python 2.7.18을 쓰는것 처럼요!!)
💡
저의 새 14인치 Macbook Pro에서 python 2.7.18을 쓰는것 처럼요!!)
- 두 번째 방법은 conda-forge를 사용하는 : miniconda3의 포크를 사용하는 것입니다: miniforge. 제가 현재 개인적으로 사용하고 있는데 너무 마음에 들어요❤️.
conda/mamba 설치를 실행하면 작업할 환경을 만들어야 합니다. 이 작업은 다음 명령을 사용하여 수행합니다.
conda create --name=env_name "python<3.10" pandas numpy matplotlib jupyterlab
env_name뒤에 필요한 패키지를 공백으로 구분하여 넣을 수 있습니다. == 또는<,>를 사용하여 특정 버전을 고정할 수도 있습니다. 앞 뒤로 따옴표를 쓰는 것이 이상적입니다.
Jeff Heaton의 유튜브 채널에서 ML용 Apple Silicon에 대한 자세한 정보와 업데이트를 확인할 것을 추천드립니다. 이 비디오에서 많은 내용을 바로 볼 수 있습니다.
Apple Metal 백엔드와 함께 Tensorflow를 설치하세요.
참고: 최신 몬테레이(Mac OS 12)가 필요합니다.
💡
conda env create --file=tf_apple.yml
(이전과 마찬가지로 이제 환경을 활성화해야 합니다.)
이제 몇 가지 벤치마크를 수행할 준비가 되었습니다.
M1Pro의 벤치마크
여기서는 16 GPU 코어가 탑재된 M1 Pro의 성능을 살펴보겠습니다. 저희 팀의 엔지니어가 최고급 M1 Max 장비를 주문한 것으로 알고 있습니다. M1 Max 장비를 구할 수 있는 대로 업데이트해 드리겠습니다! 또한 M1(비프로)을 탐색하는 공동 창립자CVP의 보고서를 작년에 확인하지 않으셨다면, 이것이 좋은 출발점이 될 것입니다.
방법론 📓
벤치마크에서는 3 4대의 컴퓨터를 사용했습니다.
- 7코어 GPU 탑재 엔트리 레벨 Macbook Air: M1_7
- 16 코어 GPU를 탑재한 14 인치 MacBook Pro: 16 GB RAM 탑재 M1 Pro.
- 신규: 32코어 GPU 탑재 16인치 MacBook Pro: 64GB RAM 탑재 M1Max (RestNet50 벤치마크만 해당)
- 8코어 CPU와 16GB RTX 5000을 탑재한 페이퍼스페이스의 Linux 워크스테이션: RTX5000
- 신제품: 16코어 CPU, RTX 3090 및 RTX 3080을 탑재한 Linux 워크스테이션
- 신규: 오래된 딥 러닝의 황제 GTX1080Ti
(K80 기본 구글 Colab인스턴스를 전환할 수도 있지만 속도가 매우 느립니다.)
저희 모델에서는MobileNetV2를 두 가지 변형으로 트레이닝하였습니다.
- "파인-튜닝 모델의 헤드"는 약 20,000개의 파라메트로 모델의 헤드만 미세 조정합니다.
- "풀 모델 트레이닝"에서는 250만 파라메트의 MobileNetV2를 트레이닝하였습니다.
각 그림 집합에는 두 런이 모두 있습니다.
결과
GPU 장치에 비해 노트북에 사용되는 에너지가 매우 낮다는 것을 알 수 있습니다. 물론 이는 정상이며, 사용된 에너지와 관련하여 의미 있는 정보를 얻으려면 모바일 GPU에 대한 벤치마킹이 필요합니다.
다음 그래프에서도 초당 샘플을 확인할 수 있습니다.
참고: 첫 번째 세대에서는 캐시에 문제가 발생하여 NVIDIA 카드가 더 느리지만 이후에는 최대 속도가 됩니다. 모델의 헤드를 미세 조정할 때만 발생합니다.
💡
완전히 트레이닝 가능한 네트워크의 경우 차이가 작으며, RTX5000은 M1Pro보다 약 55% 더 빠릅니다. RTX2060이 4배 더 많은 전력을 소비한다는 점을 감안하면 나쁘지 않은 속도입니다.
(참고: NVIDIA의 NGC TensorFlow 컨테이너 내부에서 실행되는 속도가 Conda 환경 실행 속도보다 상당히 빠릅니다. 이러한 태그는ngc로 지정되므로 전환할 수 있습니다. 이러한 컨테이너는 최대한 빨리 실행되도록 조정 및 최적화되었으며 Google 및 NVIDIA에서 유지 관리합니다. 현재 Apple과 동등한 제품이 없습니다.)
보너스: Resnet50
Resnet50의 척추(backbone)를 교체하면 어떤 일이 발생합니까? 여기서는 전체 모델을 총23.5M 파라메터로 트레이닝합니다. 그린 파워를 보면 노트북 GPU는 워크스테이션 카드와 비교가 되지 않습니다.
결론
16코어 GPU를 탑재한 M1 Pro는 M1 칩에 대한 업그레이드입니다. GPU 코어보다 2배, 메모리 대역폭보다 2배 이상 높습니다. CPU와 GPU가 메모리를 공유하므로 텐서를 한 장치에서 다른 장치로 이동할 필요가 없기 때문에 딥 러닝 파이프라인에 최적입니다. 또한 64GB RAM으로 구성할 수 있으며, 현재 시장에서 가장 큰 모바일 GPU입니다.
예상대로 M1Pro Max는 M1Pro보다 2배(GPU 코어 수 2배) 빠릅니다. 저전력 노트북 GPU에서 거의 RTX5000의 성능을 얻을 수 있습니다.
M1은 워크스테이션 비디오 카드를 대체하지는 않지만 이동 중에도 미세 조정 모델에 컴퓨팅 기능을 제공할 수 있습니다. 배터리 전원 테스트도 몇 번 해봤지만 성능에 미치는 영향은 전혀 없었습니다. M1의 장점은 제트 엔진 같은 소리를 내는 XPS 15에 비해 컴퓨터 발열이 덜하며 조용하다는 것입니다.
이것은 판도를 바꿀 수 있습니다.
그리고 Pytorch🔥??
Pytorch 개발 주역인Soumith Chintala가 이 폭탄을 이전에 이미 투하했습니다!

Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.