CPU Turbo boost: modifique o limite de temperatura abaixo de 14.04

CPU Turbo boost: modifique o limite de temperatura abaixo de 14.04

Instalei o kubuntu 14.04 e há algum problema com a frequência turbo da CPU. Eu li muito sobre isso, mas não consigo encontrar a resposta correta.

Há uma CPU i7-3630QM a 2,40 GHz com turbo de 3,20 GHz no meu notebook Lenovo Y580. Se eu colocar a CPU em plena carga (com renderização no liquidificador em 8 threads) a frequência salta para cerca de 3,2 GHz para todos os núcleos, mas depois de alguns segundos, quando a temperatura sobe, a frequência diminui para 2,4 GHz, e permanece nela durante a renderização (o ventilador não funciona na velocidade máxima).

Quando usei o Ubuntu 12.10 esse problema não ocorreu, mas ocorre em 13.10 e 14.04.

O cooler do meu notebook é muito bom, então não há problema de superaquecimento com o turbo boost de velocidade total (a temperatura da CPU era de 85-90 ° C a 3,2 GHz no Ubuntu 12.10), então quero usá-lo em velocidade máxima. Como posso usar a CPU com turbo boost na velocidade total de 3,2 GHz no Ubuntu 14.04 sem esse limite (de temperatura?)?

(depois de discutir com terdon) Acho que o problema é que a frequência da CPU é reduzida antes que o ventilador possa responder à alta temperatura. APÓS a redução da CPU de 3,2 GHz para 2,4 GHz, a ventoinha gira por um momento, mas como a cpufreq já foi reduzida, ela gera menos calor, então a rotação da ventoinha diminui. Estaria tudo bem se, após o resfriamento da CPU, a frequência aumentasse novamente para 3,2 GHz, mas permanecesse em 2,4 GHz.

Algumas medidas:

Saída do programa i7z, quando a renderização acabou de começar:

 Cpu speed from cpuinfo 2394.00Mhz                                                                                                                               
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc                                                                         
Linux's inbuilt cpu_khz code emulated now                                                                                                                       
True Frequency (without accounting Turbo) 2394 MHz                                                                                                              
  CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 MHz                                                                                                    

Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]                                                                                       
  TURBO ENABLED on 4 Cores, Hyper Threading ON                                                                                                                  
  Max Frequency without considering Turbo 2493.75 MHz (99.75 x [25])                                                                                            
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  34x/33x/32x/32x                                                                                      
  Real Current Frequency 3192.01 MHz [99.75 x 32.00] (Max of below)                                                                                             
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp                                                                     
        Core 1 [0]:       3191.98 (32.00x)       100       0       0       0       0    83                                                                      
        Core 2 [2]:       3192.01 (32.00x)      99.8       0       0       0       1    92                                                                      
        Core 3 [4]:       3192.00 (32.00x)       100       0       0       0       0    88                                                                      
        Core 4 [6]:       3192.00 (32.00x)       100       0       0       0       0    76                                                                      
...

E 5 a 10 segundos depois (também com carga total):

Cpu speed from cpuinfo 2394.00Mhz                                                                                                                               
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc                                                                         
Linux's inbuilt cpu_khz code emulated now                                                                                                                       
True Frequency (without accounting Turbo) 2394 MHz                                                                                                              
  CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 MHz                                                                                                    

Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]                                                                                       
  TURBO ENABLED on 4 Cores, Hyper Threading ON                                                                                                                  
  Max Frequency without considering Turbo 2493.75 MHz (99.75 x [25])                                                                                            
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  34x/33x/32x/32x                                                                                      
  Real Current Frequency 2462.52 MHz [99.75 x 24.69] (Max of below)                                                                                             
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp                                                                     
        Core 1 [0]:       2394.01 (24.00x)       100       0       0       0       0    65                                                                      
        Core 2 [2]:       2394.00 (24.00x)       100       0       0       0       0    74                                                                      
        Core 3 [4]:       2462.43 (24.69x)       100       0       0       0       0    71                                                                      
        Core 4 [6]:       2462.52 (24.69x)      99.9       0       0       0       0    61        
...

Agradecemos antecipadamente pelas respostas.

Responder1

Isso não é um bug, é um recurso! Verifique suas temperaturas, a única razão pela qual a velocidade da CPU diminui é porque você está superaquecendo. Veja a primeira saída que você mostra, você tem um de seus núcleos rodando a 92°C! Para começar, isso é muito quente e provavelmente aumentou ainda mais antes de a velocidade do clock ser reduzida.

Você pode verificar a temperatura máxima que sua CPU pode suportarcorrendosensors. Por exemplo, para meu Intel i7:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +77.0°C  (high = +95.0°C, crit = +105.0°C)
Core 2:       +79.0°C  (high = +95.0°C, crit = +105.0°C)

Portanto, na minha máquina, 95,0°C é considerado alto e 105°C é a temperatura crítica na qual a máquina será desligada. Suas especificações podem ser um pouco diferentes, mas 92,0°C é definitivamente alto.

Agora vocêpodeforçar sua CPU a manter a mesma velocidade de clock. Isso é controlado pelo governador da CPU. Você provavelmente o definiu como ondemand, mas as seguintes opções estão disponíveis:

  • Desempenhomantém a CPU na frequência mais alta possível
  • Economia de energiamantém a CPU na frequência mais baixa possível
  • Espaço do usuárioexporta as informações de frequência disponíveis para o nível do usuário (através do sistema de arquivos /sys) e permite o controle do espaço do usuário da frequência da CPU
  • Sob demandadimensiona as frequências da CPU de acordo com o uso da CPU (como fazem os daemons de escalonamento de frequência do espaço do usuário, mas no kernel)
  • Conservadoratua como o ondemand, mas aumenta a frequência passo a passo

Para alterar seu governador para, por exemplo, "Desempenho", execute isto:

echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

No entanto, o resultado provável será simplesmente que o computador será desligado quando as altas temperaturas forem atingidas. Também pode ser reduzido, não tenho certeza de como os recursos de segurança são implementados. De qualquer forma, o ponto principal é quevocê não quer fazer isso porque pode danificar seriamente o seu hardware.

Existem boas razões pelas quais o seu computador não permite que você ultrapasse certas temperaturas e você não quer estragar isso. Não conheço nenhuma maneira de desativar o limite de temperatura e não contaria se o fizesse. Existem maneiras mais fáceis, mas desabilitar os limites de segurança de temperatura é certamente uma boa maneira de destruir seu computador.

Responder2

Depois de uma longa pesquisa, encontro a resposta para minha pergunta nesta página: http://www.webupd8.org/2014/04/prevent-your-laptop-from-overheating.html

O velho acpi-cpufreqnão consegue controlar bem o turbo boost, mas intel_pstateo motorista thermaldconsegue. Eu habilitei intel_pstatee instalei thermald. Agora a CPU pode funcionar no modo turbo boost, em 3,2 GHz quase continuamente. Isso significa cerca de 25-30% de desempenho adicional durante a renderização no liquidificador.

Infelizmente, isso também significa mais calor, então a temperatura do núcleo da minha CPU gira em torno de 90-100°C e às vezes se acelera. Então, Tredon, você estava certo, eu deveria limpar o ventilador. :)

Na página da Intel 105 °C é a temperatura máxima de junção do meu CPU, acima dela o afogamento térmico está ativado, então não preciso me preocupar com superaquecimento do CPU.

Infelizmente não consigo encontrar nenhum exemplo útil para configurar e usar thermald, então deixo as opções padrão, mas pelo que li pode ajudar muito na refrigeração.

informação relacionada