CPU Turbo boost: modifique o limite de temperatura em 14.04

4

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

Existe um CPU i7-3630QM a 2.40GHz com turbo de 3.20GHz no meu notebook Lenovo Y580. Se eu colocar o cpu em carga total (com renderização no liquidificador em 8 threads) a freqüência salta para cerca de 3,2 GHz para todos os núcleos, mas depois de alguns segundos, quando a temperatura sobe, a freqüência diminui para 2,4 GHz, e fica nele durante a renderização, (a ventoinha não roda na velocidade máxima).

Quando eu usei o Ubuntu 12.10 este problema não ocorreu, mas acontece em 13.10 e 14.04.

O cooler dos meus notebooks é muito bom, então não há problema de aquecimento com o turbo boost de velocidade total (a temperatura da cpu era de 85-90 ° C a 3,2GHz no ubuntu 12.10), então eu quero usá-lo na velocidade máxima. Como posso usar o cpu com turbo boost na velocidade total de 3.2GHz no Ubuntu 14.04 sem esse limite (temperatura?)?

(depois de discutir com o terdon) Eu acho que o problema é que a freqüência da CPU é reduzida antes que o ventilador possa responder à alta temperatura. APÓS o cpu ter voltado de 3.2GHz para 2.4GHz, o ventilador gira por um momento, mas como o cpufreq já está reduzido, ele gera menos calor, então a rotação do ventilador cai. Seria ok, se depois de cpu esfriando, a freqüência subir novamente para 3,2 GHz, mas fica em 2,4 GHz.

Algumas medidas:

Saída do programa i7z, quando a renderização acaba 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 de 5 a 10 segundos mais tarde (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.

    
por liszi 29.04.2014 / 12:38

2 respostas

4

Após uma longa busca, encontro a resposta para minha pergunta na página: link

O antigo acpi-cpufreq não consegue controlar bem o turbo, mas intel_pstate driver e thermald podem. Eu habilitei intel_pstate e instalei thermald . Agora cpu pode ser executado no modo de turbo boost, em 3,2 GHz quase continuamente. Isso significa um desempenho adicional de 25 a 30% durante a renderização no liquidificador.

Infelizmente, isso também significa mais calor, então a temperatura do meu processador se move em torno de 90-100 ° C, e às vezes se auto-estrangula. Então, por que você estava certo, eu deveria limpar o ventilador. :)

Na página da Intel, a temperatura de 105 ° C é a temperatura máxima de junção do meu processador; por causa disso, a aceleração térmica é ativada, então não tenho que me preocupar com o superaquecimento da CPU.

Infelizmente, não consigo encontrar nenhum exemplo útil para configurar e usar thermald , por isso deixo as opções padrão, mas, ao ler, pode ajudar muito no resfriamento.

    
por liszi 29.04.2014 / 21:52
5

Isso não é um bug, é um recurso! Verifique suas temperaturas, a única razão pela qual a velocidade da CPU é diminuída é porque você está superaquecendo. Olhe para a primeira saída que você mostra, você tem um dos seus núcleos rodando a 92 ° C! Isso é muito bom para começar e provavelmente foi ainda maior antes que a velocidade do clock fosse reduzida.

Você pode verificar a temperatura máxima com a qual seu processador pode lidar executando sensors . Por exemplo, para o 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ê pode forçar sua CPU a manter a mesma velocidade de clock. Isso é controlado pelo regulador da CPU. Você provavelmente definiu como ondemand , mas as seguintes opções estão disponíveis:

  • Desempenho mantém a CPU na maior frequência possível
  • O Powersave mantém a CPU na menor frequência possível
  • O Espaço do usuário exporta as informações de frequência disponíveis para o nível do usuário (por meio do sistema de arquivos / sys)           e permite o controle do espaço do usuário da frequência da CPU
  • Ondemand dimensiona as frequências da CPU de acordo com o uso da CPU (assim como a escala de frequência do espaço do usuário          daemons, mas no kernel)
  • Conservador age 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 seu computador será desligado quando as altas temperaturas forem atingidas. Também pode ainda reduzir a escala, não tenho certeza de como os recursos de segurança são implementados. Em qualquer caso, o ponto principal é que você não quer fazer isso porque pode danificar seriamente seu hardware .

Existem razões muito boas pelas quais o seu computador não permite ultrapassar determinadas temperaturas e você não quer estragar com isso. Eu não sei de qualquer maneira de realmente desabilitar o limite de temperatura e eu não diria se eu fizesse isso. Existem maneiras mais fáceis, mas a desativação dos limites de segurança de temperatura é certamente uma boa maneira de destruir seu computador.

    
por terdon 29.04.2014 / 12:52