elsa in mac

mac:Fedora-Asahi Remix, 전원관리 설정을 통해 CPU 구동 주파수를 변경해 보자. 본문

Mac(OS X)/Asahi Linux

mac:Fedora-Asahi Remix, 전원관리 설정을 통해 CPU 구동 주파수를 변경해 보자.

elsa in mac 2024. 3. 15. 01:31

이번 포스트에서는 Asahi Linux에서 전원관리 도구인 CPUFreq Manager앱을 이용하여 CPU의 동작주파수를 변경하는 방법을 알아보도록 하겠습니다. macOS에서는 사용자가 CPU의 동작 주파수를 임의로 설정할 수 없지만, 동일한 mac에 Linux를 사용한다면 사용자가 직접 CPU의 동작 주파수를 설정할 수 있습니다.

Redhat 계열의 Linux에는 전원관리 요소가 포함되어 있습니다. 이는 Fedora에도 동일하게 적용이 되는데, 컴퓨팅 파워 즉, CPU의 동작 주파수를 어떻게 설정할 것인지를 Profiling 함으로써, 전체 소비전력 정책을 변경할 수 있습니다.

제가 사용하고 있는 M1 mac-mini(2020) 레퍼런스 모델을 기준으로 설명을 해 보겠습니다.

M1 mac-mini의 M1 SoC의 경우, 0.6GHz ~ 3,2GHz 로 구동되는 4 Core의 Firestorm Big Cluster와 0.6GHz ~ 2.06GHz의 4 Core Icestrom Little Clustor로 구성되어 있습니다.  일반적으로 Big Clustor Core를 성능 코어, Little Clustor Core를 호율코어라고 지칭합니다. Big Core는 전력을 많이 소모하지만 그 만큼 높은 성능을 낼 수 있고, 반대로 Little Core들은 낮은 성능을 보이지만 그 만큼 적은 소모 전력을 소모합니다. 

Macbook 같이 Battery 구동이 아닌, iMac이나 mac-Mini 같이 상시 전원을 사용하는 mac에서 소모전력보다 성능을 우선시 하고 싶다면, CPU의 전력소모 Profile을 최대성능으로 설정하면 됩니다. 대신 평소보다 열이 좀 더 날 수는 있겠죠.

위의 스샷은 Fedora-Asahi Remix에서 CPUFreq Manager를 실행 시킨 모습입니다. , 좌측에 보면, 8개의 CPU Core가 모두 600 MHz로 설정되어 동작하고 있는 것을 알 수 있습니다. 화면의 오른쪽을 보면, 최소 동작 주파수는 600Mhz, 최대 동작 주파수는 2.064Ghz, 그리고 8개의 Core를 모두 사용하는 것으로 되어 있지요..

Power profile은 Balanced, Governer는 Conservative로 되어 있지요. Conservative 정책은 Battery로 구동되는 시스템에서 가급적 동작 주파수를 낮게 유지하여 성능보다는 베터리 소모를 최소화하는 것을 목표로 한  정책입니다.   물론, System의 load 즉 부하에 따라 동작 주파수가 가변합니다. powersave 모두는 가장 낮은 600MHz 주파수로 고정됩니다. 대신 그 만큼 전력을 적게 사용하는 정책입니다.

Governer의 종류에는 Conservative, OnDemand, Powersave, Performance, Schedutil 이렇게 5단계가 있으며, 단계가 올라갈 수록 소모전력보다는 성능을 높이는 것에 중점을 두게 됩니다. 만일 최대의 성능을 내고 싶다면 Performace나 Schedutil로 설정을 하면 됩니다.

최대/최소 주파수는 현재 실핼 중인 process들의 실시간 처리 복잡도에 따라 가변하게 되는데, 주파수의 변동 영역을 설정하는 것입니다. 따라서, Minimum frequency(최소 주파수를) 끝까지 최대로 올린다면.. 2.064GHz로 고정이 되게 될 것입니다.  즉, Governer를 Conservative나 Powersave모드로 설정했다 하더라도, Mimimum Frequency를 최대로 올렸다면, 최대 주파수로 구동하게 되는 것입니다.

위의 스샷을 보면, governer를 Schedutil, minimum/maximum을 모두 2.064GHz로 설정한 것으로 4개의 Littlle Core(0~3)가 2.06GHz, 4개의 Big Core(3~7)가 2.99GHz로 설정된 것을 알 수 있습니다.

Frequency Boost 옵션을 활성화 하게 되면, Schedutil에서는 System loading 에 따라 CPU Clock이 가변하기는 하지만, 3.2Ghz의 최대 Clock 까지 사용할 수 있게 됩니다.  Performace 모드로 설정하면, 최대 주파수로 고정됩니다.

위의 스샷을 보면, Governer : Schedutil, Min/Max는 모두 최대로, 그리고 Frequency Boost 옵션을 활성화 시킨 상태 입니다. 8개의 CPU Core가 모두 최대 동작 주파수로 구동되고 있는 것을 알 수 있습니다.

아래는 동일한 환경에서, Web Browser의 성능을 측정하는 Speedometer 3.0 을 이용하여 powersave 모드 600Mhz 고정 주파수 일때와 최대 동작 주파수인 performace 모드에서 Frequency Boost를 활성화한 상태로 측정치를 비교한 것입니다.

실제로 약 5배 정도의 성능 차이가 나는 것을 확인할 수 있습니다.


Linux 자체가 꽤나 가볍기도 하거니와 처리속도가 빠르기 때문에 일반적인 앱 서핑이나 간단한 문서 편집, 음악이나 동영상 시청에서는 이러한 CPU 주파수 변경에 따른 체감 차이는 크게 느낄 수 없습니다 만, 동영상 인코딩이나 소스코드 빌드 같이 부하가 높은 작업을 할 경우에는 차이가 날 수 있기에, 자신의 mac 종류와 작업환경에 따라 적절하게 설정을 할 필요가 있습니다.

공유하기 링크
Comments