Intel i7-1065G7이 최대 터보 부스트 주파수에 도달하지 않음

Aug 18 2020

Intel i7-1065G7 CPU 가 장착 된 노트북이 있습니다. turbostat보고서

35 * 100.0 = 3500.0 MHz max turbo 8 active cores
35 * 100.0 = 3500.0 MHz max turbo 7 active cores
35 * 100.0 = 3500.0 MHz max turbo 6 active cores
35 * 100.0 = 3500.0 MHz max turbo 5 active cores
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
35 * 100.0 = 3500.0 MHz max turbo 3 active cores
38 * 100.0 = 3800.0 MHz max turbo 2 active cores
39 * 100.0 = 3900.0 MHz max turbo 1 active cores

(물리적 코어 8 개 / 가상 코어 4 개 mpfr) CPU에서 대규모 단일 스레드로드 (파이를 사용하여 파이 계산 )를 던지면 두 개의 코어 (물리적 코어 하나 일 수도 있음)가 정확히 3500MHz에서 실행되고 다른 코어는 더 낮은 회수. 그러나 그들은 더 높은 터보 부스트 주파수에 도달하지 않습니다.

일부 CPU 코어 (예 :)를 비활성화 echo 0 > /sys/devices/system/cpu/cpu[2-7]*/online하면 랩톱 해당하는 더 높은 터보 부스트 주파수에 도달하여 성능이 향상됩니다 (이전에 평균 18.5 초가 걸렸던 작업은 16.8 초가 걸립니다).

모든 코어가 필요하지 않을 때 새 노트북이 최대 클럭 속도에 도달하도록하려면 어떻게해야합니까?

HP Envy x360 노트북에서 커널 5.4.0과 함께 Ubuntu 20.04를 사용하고 있습니다.

내가 기대하는 것 : i7-4712MQ turbostat 가 장착 된 오래된 노트북에서

30 * 100.0 = 3000.0 MHz max turbo 4 active cores
30 * 100.0 = 3000.0 MHz max turbo 3 active cores
32 * 100.0 = 3200.0 MHz max turbo 2 active cores
33 * 100.0 = 3300.0 MHz max turbo 1 active cores

(이것은 또한 4/8 코어 머신입니다). 이 시스템에서 단일 코어 부하는 거의 3.3GHz로 코어 1 개를 부스트하고, 2 코어 부하에서 3.2GHz에서 2 클럭 등으로 만듭니다.

Windows에서 개별 CPU 주파수를 확인하지 않았지만 작업 관리자가 때때로 3.7GHz 이상의 주파수를 표시합니다.

업데이트 : 그래서 문제가 사라졌습니다 ... 이유를 모르겠습니다. 제거 linux-cloud-tools했지만 이것이 이유가 될 것 같지 않습니다.

답변

H2ONaCl Aug 18 2020 at 08:01

당신은 ...

큰 단일 스레드로드를 던질 때

프로그램이 단일 스레드 인 경우 다른 스레드의 최대 주파수로 이동할 필요가 없으므로 그렇지 않습니다.

링크는 인텔 ® 코어 ™ i7-1065G7 프로세서 용입니다.

링크 한 인텔 문서에 따르면 최대 값은 3900MHz입니다. 귀하의 데이터는 3900MHz의 코어가 있음을 보여 주므로 왜 최대치에 도달하지 못했다고 생각하는지 모르겠습니다. 이 글을 게시했습니다 ...

35 * 100.0 = 3500.0 MHz max turbo 8 active cores
35 * 100.0 = 3500.0 MHz max turbo 7 active cores
35 * 100.0 = 3500.0 MHz max turbo 6 active cores
35 * 100.0 = 3500.0 MHz max turbo 5 active cores
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
35 * 100.0 = 3500.0 MHz max turbo 3 active cores
38 * 100.0 = 3800.0 MHz max turbo 2 active cores
39 * 100.0 = 3900.0 MHz max turbo 1 active cores

일반적으로 판독 값이 최대 주파수가 아닌 경우 이는 간헐적으로 만 수행되므로 측정시 간헐적으로 만 표시되거나 IO와 같은 제약이 있기 때문에 최대 주파수에있을 필요가 없기 때문입니다. 그것에 대해 걱정하지 마십시오. 제약이없는 프로그램을 작성하는 경우, 즉 컴퓨팅 제약 스레드이므로 최대 주파수에 도달 할 것이라고 보장합니다.

18.5 초의 경과 시간은 결론을 내리는 데 사용하지 않으려는 무작위 효과로 인해 의미가 없을 수 있습니다. 200 초 이상의 장기 실행 작업은 더 의미있는 데이터를 제공 할 수 있습니다.

thesps Sep 28 2020 at 19:04

비슷한 설정 (i7-9700K CPU, Ubuntu 18.04)에서 비슷한 경험을했습니다. 그리고 내 컴퓨터 사용이 비슷할 수 있다고 생각합니다. 이것은 집약적 인 (단일 스레드) 응용 프로그램을 실행하는 데 사용하는 데스크톱 컴퓨터이며 웹 브라우저와 일부 메시징 응용 프로그램을 열 수도 있습니다. 원래 게시물 아래의 의견에서 프로세스에 대한 CPU 선호도 설정이라는 제안을 찾았습니다. 나는 그것을 사용 taskset했다 [1].

첫 번째 테스트 (친 화성 설정 변경 없음) : 사용률이 ~ 10 % 인 8 개 코어 모두 '유휴'상태입니다. 단일 스레드, CPU 집약적 인 작업을 시작합니다. 하나의 코어가 100 %로 점프하면 .NET을 사용하는 모든 코어에서 3.6GHz (터보없는 최대 값)가 표시됩니다 i7z.

두 번째 테스트 : 실행중인 모든 프로세스를 CPU 코어 0 및 1로 제한합니다 . 이제이 2 개의 코어는 30-40 %에 있고 나머지는 0 %에 있습니다 (OS가 프로세스를 시작함에 따라 일부 다른 코어가 활동을 시작할 수 있음). 그런 다음 동일한 단일 스레드, CPU 집약적 작업을 시작합니다. 하나의 코어가 100 %로 점프하지만 이제는 4.9GHz의 최대 터보 주파수에 도달합니다. 그 후 제 경우 에는 범위를 로 대체하여 모든 코어를 사용하도록 선호도를 다시 설정했습니다 .for i in `sudo ps -aux | awk '{ print $2 }'`; do sudo taskset -a -p -c 0-1 $i; done0-10-7

[1] http://manpages.ubuntu.com/manpages/focal/man1/taskset.1.html