애플의 자체 개발 프로세서 M1을 탑재한 맥 제품군이 출시된 가운데, x86에서 ARM 아키텍처로 전환을 지원하는 소프트웨어 업계가 분주하게 움직이고 있다. 마이크로소프트, 어도비 등 상용 SW 업계는 M1 맥에 발빠른 대응을 하는 반면, 시스템 소프트웨어와 오픈소스 진영은 다소 힘겨운 작업을 소화해야 해 시일을 두고 기다려야 하는 모양새다.
최근 외신에 따르면, 애플의 M1 탑재 맥 제품의 벤치마크 결과 기존 x86 맥 제품 대비 월등히 높은 것으로 나타나고 있다.
긱벤치 점수에서 M1 맥북에어는 3.2GHz 클럭 속도와 8GB 램, 맥OS 빅서를 기준으로 싱글코어 점수 1천687점, 멀티코어 점수 7천433점을 기록했다. 이는 인텔 i9 3.6GHz 10코어 프로세서를 탑재한 아이맥 27인치 점수보다 35% 높은 것이다. 멀티코어 점수는 맥북프로 16인치 제품보다 8% 높다.
GPU에서도 엔비디아 지포스 GTX 1050 Ti보다 높은 점수를 기록했다.
64비트 ARM 아키텍처에 기반한 M1은 고성능 파이어스톰 4코어 클러스터와, 저전력 아이스스톰 4코어 클러스터 구조로 만들어졌다. 고성능 코어는 192kB의 명령 캐시와 128kB의 데이터 캐시를 가졌고, 12MB L2 캐시를 공유한다. 저전력 코어는 128kB 명령캐시와 64kB 데이터 캐시를 가지면서 4MB L2 캐시를 공유한다. TSMC에서 5나노 공정으로 생산한다. 메모리는 8GB, 16GB를 지원한다.
인텔에서 ARM 아키텍처로 전환하기 때문에 기존 맥OS용 소프트웨어를 그대로 사용할 수 없다. 애플은 이같은 소프트웨어 호환 문제를 해결하기 위해 3가지 방안을 마련했다. x86 기반 소프트웨어를 M1에서 구동하게 하는 번역계층 '로제타2'와, 맥OS용으로 컴파일된 애플리케이션을 ARM 아키텍처 바이너리 코드로 변환해 함께 담는 '유니버셜 앱'이다. 또 iOS와 아이패드OS용 앱을 맥OS용에서 변환해 구동할 수 있게 하는 '카탈리스트'도 제공한다.
기존 맥OS용 애플리케이션 다수는 로제타2를 통해 M1 탑재 맥에서 쓸 수 있다. 문제는 번역 과정을 거쳐야 하기 때문에 속도가 더 느려질 수 있다는 점이다. 유니버셜 빌드는 앱 하나가 두 종류의 바이너리 코드를 갖고 있기 때문에 크기가 커지므로, 기기에 따라 코드를 구분해 기기에 내려주는 애플의 맥OS 앱스토어 배포에서만 효과적이다. 로제타2와 유니버셜 앱은 소프트웨어 개발사에서 M1 네이티브 애플리케이션을 만들기 전까지 시간을 버는 용도인 것이다.
현재 M1 기반 맥에서 사용가능한 ARM 네이티브 앱은 파이널컷프로와 로직프로 등을 포함한 애플의 자체 앱과, 어린이용 코딩앱 '홉스코치', 영상통화 앱 'Mmhmm', 다자인 앱 'Shapr3D', 옴니그룹의 생산성앱인 '옴니플랜'과 '옴니그래플', 퍼블리싱 툴 '어피니티퍼블리셔' 가계도 작성 앱 '맥패밀리트리', 벡터 그래픽 앱 '벡터네이터' 정도다.
■ 마이크로소프트, 어도비 등 주요 애플리케이션 M1 지원 속도전
생산성 앱 가운데 최다 사용자를 보유한 마이크로소프트 오피스는 지원 계획만 있을 뿐 언제 네이티브 앱으로 출시될 지 미정이다.
마이크로소프트는 지난 6월 WWDC20에서 애플실리콘 계획이 발표된 당시부터 네이티브 앱을 테스트중이라고 밝혔었다. 오피스 제품중 워드, 엑셀, 파워포인트 등을 M1 버전으로 내놓을 예정이라고 한다.
마이크로소프트는 최근 유니버셜 빌드 버전의 오피스2019 앱을 베타버전으로 공개하기도 했지만, 정식 출시일은 밝히지 않았다. 마이크로소프트의 코드에디터인 비주얼스튜디오코드가 64비트 ARM 아키텍처 빌드를 지원하지만, 유니버셜 빌드는 이달말에야 가능할 것으로 전망된다.
과거 파워PC에서 인텔로 전환할 때 비협조적이었던 어도비가 라이트룸과 포토샵 등을 M1 버전으로 출시할 예정이다. 어도비는 17일 M1용 포토샵 베타 버전을 공개했다. 어도비 라이트룸과 포토샵은 올연말이나 내년초에 정식 공개될 것으로 전망된다.
오픈소스 오피스인 '리브레오피스'는 ARM 기반 맥을 지원하는 버전을 준비중이다. 첫 커밋이 한달 전 이뤄졌다.
이에 따라 당장 아주 기초적인 업무는 M1 기반 맥에서 가능하지만, 현존 맥 주요 사용자층인 전문 크리에이터와 고급 개발자는 본격적으로 M1 맥을 사용하기 어렵다.
아비드(Avid)는 프로툴과 미디어컴포저 등의 앱을 인텔 기반 맥만 제공할 예정이다.
■ 크롬은 M1 지원, 개발 플랫폼은 '진행중'
웹브라우저 쪽이 빠른 편이다. 구글은 지난 17일 배포한 크롬87 안정화 버전에서 애플 M1 지원을 포함시켰다. 그러나 크롬87의 DRM 요소인 와이드바인은 로제타2 번역을 이용한다.
파이어폭스는 84 베타에 애플 M1 지원을 포함한다. 모질라 측은 "네이티브 버전 출시 전에 여러 변화 요소를 테스트해야 한다"고 밝혔다.
개발 플랫폼 진영의 대응은 다소 더딘 편이다.
자바는 오픈JDK의 M1 최적화 버전 개발 작업이 진행되고 있지만, 정식 배포 일정은 아직이다. JEP-391 제안서가 지난 8월 올라와 있는 상태다. 다만, ARM 64비트 윈도, ARM 64비트 리눅스 등을 지원하는 JDK 작업이 전부터 진행돼 온 만큼 지난하지는 않을 것으로 보인다.
한편으로 마이크로소프트가 ARM 64비트 기반 맥OS용 오픈JDK16 조기사용 버전을 깃허브에 최근 공개했다. 아줄은 자체 JDK를 M1 버전으로 내놨다.
통합개발도구(IDE)는 상용 제품 업체에서 대응을 하고 있다.
IDE 전문업체인 젯브레인은 "JVM에서 구동되는 모든 제품과 젯브레인 런타임을 애플 실리콘에 이식하는 작업을 하고 있다"고 밝혔다. 일단 각종 IDE를 로제타2 번역으로 구동하고, 향후 M1 네이티브 버전을 내놓을 것이라고 했다. 또 18일 유니버셜 빌드 작업이 빠르게 진행되고 있어 이달말 업데이트될 것이라고 밝혔다. 인텔리J, 파이참, 안드로이드스튜디오 등이 M1 최적화 버전 전에 유니버셜 빌드로 먼저 나올 전망이다.
이클립스의 경우 아직 공식 계획이 나오지 않았다.
■ 가상화 '진행중, 도커 '기다려달라'
서버 개발자 사이에서 가장 이슈는 가상화와 '도커'다.
맥에서 마이크로소프트 윈도를 사용할 수 있는 부트캠프는 M1 맥에 없다. 때문에 윈도를 M1 맥에서 사용하려면 별도 가상화 SW를 써야 한다.
현재 패러렐즈와 VM웨어 퓨전이 M1 버전으로 개발되고 있다. 구체적인 출시일정은 미정이다. 오라클 버추얼박스의 M1 버전은 계획도 알 수 없다.
도커는 현재로선 로제타2를 이용하는 방법 외에 M1 맥에서 원활히 쓸 수 없다. 그동안 서버 개발자 커뮤니티에선 도커를 애플 실리콘에서 구동할 경우 x86 버전 대비 4분의1 성능으로 이용해야 할 것으로 전망했다.
도커사는 지난 16일 블로그에서 "로제타2가 새 M1 칩으로 앱을 옮기는데 도움을 주지만, 맥용 도커 데스크톱의 모든 것을 돕지 못한다"며 "도커 데스크톱의 가상머신 구동을 위해 애플의 새 하이퍼바이저 프레임워크로 이동하는 게 필요하다"고 설명했다.
도커가 도커 데스크톱에서 가상머신을 실행하게 되는데, 이 기능을 위해 도커 측에서 코드를 조정할 때까지 M1 맥에서 쓸 수 없다는 뜻이다.
도커는 또한 개발언어 '고'와 크로스플랫폼 앱 프레임워크 '일렉트론(electron)'에 의존하고 있어 상당기간 재개발과 테스트를 필요로 한다고 밝혔다.
■ 개발언어 다수 컴파일러 문제로 M1 전환 난항
'고'는 내년 2월 배포되는 1.16 버전에서 애플 실리콘을 지원할 예정이다.
'러스트'는 M1 맥에서 실행가능한 네이티브 코드를 출력하는 티어2 크로스 컴파일러를 제공한다.
일렉트론은 11.0.0 버전에서 애플 실리콘 지원을 추가했다. 일렉트론 측은 ARM64 아키텍처 전용으로 바이너리를 별도로 컴파일할 것을 조언했다. 기존 인텔 x86 바이너리를 로제타2로 구동할 경우 심각한 성능저하를 보일 것이라고 했다. 일렉트론/V8의 경우 JIT 컴파일을 2차례 해야하고, 메모리 페이지 크기가 증가해 추천하지 않는다고 밝혔다.
소프트웨어 패키지 매니저의 경우 계획을 세우고 있지만, 기다려야 한다. 맥OS 패키지 매니저 '홈브루(Homebrew)'는 해결되지 않은 이슈 때문에 M1으로 전환하지 않았다. 그레이들, 메이븐, 젠킨스 등은 오픈JDK의 애플 실리콘 지원까지 대기상태다.
GCC 컴파일러도 아직 애플 M1 지원을 하지 않는다. M1 맥 모델이 안전화될 때까지 기다려야 한다는 입장이 내부적으로 우세하다.
개발언어 R은 로제타2에서 실행가능하다. 포트란(Fortran) 90 컴파일러에 의존하므로 네이티브하게 사용할 수 없다. LLVM의 포트란 컴파일러는 아직 완성되지 않았다.
애플은 지난 6월 WWDC20에서 30개 오픈소스 프로젝트의 애플실리콘 지원 패치를 제공하겠다고 밝혔었다. 고, 오픈JDK, 오픈CV, 노드, nginx, 모노, 홈브루, 일렉트론, 크로미엄, Bgfx, 블렌더(Blender), 부스트(Boost), 스위프트 셰이더, 맥포츠, nmap, 오픈EXR, SSE2Neon, 픽사USD, QT, 파이썬3, 레디스, 시네폼CFHD, NumPy, V8 등이 패치 대상이다.
현재 애플에서 30개 오픈소스에 대한 공식 패치는 나오지 않았다.
■'텐서플로우' M1 최적화 버전 공개, 성능 5배 향상
반면, 인공지능(AI) 관련 개발 분야는 M1의 성능을 누리게 될 전망이다.
애플은 지난 18일 텐서플로우 2.4 프레임워크의 M1용 포크 버전을 공개했다. 이 버전은 13인치 맥북프로 16GB 램, 256 SSD 제품에서 구동할 때 인텔 프로세서보다 획기적인 성능 향상을 보이는 것으로 나타났다.
M1 기반 맥북프로는 8코어 CPU와 8코어 GPU를 사용하며, 별도의 16코어 뉴럴 엔진도 사용한다. 여기 최적화된 텐서플로우 2.4는 인텔 아키텍처보다 4~5배 빠른 속도를 냈다.
관련기사
- 애플실리콘 맥, MS 오피스 시작시간 20초 더 걸린다2020.11.13
- MS "VS코드, 애플 실리콘 맥 지원”2020.07.17
- M1칩 탑재 ‘맥북프로’의 시네벤치 벤치마크 점수는?2020.11.18
- M1칩 탑재 ‘맥북에어’, 16인치 맥북프로보다 성능 앞서2020.11.13
맥에서 텐서플로우 모델 학습을 지원하는 애플의 새 프레임워크 'ML 컴퓨트'는 CPU 및 GPU 학습을 가속한다.
애플은 깃허브에 M1에 최적화한 텐서플로우 포크 버전을 공개했으며, 구글은 향후 텐서플로우 마스터 브랜치에 애플의 버전을 통합할 예정이다.