벤치마크 부정행위의 반격: OnePlus와 다른 사람들이 적발된 방법과 이에 대해 그들이 한 일

OnePlus와 Meizu가 벤치마크에서 부정 행위를 한 것이 적발되었습니다. XDA는 이러한 일이 어떻게 발생했는지, 그리고 이러한 일이 다시 발생하지 않도록 하기 위해 수행할 수 있는 작업을 조사합니다.

몇 년 전, 수많은 주요 제조업체들이 벤치마크에서 부정 행위를 하다가 적발되어 상당한 소란이 있었습니다. 모든 규모의 OEM(포함 삼성, HTC, 소니, LG)는 잡히지 않고 사용자를 속이려는 군비 경쟁에 참여했지만 다행히도 그들은 솔직한 논의 끝에 결국 벤치마크 부정 행위를 중단했습니다. 업계 전문가 그리고 언론인.

2013년에는 그랬다. 발견 삼성이 특정 애플리케이션에서 GPU 클럭 속도를 인위적으로 높이고 있다는 사실이 일련의 촉발을 일으켰습니다. 조사 제조업체 전체에 걸쳐 벤치마크 부정 행위를 저지르는 행위입니다. 당시 조사 결과 Google/Motorola를 제외한 거의 모든 제조업체가 벤치마크 부정 행위에 가담하고 있는 것으로 나타났습니다. 그들은 모두 벤치마크에서 휴대폰의 성능을 조금 더 끌어올리기 위해 시간과 돈을 투자했습니다. 사용자가 자신의 휴대전화가 실제보다 빠르다고 생각하도록 속이기 위해 일상적인 사용에 긍정적인 영향을 미치지 않습니다. 이었다. 이러한 개발 노력은 클럭 속도 층 설정부터 클럭 속도를 최대 설정으로 강제 적용, 특수한 더 높은 속도 생성에 이르기까지 모든 영역을 다뤘습니다. 벤치마킹 시에만 사용할 수 있는 전원 상태 및 특수 클럭 속도 등의 노력으로 인해 종종 몇 퍼센트 포인트만 증가하는 결과를 얻었습니다. 기준.

이러한 벤치마크 부정 행위 시도가 벤치마크 자체의 요점에 어긋나기 때문에 이것이 발견되었을 때 상당한 분노가 있었습니다. 대부분의 벤치마크는 실험실 조건에서 휴대전화의 이론적 최대 성능을 알려주지 않습니다. 일상적인 사용에서 재현 가능하지만 오히려 실제 비교에 대한 참조 지점을 제공하기 위해 존재합니다. 전화기. 기술 간행물, 업계 리더 및 일반 대중을 대상으로 대부분의 제조업체는 벤치마크 부정 행위가 용납될 수 없다는 메시지를 받고 벤치마크 부정 행위를 중단했습니다. 결과. 그 시점에서 멈추지 않은 소수의 사람들은 상당한 변화가 있었기 때문에 곧 중단되었습니다. 벤치마크 부정 행위를 방지하기 위해 벤치마크 실행 횟수를 측정합니다( 그것). 클럭 속도 최대화로 인한 열 조절이 즉시 명백해질 수 있도록 많은 벤치마크가 더 길어졌습니다.

언제 우리가 인터뷰한 Geekbench의 창시자인 John Poole이 벤치마크 부정행위에 대한 주제와 Primate Labs와 같은 회사가 이를 방지하기 위해 할 수 있는 일이 나왔습니다. 특히 Primate Labs는 벤치마크 부정 행위의 영향을 줄이기 위해 Geekbench 4를 Geekbench 3보다 상당히 길게 만들었습니다. 발전을 보장하기 위해 이점을 줄입니다. 벤치마크 부정 행위로 인한 비용은 그만한 가치가 없습니다.

"문제는 일단 시계를 늘려 게임을 시작하면 이렇게 큰 런타임이 있다는 것입니다. 속도를 높이거나 거버너를 비활성화하는 등의 작업을 수행하면 실제로 실제 위험이 가중되기 시작하게 됩니다. 핸드폰... 게임을 하려고 한다면... 당신은 그것으로부터 많은 것을 얻지 못할 것입니다. 여전히 몇 퍼센트의 수익을 얻을 수도 있지만, 정말 그만한 가치가 있나요?" - John Poole


무슨 일이에요

불행하게도 일부 OEM이 다시 부정행위를 시작했다는 사실을 보고해야 합니다. 이는 다시 한 번 경계해야 한다는 의미입니다. 다행히도 제조업체는 이와 같은 문제에 점점 더 적극적으로 대응하고 있으며, 적절한 주의를 기울이면 이 문제를 신속하게 해결할 수 있습니다. 반발이 얼마나 심했는지에 비추어 제조업체가 벤치마크 부정 행위를 구현하는 것을 보는 것은 약간 충격적입니다. 마지막으로 시도되었을 때(일부 벤치마크에서는 부정 행위 장치를 성능에서 완전히 제외함) 기울기). 이러한 반발은 벤치마크 부정 행위로 인한 성능 향상이 일반적으로 얼마나 작은지와 대조됩니다(대부분의 경우). 지난번에 5% 미만의 점수 증가를 보인 시도 중), 우리는 이것이 모두 뒤처지길 진심으로 바랐습니다. 우리를.

몇 달 전 벤치마크 부정 행위로 인해 순전히 매니아들의 관심을 끌었고, 폭스바겐과 피아트 크라이슬러가 모두 배기가스 관련 부정 행위를 하다가 적발되자 대중 앞에 모습을 드러냈습니다. 벤치마크. 두 회사 모두 디젤 자동차의 배기가스 배출 테스트를 감지하는 소프트웨어를 구현하고 저배출 모드로 전환하도록 했습니다. 배기가스 규제 한도를 유지하면서 연비 측면에서 휘발유 자동차와 경쟁하기 위해 연비가 떨어졌습니다. 테스트. 지금까지 이 스캔들로 인해 수십억 달러의 벌금, 수백억 달러의 리콜 비용, 기소가 발생했습니다. 확실히 그런 종류의 보복은 아닙니다. OEM은 순전히 사용자 비교를 위한 것이며 규제를 측정하는 데 사용되지 않는 벤치마크 점수를 부풀리는 것을 보게 될 것입니다. 요구 사항.

하는 동안 Qualcomm이 어떻게 더 빠른 앱 열기 속도를 달성했는지 조사 중입니다. 당시 새로운 Qualcomm Snapdragon 821에서 우리는 이상한 점을 발견했습니다. 원플러스 3T 우리는 그것을 재현할 수 없었습니다. 샤오미 미 노트 2 아니면 그 구글 픽셀 XL, 다른 Snapdragon 821 장치 중에서. 편집장인 Mario Serrafero는 Qualcomm Trepn과 Snapdragon Performance Visualizer를 사용하여 Qualcomm이 CPU를 "부스트"하는 방법을 모니터링했습니다. 앱을 열 때 클럭 속도가 느려지고 OnePlus 3T의 특정 앱이 이후 정상적인 유휴 속도로 떨어지지 않는 것을 발견했습니다. 열리는. 일반적으로 우리는 성능 모니터링 도구로 인해 발생하는 추가 성능 오버헤드로 인해 가능할 때마다 성능 모니터링 도구를 열어 벤치마크 테스트를 피합니다. (특히 공식적인 데스크톱 도구가 없는 비 Snapdragon 장치의 경우) 그러나 이 사건에서는 우리가 놓쳤을 수도 있는 이상한 동작을 발견하는 데 도움이 되었습니다. 그렇지 않으면.

특정 벤치마킹 앱에 들어가면 OnePlus 3T의 코어는 CPU 부하가 0%로 떨어지더라도 작은 코어의 경우 0.98GHz 이상, 큰 코어의 경우 1.29GHz 이상으로 유지됩니다. 일반적으로 부하가 없을 때 OnePlus 3T에서 두 코어 세트 모두 0.31GHz로 떨어지기 때문에 이는 매우 이상합니다. 처음 봤을 때 원플러스의 CPU 스케일링이 좀 이상하게 설정되어 있는 게 아닐까 걱정했는데, 그러나 추가 테스트를 통해 OnePlus는 특정 타겟을 타겟팅해야 한다는 결론에 도달했습니다. 응용 프로그램. 우리의 가설은 OnePlus가 이러한 벤치마크를 이름별로 목표로 삼고 벤치마크 점수를 높이기 위해 대체 CPU 확장 모드로 들어가고 있다는 것이었습니다. 우리의 주요 관심사 중 하나는 OnePlus가 OnePlus에서 발생한 문제를 피하기 위해 이 모드에서 더 느슨한 열 제한을 설정할 가능성이 있다는 것입니다. One, OnePlus X 및 OnePlus 2에서는 전화기가 Geekbench의 멀티 코어 섹션에 대해 온라인으로 제공되는 추가 코어를 제대로 처리하지 못했습니다. 그 결과 때때로 속도가 크게 저하됩니다(OnePlus X가 싱글 코어 섹션보다 멀티 코어 섹션에서 더 낮은 점수를 받는 경우도 있음). 핵심 섹션). 우리에서 무거운 제한을 찾을 수 있습니다 원플러스 2 리뷰, 여기서 우리는 장치가 Geekbench 3 멀티 코어 점수의 최대 50%를 줄일 수 있다는 것을 발견했습니다. 나중에 장치 전반에 걸쳐 조절과 발열을 비교하기 시작했을 때 원플러스 2 OEM이 피해야 할 사항을 보여주는 교과서적인 사례가 되었습니다.

우리는 다음 팀에 연락했습니다. 영장류 연구소 (Geekbench의 창시자)는 벤치마크 부정 행위의 첫 번째 물결을 폭로하는 데 중요한 역할을 했으며 추가 테스트를 위해 이들과 협력했습니다. 초기 분석을 위해 OnePlus 3T를 토론토에 있는 Primate Labs 사무실로 가져왔습니다. 초기 테스트에는 OnePlus 3T가 이름으로 꽤 많은 앱을 직접 찾고 있음을 발견한 ROM 덤프가 포함되었습니다. 특히 OnePlus 3T는 Geekbench, AnTuTu, Androbench, Quadrant, Vellamo 및 GFXBench를 찾고 있었습니다. 이 시점에서 우리는 OnePlus가 벤치마크 부정 행위에 관여하고 있다는 상당히 명확한 증거를 얻었으므로 Primate Labs는 “밥의 미니 골프 퍼트” 우리를 위한 Geekbench 4 버전. 덕분에 실질적인 변화 Geekbench 3과 4 사이에는 "미니 골프" 특히 이 테스트를 위해 버전을 처음부터 다시 빌드해야 했습니다. 이 버전의 Geekbench 4는 Geekbench가 정상적으로 실행될 수 있도록 벤치마크 감지를 방지하도록 설계되었습니다. 부정 행위를 하는 휴대폰의 응용 프로그램(벤치마크에서 대부분의 시도를 속이는 패키지 이름 변경 이상의 것) 부정 행위).


놀라운 예

앱을 열자마자 차이가 확연히 드러났습니다. OnePlus 3T는 일반 Geekbench 앱에서처럼 큰 코어의 경우 1.29GHz, 작은 코어의 경우 0.98GHz가 아닌 대부분의 앱에서와 같이 0.31GHz에서 유휴 상태였습니다. OnePlus는 CPU 거버너를 더욱 공격적으로 만들어 숨겨진 Geekbench 빌드에는 없었던 Geekbench의 실용적인 인공 클럭 속도 바닥을 만들었습니다. 이는 CPU 작업량을 기반으로 한 것이 아니라 숨겨진 빌드가 속일 수 있는 앱의 패키지 이름을 기반으로 했습니다. 개별 실행의 차이는 미미했지만 아래 표시된 지속적인 성능 테스트에서는 열 조절 완화가 빛을 발했습니다.

테스트에 따르면 이는 꽤 오랫동안 Hydrogen OS의 "기능"이었고 Nougat 릴리스로 이어지는 커뮤니티 빌드가 완료될 때까지 Oxygen OS에 추가되지 않은 것으로 보입니다. 두 개의 ROM이 병합되었습니다.). 특히 이번 달 ROM 병합 이후 OnePlus가 겪었던 소프트웨어 문제를 고려하면 다소 실망스럽습니다. 부트로더 취약점 에게 GPL 준수 문제. 우리는 두 팀이 합병된 후 상황이 진정되면서 OnePlus가 다시 원래 모습으로 돌아가 개발자 친화적인 옵션으로 계속 자리매김할 수 있기를 바랍니다.

와 더불어 "미니 골프" Geekbench 버전을 손에 쥐고 나가서 다른 휴대폰에서도 벤치마크 부정 행위를 테스트하기 시작했습니다. 다행스럽게도 우리 테스트에서는 5년 전 스캔들에 연루된 회사들의 부정 행위가 없는 것으로 나타났습니다. HTC, Xiaomi, Huawei, Honor, Google, Sony 등은 일반 Geekbench 빌드와 "미니 골프" 우리의 테스트 장치를 기반으로 구축하세요.

불행하게도 우리는 다른 몇몇 회사로부터 아직 확인할 수 없는 벤치마크 부정 행위의 가능한 증거를 찾았으며, 이를 추가로 조사할 것입니다. 이에 대한 최악의 예는 벤치마크 부정 행위를 또 다른 극단으로 끌어 올린 Exynos 8890 기반 Meizu Pro 6 Plus였습니다.


끔찍한 예

Meizu는 역사적으로 CPU 스케일링을 매우 보수적으로 설정했습니다. 특히 그들은 "성능 모드"에 있을 때에도 대형 코어가 거의 온라인 상태가 되지 않도록 휴대폰을 설정하는 경우가 많습니다. 엑시노스 8890) 그들이 주력 휴대폰에 넣은 것은 미드레인지 프로세서처럼 작동합니다. 이 문제는 작년에 정점에 이르렀습니다. 아난드텍 Mediatek Helio X25 기반 Meizu Pro 6에 대한 Anandtech의 JavaScript 벤치마크에서 성능이 좋지 않은 Meizu를 지적했습니다. 대부분의 테스트 동안 대형 코어가 오프라인 상태로 유지되었다고 언급했습니다(테스트가 대형 코어에서만 거의 독점적으로 실행되어야 했음에도 불구하고). 코어). Anandtech는 지난 주 Meizu Pro 6에 소프트웨어 업데이트가 푸시되어 마침내 Meizu가 해당 코어를 최대한 활용할 수 있게 되었다는 사실을 알아냈습니다. Anandtech의 스마트폰 수석 편집자 Matt Humrick은 언급하다 저것 "Flyme OS 5.2.5.0G로 업데이트한 후 PRO 6의 성능이 훨씬 향상되었습니다. Kraken, WebXPRT 2015 및 JetStream 점수는 약 2배~2.5배 향상됩니다. Meizu는 더 나은 성능을 위해 스레드가 A72 코어로 더 자주 마이그레이션할 수 있도록 로드 임계값을 조정한 것으로 보입니다."

불행하게도 새로운 장치에 대한 CPU 확장성을 개선하는 것보다 더 나은 성능을 얻는 것으로 보입니다. 벤치마크 점수를 보면 특정 앱이 실행될 때 큰 코어를 사용하도록 전화기를 설정한 것으로 보입니다. 달리기.

벤치마킹 앱을 열면 Meizu Pro 6 Plus에서는 "성능 모드"(단독)로 전환할 것을 권장합니다. 특정 패키지 이름을 찾고 있음을 확인하는 데 충분하며 상당한 차이를 만드는 것 같습니다. 표준 "균형 모드"에 있을 때 전화기는 Geekbench의 단일 코어 및 멀티 코어 섹션에서 지속적으로 약 604 및 2220의 점수를 얻었습니다. "성능 모드"는 1473과 3906의 점수를 얻었습니다. 이는 "균형 모드"에서 대부분의 테스트 동안 큰 코어가 꺼져 있었다가 켜진 덕분입니다. "성능 모드". Meizu는 작은 코어를 최대 속도 1.48GHz로 고정하고 실행 시 1.46GHz의 큰 코어 2개에 대해 단단한 바닥을 설정하는 것으로 보입니다. "성능 모드"(다른 두 개의 큰 코어는 자유롭고 매우 공격적으로 확장이 허용됨)에 있는 동안 Geekbench를 볼 수 없습니다. 실행 "미니 골프" 짓다.

고전력 모드와 저전력 모드 중에서 선택할 수 있다는 것은 좋은 기능일 수 있지만, 이 경우에는 단순한 속임수에 불과해 보입니다. Meizu Pro 6 Plus는 일반 Geekbench 앱의 "성능 모드"에서 괜찮은 점수를 얻었습니다. "미니 골프" Geekbench를 빌드하면 "균형 모드"로 설정했을 때와 동일한 수준의 성능이 바로 떨어집니다. Meizu Pro 6 Plus의 더 높은 성능 상태는 벤치마킹용일 뿐 실제 일상 사용에는 적합하지 않습니다.

한 가지 주목할 점은 "성능 모드"에서 Meizu Pro 6 Plus를 테스트했을 때 비밀이 있다는 것입니다. Geekbench 빌드, Qualcomm으로 클럭 속도를 기록하면 큰 코어가 온라인 상태가 됩니다. Trepn. Meizu가 Trepn이 실행 중이고 큰 코어를 켜는 것을 인식하고 있는지 아직 확인하지 못했습니다. 그 이유 중 하나이거나 단순히 추가 CPU 로드로 인해 큰 코어를 켜는 경우입니다. 만듭니다. 백그라운드에서 추가 로드(예: 테스트 중에 성능 그래프를 유지한 경우)가 발생한다는 것은 직관적이지 않게 들릴 수 있지만 증가하다 벤치마크 결과에 따르면 Meizu의 보수적인 확장은 추가 오버헤드가 가장자리를 넘어 큰 코어를 작동시켜 모두를 위한 성능을 향상시킬 수 있을 만큼 충분합니다. 작업.


수용적인 OEM이 피드백을 처리할 때...

테스트 후 발견된 문제에 대해 OnePlus에 연락했습니다. 답으로, OnePlus는 벤치마크 부정 행위로 벤치마킹 앱 타겟팅을 중단하겠다고 신속하게 약속했지만 여전히 게임용으로 유지할 계획입니다(벤치마킹도 됨). OxygenOS의 향후 빌드에서는 이 메커니즘이 벤치마크에 의해 실행되지 않습니다.. OnePlus는 사용자가 무슨 일이 일어나고 있는지 알 수 있도록 토글을 추가하라는 우리의 제안을 받아들였습니다. 내부적으로는 최소한 벤치마크에서 불공평하고 오해의 소지가 있는 이점이 있어야 합니다. 수정. 하지만 중국 설날 연휴와 기능 백로그로 인해 이 성능 기능에 대한 사용자 맞춤 설정 옵션이 표시되기까지는 다소 시간이 걸릴 수 있습니다. 행동을 바로잡는 것만으로도 개선이 되지만, 아직은 일반에서 보기엔 좀 아쉽습니다. 게임과 같은 애플리케이션은 실제 성능을 향상시키는 대신 특정 앱을 대상으로 하는 목발이기 때문입니다. 스케일링. 프로세서의 공격성을 인위적으로 강화하여 실제로 더 높은 수준이 필요한 시기를 식별하는 휴대폰 기능을 향상시키는 대신 특정 앱의 클럭 속도를 높입니다. 클럭 속도로 인해 OnePlus는 휴대폰에 일관되지 않은 성능을 생성합니다. 이는 휴대폰이 오래되고 OnePlus가 목표로 삼지 않은 게임이 많아질수록 더욱 분명해집니다. 출시된. 그러나 구현을 통해 현재 게임 성능이 더 향상되었습니다. OnePlus는 또한 이 기사에 대한 설명을 제공했는데, 아래에서 읽을 수 있습니다.

 '리소스 집약적인 앱과 게임, 특히 그래픽 집약적인 앱과 게임에서 사용자에게 더 나은 사용자 경험을 제공하기 위해 첫째, 우리는 프로세서가 더 많이 실행되도록 트리거하기 위해 커뮤니티와 Nougat 빌드에 특정 메커니즘을 구현했습니다. 공격적으로. 벤치마킹 앱을 위한 트리거 프로세스는 OnePlus 3 및 OnePlus 3T의 향후 OxygenOS 빌드에는 존재하지 않습니다.'

OnePlus가 휴대폰에서 벤치마크 부정 행위를 제거할 것이라는 소식을 듣고 기쁘게 생각합니다. 앞으로도 우리는 가능할 때마다 OEM에게 더욱 소비자 친화적이 되도록 압력을 가할 것이며 향후 벤치마크 부정 행위를 주의 깊게 관찰할 것입니다.

불행하게도 이러한 유형의 속임수에 대한 유일한 실제 대답은 끊임없는 경계입니다.. 스마트폰 매니아 커뮤니티로서 우리는 이와 같은 사용자를 속이려는 시도를 경계해야 합니다. 우리가 관심을 갖는 것은 벤치마크 점수 자체가 아니라 벤치마크가 휴대폰 성능에 대해 말하는 것입니다. 벤치마크 부정 행위가 아직 활성화되지는 않았지만 원플러스 3 우리가 그것을 검토했을 때, 간단한 소프트웨어 업데이트만으로도 이 오해의 소지가 있는 "기능"을 추가하기에 충분했으며, 기기를 처음 출시할 때 벤치마크 부정 행위가 있는지 확인하는 것이 아니라는 점을 명확하게 보여줍니다. 충분한. 이와 같은 문제는 장치 출시 후 인위적으로 며칠, 몇 주, 몇 달 또는 몇 년 후에 추가될 수 있습니다. 몇 달 후에 벤치마크를 통해 수집된 글로벌 평균을 부풀려 최종 데이터베이스에 영향을 줍니다. 결과. 이러한 변경에도 불구하고 제조업체는 개발을 위해 시간과 비용을 투자해야 했다는 점에 유의해야 합니다. 일반적으로 벤치마크 점수는 몇 퍼센트 포인트만 증가하는 것으로 나타납니다. (부정 행위로 인해 훨씬 ​​더 큰 문제가 은폐되는 Meizu와 같은 몇 가지 비주류 사례는 제외됩니다.) 최고 성능의 장치와 최저 성능의 장치 사이의 격차보다 훨씬 작은 몇 퍼센트 포인트입니다. 그러나 장치가 점점 더 유사한 하드웨어를 실행하게 되면서 이러한 추가 백분율 포인트가 사용자가 궁극적으로 조회하는 순위 차트에서 결정적인 요소가 될 수 있다고 주장합니다. 더 나은 드라이버 최적화와 더 스마트한 CPU 확장은 장치 성능에 절대적으로 큰 영향을 미칠 수 있습니다. 최고 성능의 Qualcomm Snapdragon 820 기반 장치 점수와 최악의 성능(주요 OEM) 장치 점수가 20%를 초과했습니다. 긱벤치. 사용자를 속이기 위해 시간과 돈을 소비하는 데 2% 포인트가 아닌 드라이버 최적화에서 20%가 발생합니다. 이는 벤치마크 점수에 영향을 미칠 수 있는 개발 노력에 대해서만 이야기하는 것입니다. 장치 소프트웨어 개선에 투자하면 얻을 수 있는 가장 큰 이점 벤치마크에 항상 표시되지는 않음, OnePlus는 장치에서 뛰어난 실제 성능을 제공합니다. 이 경우 기업의 개발 노력이 어디에 초점을 맞춰야 하는지가 분명해져야 합니다. 우리는 벤치마크에서 부정 행위를 하는 더 많은 회사에 접근하고 있으며 그들이 OnePlus만큼 수용적이기를 바랍니다.


이 문제를 발견하기 위해 협력해 주신 Primate Labs 팀에 다시 한 번 감사의 말씀을 전하고 싶습니다. Geekbench의 "Mini Golf" 에디션이 없었다면 벤치마크 부정행위를 적절하게 테스트하는 것이 훨씬 더 어려웠을 것입니다.