Ordinateurs

Crippled No Longer : Matlab fonctionne désormais sur les processeurs AMD à pleine vitesse

Ce site peut gagner des commissions d’affiliation à partir des liens sur cette page. Conditions d’utilisation.

Il y a quelques mois, nous avons couvert comment le logiciel Matlab de Mathwork n’a pas exécuté les charges de travail sur les processeurs AMD à pleine vitesse. Ces produits utilisent la bibliothèque Intel Math Kernel, qui n’exécutera que du code entièrement optimisé sur les processeurs Intel. Les processeurs AMD ont été amenés à utiliser un chemin de code différent et beaucoup plus lent. Malgré les nombreuses spéculations de la communauté selon lesquelles MathWorks pourrait ne pas être en mesure ou ne pas vouloir corriger le problème, la société nous a tous surpris et l’a résolu.

Selon NedFlanders1976 (la même personne qui a rédigé le rapport Reddit original), MathWorks a incorporé un correctif de chemin permanent vers Matlab 2020a, la dernière version de son application. Essentiellement, Matlab démarre désormais toujours dans un mode qui lui permet d’exécuter du code AVX2 sur les processeurs AMD. Auparavant, vous ne pouviez forcer cette fonctionnalité qu’en créant un Variable d’environnement système ou un fichier batch spécial pour lancer le programme.

Bravo à Matlab

Je tiens à reconnaître et à remercier MathWorks d’avoir voulu résoudre ce problème et de l’avoir fait rapidement. J’ai eu un certain nombre de conversations à ce sujet avec mon collègue David Cardinal, qui a plus d’expérience que moi dans le domaine du développement logiciel. L’un des points qu’il a soulevés dans nos discussions est que ce genre de situations se déroule très différemment du point de vue du développeur de logiciels.

Performances Matlab de notre revue 3970X. Les meilleurs scores proviennent d’une exécution non optimisée, les scores les plus bas utilisent AVX2.

Les développeurs individuels peuvent ne pas savoir qu’Intel MKL n’exécute pas de code AVX2 sur des processeurs non Intel. Même si les développeurs fais Sachez que de nombreuses applications ont des bases d’utilisateurs qui sont presque entièrement basées sur Intel. Si 90 à 99 % de vos clients possèdent du matériel Intel pour commencer, le problème du chemin de code AVX2 ne semblera pas très pressant. Travailler avec Intel pour optimiser les performances d’une application avec une base d’utilisateurs qui a choisi d’acheter des processeurs Intel ne semble pas nécessairement injuste du point de vue du développeur de logiciels. Les faibles performances des processeurs dérivés de Bulldozer d’AMD ont rendu ces questions sans objet jusqu’au lancement de Ryzen, et ce n’est pas parce qu’AMD a lancé Ryzen en 2017 que tout le monde exécutant Matlab s’est instantanément épuisé et en a acheté un.

Étant donné que les développeurs ne sont peut-être pas conscients de l’impact de ces problèmes, je pense qu’il est juste de les juger en fonction de la manière dont ils résolvent le problème plutôt qu’en supposant une mauvaise foi immédiate simplement parce que le problème existe. Évaluée selon ces critères, la réponse de MathWorks est excellente — la société a corrigé le problème dans la prochaine mise à jour majeure de l’application. Alors que NedFlanders1976 note que « Si vous utilisez d’autres logiciels, y compris le MKL, par exemple Anaconda, SymPy, etc. avec Matlab, vous voudrez peut-être conserver cette variable à l’échelle du système car le nouveau correctif ne s’applique qu’à Matlab », mais il déclare que Matlab lui-même a été mis à jour de manière appropriée. MathWorks a également confirmé la mise à jour d’High-teK.ca dans une discussion séparée, même si le correctif n’est pas répertorié dans le Matlab 2020a notes de version.

Psssssst :  Intel exhorté à "explorer des alternatives" à la fabrication de ses propres puces

Il n’y a pas beaucoup d’applications qui s’appuient sur le compilateur ou les bibliothèques d’Intel de cette manière, mais il est encourageant de voir MathWorks réagir aussi rapidement pour garantir les meilleures performances sur le matériel Intel et AMD. Il n’y a rien de mal à utiliser une bibliothèque optimisée par Intel, mais si les entreprises veulent le faire, elles doivent en informer leurs utilisateurs, ce qui permet aux clients d’acheter le meilleur matériel pour la tâche. Idéalement, ils devraient également travailler avec d’autres fournisseurs de processeurs pour offrir des chemins de code optimisés pour leurs architectures ou prendre des mesures pour permettre au code AVX2 de s’exécuter sans entrave sur les processeurs qui le prennent en charge. MathWorks a opté pour cette dernière approche et nous espérons que d’autres fournisseurs dans des situations similaires suivront son exemple ou publieront des chemins de code optimisés en alternance qui ne reposent pas sur Intel MKL lorsqu’ils s’exécutent sur un processeur AMD si une bibliothèque différente produisait des résultats plus rapides.

Maintenant lis:

Bouton retour en haut de la page