Como ativar o turbo-boost

5

Eu tenho um Dell XPS 13 (edição para desenvolvedores) comprado há alguns anos no Ubuntu 12.04

Eu atualizei para o Ubuntu 16.04 e desde então notei que meu computador ficou mais lento do que antes em certas tarefas pesadas.

Eu também notei que meu computador ficou muito menos barulhento em tarefas pesadas, e parece que meu I7 Turbo boost não entra em ação.

Enviando trabalho para 4 procs, mostra turbostato:

 CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz
   -     602  100.00     603    2595
   0     611  100.00     611    2597
   1     594  100.00     595    2594
   2     610  100.00     612    2594
   3     594  100.00     595    2594

Eu não sou um especialista, mas parece que o turbo não funciona bem?

Como devo fazer isso funcionar? Todas as coisas que encontrei on-line só dizem para usar o turbostato, mas não ajudam a resolver o problema.

Alguma ideia?

Eu uso burnK7 para gerar carga de CPU. Note que no começo a coluna Bzy_MHz chega perto de 3Ghz, mas estabiliza perto de 1Ghz, isso é normal?

Meu processador: Intel® CPU Core ™ i7-3687U @ 2.10GHz × 4

Ubuntu: Ubuntu 16.04.1 LTS 64 bits

Em telas de carga pesada do i7z:

Ele diz que o modo turbo está habilitado, mas a freqüência é muito baixa, e tenho certeza que para a mesma tarefa (aqui compilando o código Scala) o computador era muito barulhento para a mesma tarefa antes de atualizar o Ubuntu. Por que isso acontece?

Eu desativei thermald com sudo service thermald stop

Obtenha também a seguinte saída de cpupower :

cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.30 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 1.98 GHz and 1.98 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.10 GHz.
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

Percebi que frequency should be within 1.98 GHz and 1.98 GHz. é, na verdade, um intervalo de destino em movimento e pode ser afetado por thermald start / stops.

Agora obtenho um resultado estranho:

  current policy: frequency should be within 3.30 GHz and 3.30 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.

Observe que os valores em arquivos como /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq parecem estar constantemente mudando

Algumas saídas extras de turbostato.

O primeiro está no início de uma fase de carregamento. No começo, a frequência é alta.

$ sudo turbostat --debug sleep 10
turbostat version 4.8 26-Sep, 2015 - Len Brown <[email protected]>
CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3a:9 (6:58:9)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 3855 sec. Joule Counter Range, at 17 Watts
cpu2: MSR_PLATFORM_INFO: 0x80815f0011a00
8 * 100 = 800 MHz max efficiency frequency
26 * 100 = 2600 MHz base frequency
cpu2: MSR_IA32_POWER_CTL: 0x0014005d (C1E auto-promotion: DISabled)
cpu2: MSR_TURBO_RATIO_LIMIT: 0x1f1f1f21
31 * 100 = 3100 MHz max turbo 4 active cores
31 * 100 = 3100 MHz max turbo 3 active cores
31 * 100 = 3100 MHz max turbo 2 active cores
33 * 100 = 3300 MHz max turbo 1 active cores
cpu2: MSR_CONFIG_TDP_NOMINAL: 0x00000015 (base_ratio=5)
cpu2: MSR_CONFIG_TDP_LEVEL_1: 0x00080070 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=8 PKG_TDP_LVL1=112)
cpu2: MSR_CONFIG_TDP_LEVEL_2: 0x001a00c8 (PKG_MIN_PWR_LVL2=0 PKG_MAX_PWR_LVL2=0 LVL2_RATIO=10 PKG_TDP_LVL2=200)
cpu2: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( lock=0)
cpu2: MSR_TURBO_ACTIVATION_RATIO: 0x00000014 (MAX_NON_TURBO_RATIO=20 lock=0)
cpu2: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, locked: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a1003 (0.125000 Watts, 0.000015 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x00000088 (17 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x800080fa00dc80c8 (locked)
cpu0: PKG Limit #1: ENabled (25.000000 Watts, 28.000000 sec, clamp DISabled)
cpu0: PKG Limit #2: ENabled (31.250000 Watts, 0.000977* sec, clamp DISabled)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x80000000 (locked)
cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x80000000 (locked)
cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00691200 (105 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x880a0908 (95 C)
cpu0: MSR_IA32_THERM_STATUS: 0x880c0008 (93 C +/- 1)
cpu2: MSR_IA32_THERM_STATUS: 0x880a0008 (95 C +/- 1)
    Core     CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz     SMI  CPU%c1  CPU%c3  CPU%c6  CPU%c7 CoreTmp  PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
       -       -    1900   79.17    2406    2594       0   15.12    0.11    0.00    5.60      93      93    0.00    0.00    0.00    0.00   10.51    6.86    0.37
       0       0    1893   78.90    2405    2594       1   16.29    0.16    0.00    4.65      89      93    0.00    0.00    0.00    0.00   10.51    6.86    0.37
       0       1    2016   84.01    2406    2594       1   11.18
       1       2    1982   82.61    2405    2594       1   10.78    0.06    0.00    6.55      93
       1       3    1710   71.16    2408    2594       1   22.23
10.001067 sec

O segundo é depois de um tempo sob carga: a diminuição da frequência:

$ sudo turbostat --debug sleep 10
turbostat version 4.8 26-Sep, 2015 - Len Brown <[email protected]>
CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3a:9 (6:58:9)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 3855 sec. Joule Counter Range, at 17 Watts
cpu2: MSR_PLATFORM_INFO: 0x80815f0011a00
8 * 100 = 800 MHz max efficiency frequency
26 * 100 = 2600 MHz base frequency
cpu2: MSR_IA32_POWER_CTL: 0x0014005d (C1E auto-promotion: DISabled)
cpu2: MSR_TURBO_RATIO_LIMIT: 0x1f1f1f21
31 * 100 = 3100 MHz max turbo 4 active cores
31 * 100 = 3100 MHz max turbo 3 active cores
31 * 100 = 3100 MHz max turbo 2 active cores
33 * 100 = 3300 MHz max turbo 1 active cores
cpu2: MSR_CONFIG_TDP_NOMINAL: 0x00000015 (base_ratio=5)
cpu2: MSR_CONFIG_TDP_LEVEL_1: 0x00080070 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=8 PKG_TDP_LVL1=112)
cpu2: MSR_CONFIG_TDP_LEVEL_2: 0x001a00c8 (PKG_MIN_PWR_LVL2=0 PKG_MAX_PWR_LVL2=0 LVL2_RATIO=10 PKG_TDP_LVL2=200)
cpu2: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( lock=0)
cpu2: MSR_TURBO_ACTIVATION_RATIO: 0x00000014 (MAX_NON_TURBO_RATIO=20 lock=0)
cpu2: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, locked: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a1003 (0.125000 Watts, 0.000015 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x00000088 (17 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x800080fa00dc80c8 (locked)
cpu0: PKG Limit #1: ENabled (25.000000 Watts, 28.000000 sec, clamp DISabled)
cpu0: PKG Limit #2: ENabled (31.250000 Watts, 0.000977* sec, clamp DISabled)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x80000000 (locked)
cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x80000000 (locked)
cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00691200 (105 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x881b0908 (78 C)
cpu0: MSR_IA32_THERM_STATUS: 0x881e0008 (75 C +/- 1)
cpu2: MSR_IA32_THERM_STATUS: 0x881b0008 (78 C +/- 1)
    Core     CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz     SMI  CPU%c1  CPU%c3  CPU%c6  CPU%c7 CoreTmp  PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
       -       -      30    2.79    1091    2594       0    6.92    0.30    0.00   89.99      70      71    1.60    0.03    1.48   47.85    3.65    0.71    0.29
       0       0      22    1.97    1133    2594       0    6.34    0.12    0.00   91.58      70      71    1.60    0.03    1.48   47.85    3.65    0.71    0.29
       0       1      38    3.09    1224    2594       0    5.22
       1       2      25    2.45    1016    2594       0    8.67    0.47    0.00   88.40      70
       1       3      37    3.67    1006    2594       0    7.45
10.001501 sec

No início da fase de carga, parece que minhas CPUs podem ficar muito quentes, perto de 105 °, que é a temperatura de junção das CPUs, e então um sistema impede que elas se cozinhem e diminuam significativamente a frequência para um mínimo .

Eu gostaria de ter um processador menos quente em carga pesada e, quando estiver ficando quente, diminuir menos significativamente o processador. Isso é possível?

Problemas relacionados que abri para resolver meu problema (pode conter informações adicionais não mencionadas aqui que podem ser úteis)

por Sebastien Lorber 20.07.2016 / 12:04

2 respostas

2

Eu me pergunto se a CPU está sendo estrangulada pelo powerclamp. Se você executar top, você pode ver threads kidle_inject em execução, se assim for, a CPU está sendo energizada como uma restrição térmica, portanto, você verá uma utilização aparente de 100% combinada com uma baixa frequência de CPU.

    
por Colin Ian King 20.07.2016 / 14:25
-2

Eu tive o mesmo problema com o meu i5. Verifique o seu driver. O 16.04 precisa de drivers adicionais para processadores Intel. Eu acho que instalando intel-microcode vai fazer o truque bem (após uma reinicialização ofc). Deixe-me saber como isso acontece.

    
por fixxxera 20.07.2016 / 13:43