[R] Comportement étrange de CMD (Get NVidia GPU's infos)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Anthony
Niveau 7
Niveau 7
Messages : 304
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Status : Hors ligne

[R] Comportement étrange de CMD (Get NVidia GPU's infos)

#1

Message par Anthony »

Bonjour à tous,

Je viens de tomber sur un os, je sent que je ne suis pas loin mais je ne reçois pas le retour de ma ligne de commande.
Le but est d'afficher le taux d'utilisation de mon GPU mais ici étrangement je n'ai rien en retour...
Pourtant en batch çà fonctionne bien :shock:
gpu_usage.au3
(1.33 Kio) Téléchargé 85 fois
gpu_usage.bat
(91 Octets) Téléchargé 80 fois
Et le code de "gpu_usage.au3"
► Afficher le texte
Modifié en dernier par Anthony le ven. 06 sept. 2024 17:46, modifié 3 fois.
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
UDF: GuiStatusBarEx --- Une StatusBar complète, rapide et simple
Code: Code-Texte fusion --- Une GUI pour fusionner des GCodes pour CNC 3018
Avatar du membre
Nine
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 118
Enregistré le : ven. 17 avr. 2020 01:23
Localisation : Montréal, Québec
Status : Hors ligne

Re: [..] Comportement étrange de CMD

#2

Message par Nine »

Je soupçonne que c'est un problème de redirection. Essaie d'utiliser la ligne suivante au début du script :

Code : Tout sélectionner

If @OSArch = "X64" And Not @AutoItX64 Then _WinAPI_Wow64EnableWow64FsRedirection(False)
Avatar du membre
Anthony
Niveau 7
Niveau 7
Messages : 304
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Status : Hors ligne

Re: [..] Comportement étrange de CMD

#3

Message par Anthony »

Bonjour Nine,

Idem jusqu'à maintenant.
#include <WinAPIFiles.au3>

If @OSArch = "X64" And Not @AutoItX64 Then _WinAPI_Wow64EnableWow64FsRedirection(False)

; Chemin complet vers nvidia-smi
Local $sNvidiaSMIPath = "C:\Windows\System32\nvidia-smi.exe"
Local $sTempFile = @TempDir & "\gpu_usage.txt"
Local $sCommand = '"' & $sNvidiaSMIPath & '" --query-gpu=utilization.gpu --format=csv,noheader,nounits > "' & $sTempFile & '"'

ConsoleWrite("DEBUG: Commande à exécuter: " & $sCommand & @CRLF)
   
; Exécuter la commande et rediriger la sortie vers un fichier temporaire
Local $iPID = Run(@ComSpec & " /c " & $sCommand, "", @SW_HIDE, 6)
   
; Attendre un court instant pour que le fichier soit écrit
Sleep(1000)
   
; Vérifier si le fichier a été créé et lire son contenu
If FileExists($sTempFile) Then
   ConsoleWrite("DEBUG: Fichier temporaire trouvé: " & $sTempFile & @CRLF)
   Local $sResult = FileRead($sTempFile)
   ConsoleWrite("DEBUG: Contenu du fichier temporaire: " & $sResult & @CRLF)
   FileDelete($sTempFile) ; Supprimer le fichier temporaire après lecture
       
   If StringStripWS($sResult, 8) <> "" Then
      MsgBox(0, "Utilisation des GPU", $sResult)
   Else
      MsgBox(16, "Erreur", "Impossible de récupérer l'utilisation des GPU, aucune donnée reçue.")
   EndIf
Else
   ConsoleWrite("DEBUG: Fichier temporaire non trouvé ou commande n'a pas fonctionné." & @CRLF)
   MsgBox(16, "Erreur", "Erreur lors de l'exécution de nvidia-smi ou fichier de sortie introuvable.")
EndIf
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
UDF: GuiStatusBarEx --- Une StatusBar complète, rapide et simple
Code: Code-Texte fusion --- Une GUI pour fusionner des GCodes pour CNC 3018
Avatar du membre
Nine
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 118
Enregistré le : ven. 17 avr. 2020 01:23
Localisation : Montréal, Québec
Status : Hors ligne

Re: [..] Comportement étrange de CMD  

#4

Message par Nine »

Ah, ouais, il n'aime pas les guillemets autour du fichier d'output. Mais tu devrais plutôt opter pour une solution plus propre...

Code : Tout sélectionner

#include <WinAPIFiles.au3>

_WinAPI_Wow64EnableWow64FsRedirection(False)

; Chemin complet vers nvidia-smi
Local $sNvidiaSMIPath = "C:\Windows\System32\nvidia-smi.exe"
Local $sCommand = '"' & $sNvidiaSMIPath & '" --query-gpu=utilization.gpu --format=csv,noheader,nounits'

ConsoleWrite("DEBUG: Commande à exécuter: " & $sCommand & @CRLF)

; Exécuter la commande
Local $iPID = Run($sCommand, "", @SW_HIDE, $STDERR_MERGED)
ProcessWaitClose($iPID)
ConsoleWrite(StdoutRead($iPID) & @CRLF)
Avatar du membre
Anthony
Niveau 7
Niveau 7
Messages : 304
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Status : Hors ligne

Re: [R] Comportement étrange de CMD

#5

Message par Anthony »

Super,
Merci bien Nine, tout est bon.
Résolu ;)
#include <WinAPIFiles.au3>

_WinAPI_Wow64EnableWow64FsRedirection(False)

; Chemin complet vers nvidia-smi
Local $sNvidiaSMIPath = "nvidia-smi.exe"
Local $sCommand = '"' & $sNvidiaSMIPath & '" --query-gpu=gpu_bus_id,index,gpu_name,utilization.gpu,fan.speed,pstate,memory.used,memory.total,temperature.gpu,temperature.memory --format=csv,noheader,nounits'    ; nvidia-smi.exe --help-query-gpu

ConsoleWrite("DEBUG: Commande à exécuter: " & $sCommand & @CRLF)
   
; Exécuter la commande et rediriger la sortie vers un fichier temporaire
Local $iPID = Run($sCommand, "", @SW_HIDE, $STDERR_MERGED)
ProcessWaitClose($iPID)
ConsoleWrite(StdoutRead($iPID) & @CRLF)
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
UDF: GuiStatusBarEx --- Une StatusBar complète, rapide et simple
Code: Code-Texte fusion --- Une GUI pour fusionner des GCodes pour CNC 3018
Répondre