2020.11.23

블로그 | 인텔 기반 앱이 M1에서 더 빠르게 돌아간다?··· 애플 '로제타2' 따라잡기

Jonny Evans | Computerworld
인텔 버전 맥 애플리케이션을 애플 M1 탑재 맥에서 구동할 수 있게 해주는 로제타2는 상식에 반하는 특징을 갖췄다. 일부 앱의 경우 인텔 버전의 맥에서보다 애플 실리콘 맥에서 더 빠르게 동작한다. 로제타2가 칩과 긴밀하게 통합돼 있기 때문에 가능한 특징이다. 

새 프로세서가 탑재된 애플 M1 맥이 놀라운 성능을 갖췄다는 보고가 속속 등장하고 있다. 그러나 인텔 칩에서 실행되도록 만들어진 기존의 애플리케이션이 실행하기 위해서는 로제타(Rosetta)가 요구된다. 로제타2에 대해 살펴본다.



애플 실리콘으로의 여정을 지원
애플은 애플 실리콘으로 바꾸기로 결정을 내렸는데, 이는 역사적인 결정이다. 애플은 이제 모든 플랫폼 구성요소를 통제할 수 있게 됐으며, 이 프로세서는 이미 성능과 안정성으로 사용자에게 깊은 인상을 심어주고 있다.

애플에 따르면 M1 칩은 맥에서 “전세계적으로 가장 빠른” 통합 그래픽과 8코어 CPU를 자랑한다. CPU 성능이 맥북 에어에서 약 3.5배 빠르다고 표현된다. GPU 성능은 5배, 머신러닝 성능은 최대 9배가 더 높다는 설명이다.

애플리케이션들은 특정 프로세서에서 실행되도록 개발되곤 한다. 그리고 모든 개발자가 애플 실리콘 맥에서 자신의 앱이 ‘네이티브’로 실행되도록 필요한 일을 다 마친 것은 아니다. 애플에 따르면 M1 탑재 맥은 네이티브, 유니버셜(인스톨러에 인텔과 애플 칩용 코드가 모두 포함된), 인텔 앱을 모두 실행할 수 있다.

애플은 개발자들에게 가능한 유니버셜 앱을 출시하도록 장려하고 있으며, 로제타2라는 에뮬레이션 기술을 사용해 애플 실리콘에서 인텔 앱을 실행할 수 있도록 지원하고 있다.

로제타2란?
로제타2는 인텔과 애플 프로세서 간 전환을 구현하기 위해 설계된 에뮬레이터이다. 간단히 설명하면, 애플 실리콘에서 실행될 수 있도록 인텔용으로 만들어진 앱을 ‘번역’(translate)한다.

처음 실행할 때 번역되는 앱들도 있다. 오피스 앱들이 여기에 포함된다. 처음 실행 때 번역을 한다는 것은 앱이 처음에는 더 늦게 시작될 수 있다는 의미이다(일부 경우에는 최대 20초). 그러나 다음 번에 애플리케이션을 실행할 때는 이런 지연이 발생하지 않는다.

전체 프로세스가 백그라운드 프로세스이다. 성능에 조금 영향을 줄 수 있지만, 초기에 알려진 내용들에 따르면 M1으로 옮겼을 때의 성능 향상이 이를 충분히 보완하고 남는 수준이다.

애플은 개발자 페이지에는 다음과 같이 기술돼 있다.
 
“로제타는 사용자가 x86-64 명령어가 포함된 앱들을 애플 실리콘에서 실행할 수 있는 번역 프로세스이다. 로제타는 애플 실리콘으로의 전환을 쉽게 해주며, 개발자에게 자신의 앱에 대한 유니버셜 바이너리를 만들 시간을 준다. 그렇지만 앱의 네이티브 버전을 만드는 것을 대신하지 않는다.”

그렇다면 번역 프로세스란 정확히 무엇일까?

애플은 “실행 파일에 인텔 명령어만 포함되어 있다면, 맥OS가 자동으로 로제타를 실행해서 번역 프로세스를 시작한다. 번역이 완료되면, 시스템은 번역한 실행 파일을 원래 위치에서 작동시킨다. 그러나 번역 프로세스에 시간이 걸린다. 사용자는 간혹 번역된 앱 시작이나 실행 속도가 느리다는 것을 인식할 것이다”라고 설명하고 있다.

로제타는 필요에 따라 동적 코드나 자바스크립트를 번역할 수도 있다.

x86 플러그인도 실행할 수 있을까?
MI 맥을 사용할 때, 애플 실리콘에서 arm64 명령어를 실행하는 것이 권장된다. 그러나 앱에 arm과 x86 명령어가 모두 포함된 경우, 사용자는 파인더의 앱에 대한 겟 인포(Get Info) 창에서 로제타 번역을 사용해 앱을 다시 시작할 수 있다. 이 작업이 유효한 이유는, M1에서 네이티브 실행되는 앱에 포함된 구식 플러그인을 실행시킬 필요 때문이다. 

앱을 선택하고 Command-I를 누른 다음, ‘Open using Rosetta(로제타를 이용해 열기)’ 선택란을 선택하면 된다. 

누가 로제타2를 지원할까?
모든 애플 앱과 프로 앱이 기본적으로(네이티브) M1 칩을 지원한다. 또 개발자들은 인텔과 M1이 장착된 맥에서 기본 실행되는 유니버셜 애플리케이션을 빌드하고 있다. 아직 네이티브나 유니버셜이 아닌 앱들은 로제타2를 지원하기 위해 업데이트를 해야 한다. 그러나 업데이트를 하면 완벽히 실행될 것이다.

워드 같은 핵심 앱들은 이미 M1에서 실행이 된다. 어도비는 내년 초 포토샵 M1 네티이브 버전을 출시하겠다고 약속했다. 라이트룸(Lightromm)도 곧 출시될 예정이다. 개발자가 지원을 한다면, iOS 앱들도 M1 칩에서 실행할 수 있다.

로제타2가 번역할 수 없는 것은?
로제타는 x86 64 컴퓨터 플랫폼을 가상화하는 가상머신 앱들이나 커널 익스텐션은 번역하지 못한다. 또한, 개발자는 로제타가 AVX, AVX2, AVX512 벡터 명령어를 해석할 수 없다는 것을 알아야 한다. 

배경 정보
애플은 과거에도 로제타라는 이름을 사용했었다. 맥에서 파워PC 프로세서 대신 인텔 칩을 도입했을 때, 동일한 기능을 수행하는 프로세스에 동일한 이름을 사용했다. 파워PC 앱을 인텔 칩에서 실행시키는 기능을 의미했다. 

이름과 목적은 동일하지만, 당시 로제타와 지금 사용하는 로제타 버전에는 큰 차이가 있다. 애플이 자체 M1을 설계하면서 로제타를 염두에 뒀기 때문이다. 애플은 칩 자체에 이를 지원하는 데 필요한 일부 요소를 구현할 수 있었다는 의미이다. 

애플 실리콘 맥에의 로제타 에뮬레이션에서 실행되는 일부 앱이 인텔보다 훨씬 더 빠르게 실행되는 이유가 여기에 있다.

성능은?
필자는 한 동안 M1 맥 미니를 테스트해봤다. 대부분 애플리케이션이 잘 작동했다. 인텔 기반 맥보다 M1 칩에서 실행시켰을 때 더 빠른 경우가 많았다.

이 프로세서는 메모리를 아주 잘 처리한다. 애플은 프로세스의 모든 기능에서 메모리를 공유하는 UMA라는 기술을 개발했다. 메모리와 프로세서, 다른 시스템 요소가 모두 칩에 탑재되어 있기 때문에, 우수한 성능을 기대할 수 있다. 그래픽 집약적인 앱에서 특히 두드러진다. 과거 어느 때보다 빨리 실행되는 것을 확인했다.

로제타2 지원 기간은?
로제타2가 계속 지원될지 여부는 모른다. 과거를 되돌아보면, 맥 OS X 10.4.4 타이거에는 포함되어 있었고, OS X 10.6 스노우 레오파드는 선택적으로 다운로드 할 수 있었다. 그러나 다음 해에는 사라졌다(애플이 구형 아키텍처 기반 맥 판매를 중단하면서, 전환이 예상보다 빨리 완료되었음).

애플은 2년 이내에 인텔과 애플 프로세서의 전환을 완료하겠다고 공언했다. 이를 지원하기 위해 계속 제공될 것이며, 후속 릴리스에서도 계속 이용 가능할 것이다. 일부 소비자들은 이런 전환 과정에서도 인텔 프로세서가 탑재된 새 맥을 계속 구입할 것이 분명하다. 

이를 감안하면, 애플은 적어도 2023년까지는 로제타2를 지원할 전망이다. 로제타에 대한 더 자세한 정보는 여기 링크된 애플 개발자 노트에서 확인할 수 있다. 

* Jonny는 1999년부터 애플과 기술에 대해 기고해온 전문 저술가다. ciokr@idg.co.kr



2020.11.23

블로그 | 인텔 기반 앱이 M1에서 더 빠르게 돌아간다?··· 애플 '로제타2' 따라잡기

Jonny Evans | Computerworld
인텔 버전 맥 애플리케이션을 애플 M1 탑재 맥에서 구동할 수 있게 해주는 로제타2는 상식에 반하는 특징을 갖췄다. 일부 앱의 경우 인텔 버전의 맥에서보다 애플 실리콘 맥에서 더 빠르게 동작한다. 로제타2가 칩과 긴밀하게 통합돼 있기 때문에 가능한 특징이다. 

새 프로세서가 탑재된 애플 M1 맥이 놀라운 성능을 갖췄다는 보고가 속속 등장하고 있다. 그러나 인텔 칩에서 실행되도록 만들어진 기존의 애플리케이션이 실행하기 위해서는 로제타(Rosetta)가 요구된다. 로제타2에 대해 살펴본다.



애플 실리콘으로의 여정을 지원
애플은 애플 실리콘으로 바꾸기로 결정을 내렸는데, 이는 역사적인 결정이다. 애플은 이제 모든 플랫폼 구성요소를 통제할 수 있게 됐으며, 이 프로세서는 이미 성능과 안정성으로 사용자에게 깊은 인상을 심어주고 있다.

애플에 따르면 M1 칩은 맥에서 “전세계적으로 가장 빠른” 통합 그래픽과 8코어 CPU를 자랑한다. CPU 성능이 맥북 에어에서 약 3.5배 빠르다고 표현된다. GPU 성능은 5배, 머신러닝 성능은 최대 9배가 더 높다는 설명이다.

애플리케이션들은 특정 프로세서에서 실행되도록 개발되곤 한다. 그리고 모든 개발자가 애플 실리콘 맥에서 자신의 앱이 ‘네이티브’로 실행되도록 필요한 일을 다 마친 것은 아니다. 애플에 따르면 M1 탑재 맥은 네이티브, 유니버셜(인스톨러에 인텔과 애플 칩용 코드가 모두 포함된), 인텔 앱을 모두 실행할 수 있다.

애플은 개발자들에게 가능한 유니버셜 앱을 출시하도록 장려하고 있으며, 로제타2라는 에뮬레이션 기술을 사용해 애플 실리콘에서 인텔 앱을 실행할 수 있도록 지원하고 있다.

로제타2란?
로제타2는 인텔과 애플 프로세서 간 전환을 구현하기 위해 설계된 에뮬레이터이다. 간단히 설명하면, 애플 실리콘에서 실행될 수 있도록 인텔용으로 만들어진 앱을 ‘번역’(translate)한다.

처음 실행할 때 번역되는 앱들도 있다. 오피스 앱들이 여기에 포함된다. 처음 실행 때 번역을 한다는 것은 앱이 처음에는 더 늦게 시작될 수 있다는 의미이다(일부 경우에는 최대 20초). 그러나 다음 번에 애플리케이션을 실행할 때는 이런 지연이 발생하지 않는다.

전체 프로세스가 백그라운드 프로세스이다. 성능에 조금 영향을 줄 수 있지만, 초기에 알려진 내용들에 따르면 M1으로 옮겼을 때의 성능 향상이 이를 충분히 보완하고 남는 수준이다.

애플은 개발자 페이지에는 다음과 같이 기술돼 있다.
 
“로제타는 사용자가 x86-64 명령어가 포함된 앱들을 애플 실리콘에서 실행할 수 있는 번역 프로세스이다. 로제타는 애플 실리콘으로의 전환을 쉽게 해주며, 개발자에게 자신의 앱에 대한 유니버셜 바이너리를 만들 시간을 준다. 그렇지만 앱의 네이티브 버전을 만드는 것을 대신하지 않는다.”

그렇다면 번역 프로세스란 정확히 무엇일까?

애플은 “실행 파일에 인텔 명령어만 포함되어 있다면, 맥OS가 자동으로 로제타를 실행해서 번역 프로세스를 시작한다. 번역이 완료되면, 시스템은 번역한 실행 파일을 원래 위치에서 작동시킨다. 그러나 번역 프로세스에 시간이 걸린다. 사용자는 간혹 번역된 앱 시작이나 실행 속도가 느리다는 것을 인식할 것이다”라고 설명하고 있다.

로제타는 필요에 따라 동적 코드나 자바스크립트를 번역할 수도 있다.

x86 플러그인도 실행할 수 있을까?
MI 맥을 사용할 때, 애플 실리콘에서 arm64 명령어를 실행하는 것이 권장된다. 그러나 앱에 arm과 x86 명령어가 모두 포함된 경우, 사용자는 파인더의 앱에 대한 겟 인포(Get Info) 창에서 로제타 번역을 사용해 앱을 다시 시작할 수 있다. 이 작업이 유효한 이유는, M1에서 네이티브 실행되는 앱에 포함된 구식 플러그인을 실행시킬 필요 때문이다. 

앱을 선택하고 Command-I를 누른 다음, ‘Open using Rosetta(로제타를 이용해 열기)’ 선택란을 선택하면 된다. 

누가 로제타2를 지원할까?
모든 애플 앱과 프로 앱이 기본적으로(네이티브) M1 칩을 지원한다. 또 개발자들은 인텔과 M1이 장착된 맥에서 기본 실행되는 유니버셜 애플리케이션을 빌드하고 있다. 아직 네이티브나 유니버셜이 아닌 앱들은 로제타2를 지원하기 위해 업데이트를 해야 한다. 그러나 업데이트를 하면 완벽히 실행될 것이다.

워드 같은 핵심 앱들은 이미 M1에서 실행이 된다. 어도비는 내년 초 포토샵 M1 네티이브 버전을 출시하겠다고 약속했다. 라이트룸(Lightromm)도 곧 출시될 예정이다. 개발자가 지원을 한다면, iOS 앱들도 M1 칩에서 실행할 수 있다.

로제타2가 번역할 수 없는 것은?
로제타는 x86 64 컴퓨터 플랫폼을 가상화하는 가상머신 앱들이나 커널 익스텐션은 번역하지 못한다. 또한, 개발자는 로제타가 AVX, AVX2, AVX512 벡터 명령어를 해석할 수 없다는 것을 알아야 한다. 

배경 정보
애플은 과거에도 로제타라는 이름을 사용했었다. 맥에서 파워PC 프로세서 대신 인텔 칩을 도입했을 때, 동일한 기능을 수행하는 프로세스에 동일한 이름을 사용했다. 파워PC 앱을 인텔 칩에서 실행시키는 기능을 의미했다. 

이름과 목적은 동일하지만, 당시 로제타와 지금 사용하는 로제타 버전에는 큰 차이가 있다. 애플이 자체 M1을 설계하면서 로제타를 염두에 뒀기 때문이다. 애플은 칩 자체에 이를 지원하는 데 필요한 일부 요소를 구현할 수 있었다는 의미이다. 

애플 실리콘 맥에의 로제타 에뮬레이션에서 실행되는 일부 앱이 인텔보다 훨씬 더 빠르게 실행되는 이유가 여기에 있다.

성능은?
필자는 한 동안 M1 맥 미니를 테스트해봤다. 대부분 애플리케이션이 잘 작동했다. 인텔 기반 맥보다 M1 칩에서 실행시켰을 때 더 빠른 경우가 많았다.

이 프로세서는 메모리를 아주 잘 처리한다. 애플은 프로세스의 모든 기능에서 메모리를 공유하는 UMA라는 기술을 개발했다. 메모리와 프로세서, 다른 시스템 요소가 모두 칩에 탑재되어 있기 때문에, 우수한 성능을 기대할 수 있다. 그래픽 집약적인 앱에서 특히 두드러진다. 과거 어느 때보다 빨리 실행되는 것을 확인했다.

로제타2 지원 기간은?
로제타2가 계속 지원될지 여부는 모른다. 과거를 되돌아보면, 맥 OS X 10.4.4 타이거에는 포함되어 있었고, OS X 10.6 스노우 레오파드는 선택적으로 다운로드 할 수 있었다. 그러나 다음 해에는 사라졌다(애플이 구형 아키텍처 기반 맥 판매를 중단하면서, 전환이 예상보다 빨리 완료되었음).

애플은 2년 이내에 인텔과 애플 프로세서의 전환을 완료하겠다고 공언했다. 이를 지원하기 위해 계속 제공될 것이며, 후속 릴리스에서도 계속 이용 가능할 것이다. 일부 소비자들은 이런 전환 과정에서도 인텔 프로세서가 탑재된 새 맥을 계속 구입할 것이 분명하다. 

이를 감안하면, 애플은 적어도 2023년까지는 로제타2를 지원할 전망이다. 로제타에 대한 더 자세한 정보는 여기 링크된 애플 개발자 노트에서 확인할 수 있다. 

* Jonny는 1999년부터 애플과 기술에 대해 기고해온 전문 저술가다. ciokr@idg.co.kr

X