Une faille insidieuse a été identifiée dans l’exécution de modèles d’apprentissage automatique sur les puces Snapdragon, où les opérations destinées au NPU basculent silencieusement vers le CPU, impactant gravement les performances en production.
Le fournisseur d’exécution QNN d’ONNX Runtime, spécifiquement conçu pour exploiter le NPU Hexagon de Qualcomm sur les SoC Snapdragon, est au cœur de cette problématique. Il redirige discrètement vers le processeur central (CPU) les opérations qu’il ne prend pas en charge nativement sur le NPU.
Cette redirection est particulièrement difficile à détecter. La précision des modèles d’IA reste intacte et les tests de latence effectués sur les cartes de développement ne révèlent aucune anomalie. Cependant, une fois en production, la latence peut tripler de manière inexpliquée. Ce phénomène s’explique par le fait que les distributions de données d’entrée réelles sollicitent différemment les chemins de repli, et le runtime ne génère aucune alerte ou erreur.
Ce comportement a été observé par plusieurs équipes déployant des solutions d’apprentissage automatique sur des appareils équipés de Snapdragon. Il met en lumière un défi majeur pour l’optimisation des performances en périphérie et la nécessité de méthodes de détection robustes pour ces basculements silencieux.
Source : Reddit r/MachineLearning