Retour sur la FTC et les compilos Intel

Tags : FTC; Intel;
Publié le 04/01/2010 à 14:44 par
Imprimer

Les poursuites entreprises par la FTC contre Intel en décembre dernier intégraient un nombre assez important d’aspects. Parmi ceux-ci, la partie concernant les compilateurs est la moins connue du public.

En sus des processeurs, la firme de Santa Clara propose également une gamme de compilateurs. Ces derniers sont réputés pour leurs performances, et ils sont d’ailleurs généralement les plus rapides sur processeurs Intel, si bien qu’ils peuvent être préférés aux compilateurs tiers (Gnu, Microsoft) pour ceux qui visent avant tout la rapidité.

Comme tous les compilateurs, ceux d’Intel offrent différentes options de compilations. Il est ainsi possible de cibler un niveau d’instructions spécifique (IA32, SSE, SSE2, SSE3, etc.) mais une option plus élégante permet de générer un exécutable qui intégrera différents code qui seront exécutés selon les fonctions présentes sur le processeur.

C’est ici que le bât blesse. En effet, avec cette option sur les compilateurs Intel l’exécutable va d’abord vérifier que le processeur est d’origine Intel avant d’exécuter le code optimal en fonction du niveau de fonctionnalités du processeur. Si le processeur n’est pas un Intel, c’est le code par défaut qui est utilisé, quelque soit les jeux d’instruction supportés par le CPU !

Aujourd’hui, ce code par défaut est un code SSE/SSE2, mais il y’a quelques années, c’était carrément du code non vectoriel (x86 pur) qui était ainsi exécuté sur les Athlon 64 ! La situation actuelle est donc moins problématique qu’elle ne l’était par le passé, mais il n’en reste pas moins qu’un programme compilé avec cette option n’exécutera pas de code SSE3 sur un Phenom II par exemple.

Bien entendu, il existe des alternatives, la première étant bien entendu de ne pas utiliser les compilateurs Intel. Si ce n’est pas possible, pour une question de performances ou de fonctionnalités, il est faisable de compiler dans plusieurs versions de son exécutable et d’avoir un programme qui en amont lance la bonne version. Mieux encore, il est possible de remplacer le CPU dispatcher d’Intel par un autre qui fonctionne quelque soit le fabriquant du CPU (page 125 et suivantes de ce document ) !

Dans le cadre de son enquête sur Intel, la FTC, mise au courant de cette pratique, estime qu’il s’agit d’un avantage déloyal et qualifie même le compilateur de "défectueux" ("defective compiler", page 21 de ce document ). De fait, elle demande à Intel de mettre à disposition des développeurs un compilateur duquel ce code soit exclu, et de prendre à charge la recompilation éventuelle des programmes compilés sur les versions incriminées.

Bien entendu, si la demande de la FTC aboutissait, cela ne transformerait pas pour autant un Athlon II en Core i7, mais dans le cadre de programmes qui seraient compilés avec les logiciels Intel, un gain pourrait être constaté sur les CPU concurrents, ce qui est toujours bon à prendre.

Vos réactions

Top articles