AuboraENFR← Guides

Accélération GPU sur Mac et Windows

Aubora exécute ses modèles d’IA sur votre ordinateur, jamais sur un serveur. Par défaut, ils tournent sur le processeur (CPU) : cela fonctionne sur toutes les machines et donne les résultats de référence. Sur un Mac Apple Silicon, ou sur un PC Windows avec une carte graphique DirectX 12, vous pouvez confier le modèle de recherche au processeur graphique (GPU). Cette page explique ce que cela change, comment l’activer et comment Aubora s’assure que les résultats restent justes.

L’accélération GPU est expérimentale pendant la bêta et désactivée par défaut.

En bref

  • Mac Apple Silicon (M1 et suivants) : le GPU exécute le modèle de recherche via Core ML d’Apple. L’indexation prend à peu près le même temps, mais sollicite beaucoup moins le processeur : le Mac reste réactif, plus frais et plus silencieux pendant un gros import.
  • PC Windows avec une carte graphique DirectX 12 : le GPU exécute le modèle de recherche via DirectML de Microsoft. Avec une carte graphique dédiée, l’indexation devrait être plus rapide que sur le processeur ; nous la mesurons sur du vrai matériel pendant la bêta.
  • Mac Intel et Windows sur ARM : pas encore disponible. Aubora tourne sur le processeur, un mode entièrement pris en charge.

Ce qui tourne sur votre ordinateur

Tâche Ce qui la réalise Où elle tourne
Recherche par contenu (« plage au coucher du soleil », « voiture rouge ») Le modèle de recherche (CLIP) : il transforme chaque photo, et chaque recherche tapée, en un vecteur de nombres CPU par défaut, GPU si vous l’activez
Détection et regroupement des visages Modèles de détection et de reconnaissance des visages CPU, toujours
Carte et dates Pas d’IA : lues dans les données EXIF de chaque photo (ou les fichiers JSON de Google Takeout) CPU

Tous les modèles passent par ONNX Runtime, le même moteur sur toutes les plateformes. ONNX Runtime confie le calcul à un fournisseur d’exécution : le CPU, Core ML sur Mac ou DirectML sur Windows. L’accélération GPU ne déplace que le modèle de recherche, la partie la plus lourde de l’indexation. Les visages restent sur le processeur quel que soit votre choix.

Faut-il l’activer ?

  • Oui, pour l’essayer, si vous vous apprêtez à indexer une grande photothèque (des milliers de photos) et voulez continuer à utiliser votre ordinateur en même temps, ou réduire le bruit des ventilateurs et la consommation de la batterie.
  • Pas besoin pour une petite photothèque ou les analyses courantes : après la première indexation, Aubora ne lit que les nouvelles photos, et le processeur s’en charge vite.
  • Désactivez-la si quelque chose vous semble anormal. Le processeur reste la référence.

Sur Mac : Core ML

Quels Mac

Les Mac Apple Silicon (M1, M2, M3, M4 et suivants). Sur les Mac Intel, l’option est désactivée : la version GPU du modèle doit être compilée puis mise en cache sur le disque, et la version d’ONNX Runtime disponible pour les Mac Intel ne peut pas conserver ce cache ; elle recompilerait donc à chaque lancement.

L’activer

  1. Ouvrez Réglages → Avancé → Accélération.
  2. Activez Utiliser l’accélération GPU (CoreML).
  3. Aubora télécharge une fois la version GPU du modèle de recherche (environ 600 Mo, en précision 16 bits), puis la compile pour le GPU de votre Mac. Cela prend quelques minutes ; une note indique chaque étape, et vous pouvez continuer à utiliser Aubora.
  4. Le modèle compilé est mis en cache sur le disque : les lancements suivants sautent la compilation.

À quoi s’attendre

  • Vitesse : à peu près la même que sur le processeur. Dans nos tests sur un M4, les deux prenaient environ 170 ms par photo pour le modèle de recherche.
  • Charge sur le Mac : bien plus faible. Sur le processeur, l’indexation occupe plusieurs cœurs ; sur le GPU, elle descend à environ un cœur. Le reste du Mac reste réactif, et les ventilateurs et la batterie sont moins sollicités.
  • Seulement pour les grosses analyses : charger le modèle sur le GPU prend un moment au début d’une analyse (l’état affiche « Chargement des modèles d’IA (CoreML…) »). Aubora n’utilise donc le GPU que pour les analyses d’au moins 2 000 photos par défaut ; les plus petites restent sur le processeur. Le seuil se règle juste sous l’interrupteur : Utiliser le GPU uniquement pour les analyses d’au moins … photos.

Pourquoi pas le Neural Engine ?

Le Neural Engine d’Apple a donné des résultats faux pour ce modèle sur certains Mac lors de nos tests, sans aucun message d’erreur. Aubora demande donc à Core ML d’utiliser uniquement le GPU et le CPU, au format « ML Program » avec des tailles d’entrée fixes : la configuration qui donnait les mêmes résultats que le processeur sur toutes les photos testées.

Sur Windows : DirectML

Quels PC

Un PC x64 sous Windows 11 (la version prise en charge par Aubora ; DirectML fonctionne lui-même dès Windows 10 version 1903) avec une carte graphique DirectX 12. Selon Microsoft, cela couvre :

  • les NVIDIA GeForce GTX série 600 et suivantes ;
  • les AMD Radeon HD série 7000 (GCN) et suivantes ;
  • les puces graphiques intégrées Intel à partir des Core de 4e génération (Haswell).

Sur Windows sur ARM (portables Snapdragon), l’option est désactivée : il n’existe pas encore de version DirectML d’ONNX Runtime pour ARM. La prise en charge des puces graphiques et d’IA de ces PC est prévue. Dans une machine virtuelle, aucune carte graphique DirectX 12 n’est en général visible : Aubora reste alors sur le processeur.

L’activer

  1. Ouvrez Réglages → Avancé → Accélération.
  2. Activez Utiliser l’accélération GPU (DirectML).
  3. Aubora télécharge une fois la version GPU du modèle de recherche, puis la vérifie sur votre carte graphique en la comparant au processeur (voir plus bas).
  4. Elle s’applique à partir de l’analyse suivante, quelle que soit sa taille.

À quoi s’attendre

  • Vitesse : avec une carte graphique dédiée, le modèle de recherche devrait tourner plus vite que sur le processeur. Une puce graphique intégrée gagne moins. Nous le mesurons sur du vrai matériel pendant la bêta.
  • Portables à deux puces graphiques (une intégrée et une dédiée) : DirectML utilise l’adaptateur par défaut de Windows, en général celui qui gère l’écran principal. Aubora ne permet pas encore de choisir l’autre.

Comment Aubora garde des résultats justes

Un GPU calcule avec des nombres sur 16 bits là où le processeur utilise 32 bits, et les pilotes graphiques calculent parfois un modèle de travers sans signaler d’erreur. Aubora se protège des deux :

  • Vérification contre le processeur. Quand il charge le modèle sur le GPU, Aubora soumet la même entrée au GPU et au processeur, puis compare les deux résultats. S’ils ne concordent pas assez (une similarité cosinus inférieure à 0,99), il abandonne le GPU, reste sur le processeur et vous le signale.
  • Les 16 bits suffisent pour la recherche. Sur une vraie photothèque, les résultats du modèle 16 bits correspondaient à ceux du modèle 32 bits (similarité cosinus de 1,0) et donnaient les mêmes 10 premiers résultats pour toutes les recherches testées. Vos résultats de recherche ne changent pas.
  • Repli automatique. Si le téléchargement, la compilation ou la vérification échoue, Aubora continue sur le processeur. Rien n’est perdu, et votre index reste valide.

La désactiver

Désactivez l’interrupteur dans Réglages → Avancé → Accélération. Sur Mac, Aubora propose aussi de supprimer le modèle GPU en cache pour libérer l’espace disque qu’il occupe ; si vous le gardez, réactiver le GPU est immédiat. Les analyses repassent alors sur le processeur.

Messages que vous pouvez voir

Message Ce qu’il veut dire
« Indisponible sur ce Mac » Un Mac Intel, ou une version sans prise en charge du GPU. Aubora tourne sur le processeur.
« Indisponible sur ce PC » Pas de carte graphique DirectX 12, ou Windows sur ARM. Aubora tourne sur le processeur.
« L’accélération GPU ne s’est pas appliquée… (repli sur CPU…) » Le GPU n’a pas pu exécuter le modèle, ou ses résultats différaient de ceux du processeur. Aubora reste sur le processeur.
« Impossible de télécharger le modèle GPU » Pas de connexion Internet pendant le téléchargement. Connectez-vous et réessayez.
« L’accélération GPU a été compilée mais n’a pas pu être mise en cache sur ce Mac » Vu sur les Mac Intel : sans cache, elle se recompilerait à chaque lancement, donc Aubora reste sur le processeur.

Questions

Le GPU change-t-il mes recherches ?

Non. La vérification au chargement et les tests en 16 bits décrits plus haut donnent les mêmes résultats que le processeur. Si une recherche vous semble étrange après avoir activé le GPU, désactivez-le et écrivez-nous.

Accélère-t-il la reconnaissance des visages ?

Non. La détection et la reconnaissance des visages tournent toujours sur le processeur. Seul le modèle de recherche change de place.

Pourquoi le processeur par défaut ?

Il fonctionne sur tous les ordinateurs, donne les résultats de référence, et l’indexation est de toute façon surtout limitée par le téléchargement des photos depuis votre cloud. L’option GPU sert aux gros imports, quand la charge sur l’ordinateur compte.

Comment savoir lequel a été utilisé ?

Exportez les journaux (Réglages → Avancé → À propos → Exporter les journaux) : chaque analyse indique si le modèle de recherche a tourné sur CoreML, DirectML ou le CPU.

Sources : ONNX Runtime : fournisseur d’exécution Core ML (en anglais), ONNX Runtime : fournisseur d’exécution DirectML (en anglais).

Toujours bloqué ? Que faire si vous êtes bloqué

Essayez Aubora sur votre photothèque

Bêta publique gratuite pour Mac et Windows. L’indexation et la recherche s’exécutent sur votre ordinateur.

Télécharger Aubora