Como impedir que a Intel HD4000 seja executada na velocidade máxima do clock?

2

Eu tive um pouco de dificuldade tentando forçar o Intel HD4000 iGPU a rodar em uma velocidade de clock menor para economizar energia.

O que tentei até agora:

  • Parece "ficar", mas não tem efeito real no meu teste:

    echo 350 > /sys/kernel/debug/dri/0/i915_max_freq
    
  • Usando o link para controlar as velocidades de clock. Configurar a velocidade máxima do clock para 350MHz funcionaria quando não houvesse carga no iGPU, mas o carregamento de alguma carga de trabalho com gráficos pesados (como uma demonstração do WebGL no navegador) instantaneamente aumentaria a velocidade atual do clock para 1250MHz. Mínimo e máximo ainda são reportados como 350MHz. Editar: o mantenedor do projeto introduziu uma correção para esse problema, alterando os relógios agora.

  • Monitorando o carregamento iGPU com sobreposição de intel-gpu (parte do pacote intel-gpu-tools ), em cargas de trabalho inativas a velocidade do clock estava em 350MHz mas qualquer carga causa rajadas curtas para 1250MHz ou em cargas pesadas mais longas constante Carga de 1250MHz .

Testado no Arch Linux, kernel 4.13.11-1-ARCH, Thinkpad T430 com CPU Intel i7-3820QM com Intel HD4000, sem dGPU.

Há algo que estou sentindo falta aqui? O que mais eu posso tentar forçar o iGPU a não ter clock acima de 350MHz?

    
por Hermanio 12.11.2017 / 15:31

1 resposta

3

A maneira correta de fazer isso é usando esses dois comandos:

echo 350 | sudo tee /sys/class/drm/card0/gt_boost_freq_mhz
echo 350 | sudo tee /sys/class/drm/card0/gt_max_freq_mhz

350 é a frequência mínima que o iGPU suporta.

gt_boost_freq_mhz controla o relógio do boost (padrão 1250MHz)

gt_max_freq_mhz controla a velocidade nominal máxima do clock (padrão 650MHz)

Nota: os relógios max e boost podem variar entre os modelos. Use o seguinte para descobrir as velocidades de aceleração máxima e mínima suportadas:

cat /sys/class/drm/card0/gt_RP0_freq_mhz para o relógio de aumento

cat /sys/class/drm/card0/gt_RP1_freq_mhz para o clock máximo

cat /sys/class/drm/card0/gt_RPn_freq_mhz para o relógio min

Se o clock do boost for maior que a velocidade máxima do clock, a GPU provavelmente rodará na velocidade do clock do boost (padrão 1250MHz).

Aqui está um exemplo de configuração dos clocks de boost e max para 800MHz e depois de algum tempo sob carga para 350MHz. A frequência e o uso de energia caem claramente no gráfico inferior esquerdo da sobreposição:

IssopodefuncionarcomoutrasGPUs(IntelHD3000emaisrecentes),masqueprecisamsertestadas.

Fonte:

Reddit postar pelo usuário qgnox

    
por 12.11.2017 / 20:42