Thursday, September 20, 2012

L'overclocking du Pi

La nouvelle version de Raspbian Wheezy change un peu le mode d'operation de l'overclocking.

On peut choisir le niveau d'overclocking par le menu raspi-config:



Une fois que l'on redemarre:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq


Ca nous donne 700000, soit 700,000 KHz ou encore 700 MHz. Mais j'ai choisi 800, non? C'est un overclock dynamique.

Il faut mettre une charge sur le cpu, ce que je fais avec un petit script python tout simple (le mettre dans un fichier cpu.py):

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
CPU - a cpu load script for the Raspberry Pi.
EN: Makes it easier to test for cpu clock speed, when overclocking.
FR: Permet de mettre une charge sur le processeur, pour verifier l'overclocking
ES: Nos ayuda a ver si el overclocking opera o no con una carga del CPU
"""
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

import math

# Takes about 18s on the Pi
for i in range(2000000):
    x = math.sqrt(i)

Seules les 2 dernieres lignes font le boulot, une boucle de 2,000,000 de fois a calculer la racine carree. Ah oui, et l'import math car c'est une option. Le reste, c'est juste ce que je fais 100% dans tout mes scripts python.

Quand il roule (python cpu.py ou encore direct ./cpu.py si on chmod +x cpu.py) on voit bien le 99% sous top:

Tasks:  60 total,   2 running,  58 sleeping,   0 stopped,   0 zombie
%Cpu(s): 99.7 us,  0.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    189104 total,   176760 used,    12344 free,    13604 buffers
KiB Swap:   102396 total,        0 used,   102396 free,   102376 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND          
 3456 fdion     20   0 42940  34m 2368 R  99.0 18.8   0:10.61 python           
 3453 fdion     20   0  6348 1368 1044 R   0.7  0.7   0:00.42 top              
 3442 fdion     20   0 10552 1520  892 S   0.3  0.8   0:00.10 sshd             
    1 root      20   0  2136  732  624 S   0.0  0.4   0:01.63 init             
    2 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kthreadd         
    3 root      20   0     0    0    0 S   0.0  0.0   0:00.00 ksoftirqd/0      
    5 root      20   0     0    0    0 S   0.0  0.0   0:00.28 kworker/u:0      
    6 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper          
    7 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs        
    8 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 netns            
    9 root      20   0     0    0    0 S   0.0  0.0   0:00.01 sync_supers      
   10 root      20   0     0    0    0 S   0.0  0.0   0:00.00 bdi-default      
   11 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kblockd          
   12 root      20   0     0    0    0 S   0.0  0.0   0:00.23 khubd   


 fdion@raspberrypi ~/python_projects/load $ ./cpu.py &  
 [1] 1987  
 fdion@raspberrypi ~/python_projects/load $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq  
 800000  
 fdion@raspberrypi ~/python_projects/load $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq  
 800000  
 fdion@raspberrypi ~/python_projects/load $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq  
 700000  
 [1]+ Done          ./cpu.py  
   

800000 c'est 800,000 KHz ou 800 MHz.

Donc ca fonctionne.

Il est aussi possible de forcer l'overclock sans le mode econome en ajoutant la commande force_turbo = 1 dans le /boot/config.txt.

1 comment:

Carmelo42 said...

merci beaucoup :)

ça fonctionne parfaitement sur mon Pi :)