Archives du mot-clé hardware

Un nouveau SSD pour mon Mac Mini Late 2012

Comme je l’avais écris dans mon précédent billet (Un Mac Mini 2014 pour remplacer mon Mac Mini 2012 ?), j’ai entrepris de changer le disque dur de mon Mac Mini Late 2012. Ce dernier était équipé d’un disque Hitachi de 500 Go à 5400 tr/min (Mac Mini Late 2012 – Disque dur). Le disque de remplacement est un SSD Crucial M4 de 128 Go monté précédemment sur mon PC fixe (Windows/Linux).
Crucial SSD M4 128

La modification se déroule en trois étapes :

  1. création d’une clé USB de démarrage avec Mac OS X 10.10 Yosemite ;
  2. remplacement du disque dur ;
  3. installation de Mac OS X

Clé USB de démarrage avec Mac OS X 10.10 Yosemite

Téléchargement de Yosemite

Avant de s’intéresser à la clé USB, il vous faut les fichiers d’installation de Mac OS X. Même si vous avez déjà fais la mise à jour, vous devrez sans doute comme moi, encore une fois télécharger Mac OS X Yosemite depuis l’App Store.

Si le téléchargement de Yosemite est horriblement lent, essayez la solution suivante :

  • Mettez le téléchargement de Yosemite en pause (via le Launchpad)
  • Allez dans le menu « Préférence Système > Réseau > Avancé > DNS »
    • notez les adresse des serveurs DNS
    • changez les serveurs par 8.8.8.8 et 8.8.4.4
  • Surfez un peu avec Safari pour tester si tout fonctionne
  • Reprenez le téléchargement de Yosemite (via le Launchpad)
  • Modifiez à nouveau les adresses des serveurs DNS avec celles notées précédemment

Cette solution, donnée par Frank252 dans Yosemite download is insanely slow (nothing wrong with my network) (9ème message), a parfaitement fonctionné pour moi :

  • avant : 1 Go en 2h30
  • après : 4,7 Go en 15 minutes

Nettement mieux !

Formatage de la clé USB bootable

Rien de bien compliqué ici. Il vous faut juste une clé USB d’au moins 8 Go. Vous pouvez ensuite suivre ce tutoriel : How to format a startup drive for a Mac

Copie des fichiers d’installations sur la clé

J’ai suivi ce tutoriel How to make a bootable OS X 10.10 Yosemite install drive. J’ai utilisé la première méthode avec createinstallmedia.

Remplacement du disque dur

Avant de commencer, vous devez savoir que la visserie des Mac est de type Torx. Vous aurez besoin des clés T6 et T8. N’étant pas équipé, j’ai acheté ce kit chez LDLC (en même temps que mon second disque SSD).

J’ai suivi ce tutoriel : Mac Mini Late 2012 Hard Drive Replacement en sautant les étapes 10, 13, 14, 15, 16 et 20. J’ai également utilisé le truc de la carte de visite pour insérer facilement le disque. Voir la vidéo suivante à 8 minutes 50 secondes :

http://www.youtube.com/watch?v=Nkbekb8yKhc

Il faut normalement entre 15 et 20 minutes pour changer le disque dur (sans se presser).

Voici le résultat :
Mac Mini Late 2012 avec disque SSD

Installation de Yosemite sur le SSD

Il faut brancher la clé créée précédemment puis allumer le Mac Mini en maintenant les touches cmd+R enfoncées.

Vous pouvez alors effacer/formater le disque SSD et ensuite lancer l’installation de Mac OS X dessus.

Si au cours de l’installation le timer semble se bloquer indéfiniment sur ce message :

Il reste environ une seconde

La solution consiste… à ne rien faire : OS X Yosemite Installation Stuck with Minutes Remaining? Wait!

Si vous n’y tenez plus, vous pouvez toujours ouvrir la console d’installation avec les touches cmd+L. Mais ne vous fiez pas forcément aux message d’erreurs présentés. J’avais par exemple l’erreur suivante :

cannot connect to /var/run/systemkeychaincheck.socket

N’ayant trouvé aucune solution convaincante sur internet, j’ai simplement attendu et miracle, l’ordinateur a redémarré automatiquement après presque 15 minutes. Il a encore fallut 10 bonnes minutes pour la deuxième partie de l’installation de Mac OS X.

Conclusion

Le changement de disque dur sur le Mac Mini Late 2012 est simple (si on possède les bons outils). La partie la plus pénible reste finalement le téléchargement et l’installation de Mac OS X Yosemite.

Au final mon Mac Mini est maintenant plus réactif.

Si vous avez des questions, n’hésitez pas.

Gestion des cartes graphiques NVIDIA dans MATLAB : le NVIDIA System Management Interface

NVIDIA fournit un utilitaire de monitoring avec les drivers récents des cartes Tesla et Quadro. Cet outil s’appelle le « NVIDIA System Management Interface » ou « nvidia-smi ». Il est disponible sur Linux, et avec les versions 64bit de Windows Server 2008 R2 et de Windows 7. Il est également fournit avec les drivers des cartes GeForce avec une prise en charge limitée pour ces modèles (voir la liste à la fin de ce billet).

Je vais vous montrer comment appeler cet exécutable à partir de MATLAB pour récupérer des informations sur votre carte NVIDIA (nom, température, mémoire, fréquence…).

1) nvidia-smi

nvidia-smi est donc un exécutable 64 bits qui est installé en même tant que le driver de la carte graphique.

Le dossier d’installation par défaut sur Windows 7 est « C:\Program Files\NVIDIA Corporation\NVSMI ». Pour plus de souplesse, vous pouvez ajouter ce chemin dans la variable d’environnement PATH de Windows.

Sur Linux, il faut utiliser le driver propriétaire fournit par NVIDIA. Le dossier d’installation par défaut est « /usr/bin »

Pour vérifier que vous êtes prêt à utiliser cet outil, vous pouvez simplement exécuter la commande suivante dans une invite de commande de votre système d’exploitation :

nvidia-smi -L

Indice du GPU

Pour simplifier la suite de ce billet, je partirai du principe qu’il n’y a qu’une seule carte graphique présente sur votre machine. La commande utilisée commencera donc toujours par :

nvidia-smi -i 0

Le « 0 » étant l’indice du premier GPU détecté sur la machine.

Liste des propriétés

La commande pour récupérer les propriétés est la suivante :

nvidia-smi -i 0 --query-gpu=

Le signe « = » est alors suivi de la liste des propriétés à récupérer, séparées par des virgules. Pour obtenir la liste de toutes les propriétés, utilisez la commande suivante dans une console de votre système d’exploitation :

nvidia-smi --help-query-gpu > list.txt

Ouvrez le fichier list.txt et cherchez la propriété qui vous intéresse.

Vous pouvez consulter la liste générée sur ma machine ici.

Format

Sans trop rentrer dans le détail, on utilisera le formatage --format=csv,noheader lors des appels à nvidia-smi

2) nvidia-smi & MATLAB

Pour résumer, on utilisera ce modèle de commande :

nvidia-smi -i 0 --format=csv,noheader --query-gpu=

Que ce soit sur Windows, Linux ou Mac OS X, MATLAB est capable d’exécuter des programmes externes grâce aux fonctions system, dos ou unix.

On peut donc tester comme précédemment dans le Command Window de MATLAB :

[status, data] = system('nvidia-smi -L')
status =

     0


data =

GPU 0: Quadro K2000 (UUID: GPU-66119846-d929-fb76-3d19-b9056e2e00ab)

Il est très important de tester la valeur de retour de la variable status. Elle vaut 0 en cas de succès et une valeur différente de 0 en cas d’échec. Tout le travail consiste ensuite à extraire les informations de la chaine de caractère contenue dans la variable data

Version du driver

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=driver_version')
data =

320.00

Nom

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=name')
data =

Quadro K2000

Numéro de série

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=serial')
data =

0321113022548

Identifiant unique (UUID)

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=uuid')
data =

GPU-66119846-d929-fb76-3d19-b9056e2e00ab

Vitesse ventilateur

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=fan.speed')
data =

30 %

Température

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=temperature.gpu')
data =

32

Mémoire totale

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=memory.total')
data =

2047 MB

Mémoire disponible

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=memory.free')
data =

34 MB

Mémoire utilisée

[status, data] = system('nvidia-smi -i 0 --format=csv,noheader --query-gpu=memory.used')
data =

2013 MB

3) Fonctions MATLAB

J’ai écris deux fonctions MATLAB pour vous permettre de récupérer aisément certaines informations sur votre carte graphique NVIDIA.

Vous pouvez télécharger les deux codes sources ici : Informations sur la carte graphique NVIDIA avec MATLAB et le NVIDIA System Management Interface

Voici un exemple d’utilisation :

>> [gpuInfo, sysInfo] = nvsmiQuery;
>> nvsmiLog(gpuInfo, sysInfo);

Voici un aperçu des informations renvoyées :

query nvidia gpu property with MATLAB

4) Multiple GPUs

Si vous avez plusieurs cartes graphiques installées sur votre machine, il serait tentant d’utiliser les syntaxes suivantes pour accéder aux différents GPU :

nvidia-smi -i 0 ...

Puis

nvidia-smi -i 1 ...

Mais, il faut savoir que l’ordre des indices peut changer à chaque démarrage de la machine. Dans ce cas, il est donc plus prudent d’utiliser l’identifiant unique de chaque GPU :

nvidia-smi -i GPU-66119846-d929-fb76-3d19-b9056e2e00ab ...

5) Alternative à l’utilisation de la fonction system

L’outil fourni par NVIDIA permet de stocker le résultat dans un fichier CSV, comme par exemple :

status = system('nvidia-smi -i 0 -f gpuprop.csv --format=csv,noheader --query-gpu=driver_version,serial,name,uuid,temperature.gpu,fan.speed')

Ou encore dans un fichier XML :

status = system('nvidia-smi -q -f gpuprop.xml -x ')

Il faudra alors ensuite extraire les informations de ces fichiers.

Vous pouvez consulter les fichiers issus des lignes précédentes :

6) Conclusion

Vous avez maintenant un outil à disposition pour récupérer des informations sur les GPUs NVIDIA directement depuis MATLAB.

En réalité, l’exécutable nvidia-smi est basé sur la bibliothèque NVIDIA Management Library (NVML) disponible gratuitement avec le GPU Deployment Kit. De ce fait, on peut faire directement appel à cette librairie via un fichier MEX depuis MATLAB. C’est ce que je vous montrerai dans un prochain billet ;)

N’hésitez pas à me faire des retours si vous rencontrez des difficultés dans l’utilisation des codes présentés dans ce billet.

7) Produits pris en charge

Voici une liste des GPUs pris en charge par nvidia-smi :

  • Full Support
    • NVIDIA Tesla Line:
      • S2050, C2050, C2070, C2075,
      • M2050, M2070, M2075, M2090,
      • X2070, X2090,
      • K10, K20, K20X, K20Xm, K20c, K20m, K20s
    • NVIDIA Quadro Line:
      • 410, 600, 2000, 4000, 5000, 6000, 7000, M2070-Q
      • K2000, K2000D, K4000, K5000, K6000
    • NVIDIA GRID Line:
      • K1, K2, K340, K520
    • NVIDIA GeForce Line: None
  • Limited Support
    • NVIDIA Tesla Line: S1070, C1060, M1060
    • NVIDIA Quadro Line: All other current and previous generation Quadro-branded parts
    • NVIDIA GeForce Line: All current and previous generation GeForce-branded parts

8) Liens utiles

Identifier le processeur avec MATLAB via la base de registre de Windows

La fonction winqueryreg de MATLAB permet de récupérer les valeurs stockées dans la base de registre de Windows. Il est donc possible de s’en servir pour identifier le processeur présent sur la machine en interrogeant la clé « HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor ». En fonction du nombre de cœurs (N) présents sur le processeur, vous obtenez autant de sous-clés, numérotées de 0 à N-1 :

base-registre-windows-processeur

Les codes MATLAB qui suivent sont exécutés sur un ordinateur portable Asus K53SC. Comme vous pourrez le remarquer, seul le troisième argument change à chaque exemple.

Note : un souci d’édition avec le blog ne me permet pas de vous fournir des lignes de codes facilement copiables. Désolé.

Désignation du vendeur

winqueryreg-matlab-cpu-vendoridentifier

ans =

GenuineIntel

C’est donc ici un processeur Intel. Pour AMD, la valeur serait « AuthenticAMD ».

Identifiant du processeur

winqueryreg-matlab-cpu-identifier

ans =

Intel64 Family 6 Model 42 Stepping 7

Voir ici pour quelques explications sur ces valeurs.

Désignation du processeur

winqueryreg-matlab-cpu-processornamestring

ans =

Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz

C’est le bon !

Fréquence du processeur

winqueryreg-matlab-cpu-mhz

ans =

        2394

Ce qui correspond bien à la fréquence affichée précédemment (2394 MHz contre 2,40 GHz)

Conclusion

Vous connaissez maintenant une méthode rapide pour identifier le processeur présent sur votre machine avec MATLAB sur Windows. Pour aller plus loin, je vous renvoi vers la série de trois billets sur le thème de l’identification de processeur avec MATLAB (1, 2 et 3).

Vous pouvez explorer le registre en tapant « regedit » dans la barre de commandes du menu Démarrer de Windows. Mais prenez bien garde à ne rien modifier.

Ce billet a été inspiré par le code source de la fonction getdebuginfo de Scilab.