Hello,
Si toi aussi tu es embêté pour passer des paramètres d'overclocking différents pendant l'idle de Qubic, ce tuto devrait t'être utile !
En effet, il est possible de lancer presque n'importe quel mineur pendant l'idle, mais certains logiciels de minage ne permettent pas de passer des arguments pour ajuster l'overclocking. Et même si d'autres logiciels le permettent, on ne peut pas revenir aux paramètres de base (comme avec nvtool) à la fin de la session idle. On se retrouve alors avec des paramètres désajustés dans ce cas précis.
J'ai donc créé un script qui permet d'appliquer des overclockings différents lors du passage en mode idle, puis de rétablir les paramètres initiaux à la fin de la session.
Dans ce script, je prends l'exemple du dual mining pour Qubic et Aleo, sur mes 4070Ti (#0, #1, #2) et 4080 Super (#3, #4).
Il faut d'abord comprendre comment fonctionne le script : il se base sur la consommation électrique du rig.
Sur Qubic, on aime pousser les overclockings à 7000 pour grappiller les ITS que le setmem 5000 ne nous permet pas d'obtenir.
Le problème, c'est que sur Aleo, le paramètre setmem 7000 est inutile : vous allez consommer 10 à 20 % de watts en plus (selon le GPU) pour seulement 3 à 5 % de gain en performance... (faites donc le test).
-
On va d'abord commencer par relever la consommation totale du rig sur Qubic avec le setmem 5000, puis sur Aleo avec le setmem 7000.
Si vous utilisez l'option "Hardware power consumption, watts" dans les paramètres de votre rig, n'oubliez pas de soustraire cette valeur de la consommation totale !
Une fois les valeurs relevées, on les conserve.
Maintenant on attaque, on commence par ouvrir un shell pour se connecter au Rig. (conseil, utilisez Tabby ou un équivalent car le shell du navigateur depuis Hive .. "BON CHANCE")
On entre les commandes suivantes:
cd /home/user
nano oc_settings.sh
Vous modifiez les paramètres du script suivant à votre guise et selon les résultats de conso obtenues précédemment. (dans un bloc note avant de le coller dans le shell c'est très important)
#!/bin/bash
WATTAGE_LOW=435 #ICI AJUTER LA CONSOMMATION MINI, LES SCRIPTS AVEC OC HIGH SERONT ALORS APPLIQUES
#RENSEIGNE TA CONSO AVEC QUBIC MEMOIRE 5000 et ajoutes 5% (Ex: 410w -> 435w)
WATTAGE_HIGH=930 #ICI AJUTER LA CONSOMMATION MAX, LES SCRIPTS AVEC OC LOW SERONT ALORS APPLIQUES
#RENSEIGNE TA CONSO MAX AVEC ALEO/AUTRES MEMOIRE 7000 et soustrais 5% (Ex: 980w -> 930w)
TOTAL_POWER=$(nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits | awk '{sum+=$1} END {print sum}')
apply_oc_high_power() {
echo "Consommation: $TOTAL_POWER / Les paramètres overclocking pour QUBIC ont été chargés..(SAUCE MODE: ON)"
#RENSEIGNE TES OCS POUR QUBIC ICI
nvtool -i 0 --setcoreoffset 300 --setclocks 2475 --setmem 7001 --setpl 170 --setmemoffset 2375
nvtool -i 1 --setcoreoffset 280 --setclocks 2475 --setmem 7001 --setpl 170 --setmemoffset 2375
nvtool -i 2 --setcoreoffset 300 --setclocks 2475 --setmem 7001 --setpl 170 --setmemoffset 2375
nvtool -i 3 --setcoreoffset 380 --setclocks 2525 --setmem 7001 --setpl 242 --setmemoffset 2450
nvtool -i 4 --setcoreoffset 260 --setclocks 2525 --setmem 7001 --setpl 142 --setmemoffset 2450
}
apply_oc_low_power() {
echo "Consommation: $TOTAL_POWER / Les paramètres overclocking pour ALEO ont été chargés.. (SAUCE MODE: OFF)"
#RENSEIGNE TES OCS POUR ALEO OU AUTRES ICI
nvtool -i 0 --setcoreoffset 300 --setclocks 2475 --setmem 5001 --setpl 170 --setmemoffset 2375
nvtool -i 1 --setcoreoffset 280 --setclocks 2475 --setmem 5001 --setpl 170 --setmemoffset 2375
nvtool -i 2 --setcoreoffset 300 --setclocks 2475 --setmem 5001 --setpl 170 --setmemoffset 2375
nvtool -i 3 --setcoreoffset 380 --setclocks 2525 --setmem 5001 --setpl 242 --setmemoffset 2450
nvtool -i 4 --setcoreoffset 260 --setclocks 2525 --setmem 5001 --setpl 142 --setmemoffset 2450
}
while true; do
TOTAL_POWER=$(nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits | awk '{sum+=$1} END {print sum}')
echo "Consommation actuelle: $TOTAL_POWER W"
# Vérifier si la consommation est inférieure à WATTAGE_LOW (1420W) et appliquer les paramètres High OC
if (( $(echo "$TOTAL_POWER < $WATTAGE_LOW" | bc -l) )); then
apply_oc_high_power
# Vérifier si la consommation est supérieure à WATTAGE_HIGH (1600W) et appliquer les paramètres Low OC
elif (( $(echo "$TOTAL_POWER > $WATTAGE_HIGH" | bc -l) )); then
apply_oc_low_power
else
echo "Tolérances OK. Aucune modification apportées."
fi
# Boucle sur 30sec
sleep 30
done
Une fois le script modifié faîtes: Ctrl + X pour quitter, pressez Y puis Entrer.
On passe la commande suivante dans notre shell:
chmod +x oc_settings.sh
Pour vérifier que le script fonctionne faîtes la commande suivante depuis le répertoire home/user:
./oc_settings.sh
Si vous avez bien respecté la syntaxe du script et bien paramétré vous devriez voir les overclockings s'ajuster avec nvtool selon la session idle/Qubic et au bout de quelques secondes un message de ce style:
Si vous redemarrez le rig il vous faudra relancer le script avec la commande suivante:
./home/user/oc_settings.sh
Si vous voulez aller plus loin et faire en sorte que le script d'execute dès le démarrage du rig nous allons mettre en place un service pour automatiser l'execution.
Tapez la commande suivante:
sudo nano /etc/systemd/system/auto_overclock_qubic.service
On copie/colle le script suivant (dans un bloc note avant de le coller dans le shell c'est très important)
[Unit]
Description=Script pour ajustement consommation overclocking Qubic/Aleo
After=network.target nvidia-persistenced.service
[Service]
ExecStart=/home/user/oc_settings.sh
Restart=always
User=root
Environment="PATH=/hive/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
WorkingDirectory=/home/user
StandardOutput=journal
StandardError=journal
EnvironmentFile=-/etc/environment
RuntimeDirectory=nvtool
RuntimeDirectoryPreserve=yes
[Install]
WantedBy=multi-user.target
Faîtes à nouveau: Ctrl + X pour quitter, pressez Y puis Entrer.
Renseignez les commandes suivantes:
sudo systemctl enable auto_overclock_qubic.service
sudo systemctl start auto_overclock_qubic.service
sudo systemctl status auto_overclock_qubic.service
Vous devriez voir un message qui stipule que le service est bien fonctionnel, si ca vire au rouge vérifiez la syntaxe du fichier service créé précédemment.
Si tout est ok redémarrez votre rig, nous allons vérifier que le service est bien fonctionnel en ouvrant un nouveau shell et en tapant la commande suivante:
sudo journalctl -u auto_overclock_qubic.service -f
Vous devriez voir les logs du service ainsi que votre consommation :)
Attention, pensez à désactiver le service si vous décidez de miner autre chose avec la commande suivante:
sudo systemctl disable auto_overclock_qubic.service
Si vous avez des questions utilisez l'espace commentaire ;)