MPS 네이티브 SVD·QR·Cholesky — PyTorch 2.14에서 Apple Silicon 선형대수가 CPU 왕복을 줄입니다 | DAKER 커뮤니티

MPS에서 SVD까지
설명용 생성 이미지입니다.

한 줄 요약
PyTorch 2.14 MPS는 SVD, QR, Cholesky 등 선형대수를 네이티브 Metal 커널로 돌립니다. float32·complex64 경로에서 CPU로 넘기던 왕복이 줄어, Mac에서 수치·행렬 코드를 끝까지 기기에서 이어가기 쉬워집니다.

어텐션만 MPS로 올리고 분해는 CPU로 빼 두면, 복사와 동기화 비용이 한 스텝을 잡아먹습니다. 오늘은 자주 쓰는 분해가 MPS에 있는지부터 목록으로 확인하십시오. 같은 dtype·배치에서 device를 바꾸지 않고 끝나는지가 체감 차이를 만듭니다.

재현해 볼 실험 조건

  1. 동일 float32 행렬로 SVD·QR·Cholesky를 MPS와 CPU에서 각각 실행합니다.
  2. 결과 오차와 wall time, 그리고 device 간 복사 횟수를 기록합니다.
  3. 작은 배치에서는 GPU 런치 오버헤드가 클 수 있으니, 행렬 크기 구간을 나눠 비교합니다.

float64는 Metal에 더블이 없어 CPU로 남고, 아주 작은 행렬은 런치 비용 때문에 CPU가 나을 수 있습니다. Cholesky는 complex에서 이전 경로 오류가 고쳐졌다는 점이 실무 체크 포인트입니다. 참가자는 “MPS에 올렸는지”보다 “어느 dtype·크기가 네이티브인지”를 노트에 남기는 편이 안전합니다.

실무에서 바로 볼 포인트

관련 DAKER 학습

설명용 생성 이미지입니다. 속도·오차는 로컬 MPS 벤치로 확인하십시오.