미니 gos는 딱히 성능 저하의 원흉이 아닙니다
- 호쯔
- 조회 수 1429
- 2021.07.21. 20:08
무슨 gos를 만악의 근원 취급하는 분위기라 gos가 하는 일을 설명드리면, 별 것 없습니다.
정해진 소비전력 내에서 최대한 안정적인 프레임을 뽑아내는 cpu랑 gpu 클럭을 응용 별로 미리 세팅해두고, 그 응용이 수행될 때 그 클럭으로 돌리는게 전부입니다.
쓰로틀링 걸려서 프레임 널뛰기 하는것보다 안정적인 프레임 내는게 목표죠.
그래서 최대 성능은 떨어지더라도, 체감 성능을 높이는 걸 목적으로 합니다.
이런 귀찮은 짓을 하는 스마트폰 제조사도 삼성 외에 찾기 힘들고요.
외부 환경이 차가울 때 배터리 타임 줄어들더라도 프레임을 더 뽑고 싶다는 욕구를 반영 못 하는 문제는 있죠.
이건 삼성이 코너 케이스를 생각하지 않고 시스템 소프트웨어를 고치고 있다는 거라 아쉽긴 합니다만, 아무것도 안 하는 것보단 낫습니다.
이번 s21에서 gos가 크게 이슈가 되는건 최대 성능에 비해 너무 낮게 클럭을 설정한다는 점이겠죠.
이건 근데 엑시2100이랑 스냅888 모두 GPU 소비전력이 너무 커서 그렇습니다.
피크 소비전력이 8W에 달합니다.
스마트폰에서 사용하기에 적합한 수준이 아니죠.
s21이 15.4Wh 배터리를 가지고 있으니 2시간이면 배터리 다 떨어집니다.
스냅 865가 4W 내외였던 거에 비하면 2배가 올랐습니다.
왜 이렇게 됐느냐는 여러가지 원인이 있을 수 있는데, 가설 몇 개 세워보면,
1. 삼성 5nm 공정에 문제가 있다.
요즘 제일 많이 언급되는거죠?
2. 삼성하고 퀄컴의 칩셋 설계팀 문제다.
4G+5G 모뎀을 칩셋에 원칩화 시키면서 차지하는 다이 사이즈가 문제 됐을 수 있습니다. 865는 4G 모뎀도 내장이 아니었기에 2100하고 888오면서 CPU랑 GPU에 할당할 수 있는 다이 사이즈는 더 작아졌을 겁니다.
3. 애플을 의식한 클럭 세팅이다.
애플도 보면 피크 소비전력이 6W로 꽤 높습니다.
그래서 좀 사용하다 보면 4W 안쪽으로 쓰로틀링 걸고 있고요.
그런데 벤치는 최대 성능으로만 비교하다보니, 애플을 의식해서 클럭을 끌어올렸을 수 있습니다.
순정 안드로이드에 게임모드 들어가니 gos 같은 기능 탑재되지 않겠냐고 말하시는 분도 있던데, 그럴 일 없습니다.
칩셋 별, 게임 앱 별로 최적의 클럭 값을 찾는 일을 해야 하는데, 이런건 구글이 강제할 수 있는 일이 아닙니다.
퀄컴이 할 수는 있을겁니다.
퀄컴이 자기네 칩셋 게임 앱 별로 돌려보면서 최적값 세팅하는거죠.
엔비디아가 비슷한일 하고 있기도 하고요.
근데 데스크탑 GPU와 다르게 모바일 칩셋은 종류도 많은데다가 딱히 경쟁사도 없어서 아마 안 할 겁니다.
스케줄러가 아니라 다른 제조사들은 DVFS만 쓰죠.
삼성은 DVFS 이외에 offline 튜닝을 하는건데, 관련 연구는 많이 있습니다.
특정 앱이 돌때 DVFS가 안 쓰고 offline 튜닝값을 쓰는거고, 마이너한 앱들은 DVFS 씁니다.
offline 튜닝하는게 DVFS만 쓰는 것보다 에너지 줄이고 성능도 유지하기 좋아요.
다른 제조사가 이걸 안 하는 이유는 인력이 들어가는데 얻는 이득은 크지 않다고 생각해서겠죠.
삼성이 모바일 사업부가 비대해지면서 남는 인력으로 최신 연구들 가져다가 적용해보는 과정으로 보입니다.
스마트 시프트는 전력관리기술로써 이야기 한게 아니라 비슷한 기능이 스마트폰에도 있음에도 훨씬 잘하고 있는 예시를 들어본것입니다.
결국 그 이야기는 엑시 스케쥴러의 문제를 gos로 해결해보려고 하는게 아닌가요? 일반 어플돌릴때도 엑시 스케쥴링이 제대로 돌아가는 상황에 gos로 게임만 최적화 해서 돌아가는 형태면 모르겠지만 일반 어플에서도 스케쥴러가 이상하고, gos가 적용된 게임에서도 이상하게 돌아가고 그런 상황이니까요. 기본기가 부족한 상황에서 또 뭔가를 엉성하게 해볼라니 서로 이상해진 모양새가 되는데다 그렇다고 이전세대 스냅 말고 엑시를 탑재했던 s10때만 해도 괜찮았냐 하면 그건 또 아니거든요.
엄밀히는 gos가 없어도 온도 타겟에 맞춰서 스케쥴러 자체가 빠르게 클럭이 반응해서 낮아지고, 어느정도의 부하에 어느정도의 클럭을 유지할지를 gos의 개입이 없더라도 잘 해야 한다는게 요지입니다. 다른 제조사들은 스케쥴러만으로 잘만 하는걸 왜 삼성은 gos를 꼭 껴야 하는지 그거부터 이해가 안갑니다. gos가 없다고 쓰로틀링때문에 프레임 널뛰기 하고 베터리 광탈이 있으면 처음부터 스케쥴러 잘 짜서 그걸 방지해야죠. 왜 삼성만 gos가 필요한건지요.
또 하나 이해안가는게 피크 전력이 문제라면 피크 클럭을 애초에 낮춰서 세팅 해놓으면 되는 문제가 아닌가요? 결국 욕심을 부리다가 감당이 안되고 스케쥴러를 제대로 못짜서 컨트롤을 못하겠으니까 추가 소프트웨어로 제한을 걸고 있는걸로 밖에 안보입니다. 마치 인텔 10세대와 11세대처럼요.
일단 GOS를 강요하는 삼성 정책이 문제라고 생각합니다.
제발 삭제하고싶네요.