NVIDIA apporte le support préliminaire d'Optimus sous Linux

NVIDIA apporte le support préliminaire d’Optimus sous Linux

C'est Linus qui va être content

Avatar de l'auteur
Damien Labourot

Publié dans

Sciences et espace

10/04/2013 2 minutes
40

NVIDIA apporte le support préliminaire d'Optimus sous Linux

NVIDIA vient de mettre en ligne un pilote 319.12 Bêta pour Linux. Si à la base il est prévu pour supporter la nouvelle GeForce GTX 650 Ti Boost, il ouvre aussi la voie à un support préliminaire de la technologie Optimus sur les ordinateurs portables.

Pour rappel, Optimus est une technologie qui permet de basculer entre la puce vidéo intégrée au processeur Intel et le GPU de NVIDIA de manière totalement transparente pour l'utilisateur. Cependant, elle n'est disponible que sous Windows depuis sa sortie... et aucun effort n'avait été fait jusqu'ici sous Linux.

 

Certes, il y a bien eu des initiatives indépendantes comme a pu l'être Bumblebee, mais rien de facilement exploitable. On se souvient encore des propos particulièrement fleuris de Linus Torvalds concernant ce problème, il y a quelques mois.

 

NVIDIA Optimus

 

Avec ce pilote 319.12 pour Linux, il faut creuser la note de version jusqu'au chapitre 18 pour trouver la mention d'Optimus, et NVIDIA indique directement que « Certains PC portables équipés de GPU NVIDIA peuvent utiliser la technologie Optimus pour commuter entre le GPU Intel et la carte graphique NVIDIA. Le pilote peut être utilisé, mais les fonctionnalités sont limitées » avant d'expliquer que « le GPU NVIDIA peut être utilisé hors du rendu écran, pour exécuter des applications (supportant) CUDA »

 

Pour pouvoir installer ce pilote, il est nécessaire d'avoir au minimum Xorg 1.13 ainsi que Xrandr en version 1.4. Notez qu'outre ce support préliminaire d'Optimus, ce pilote apporte le support de la GeForce GTX 650 Ti Boost et corrige un grand nombre de bugs au passage.

 

Pour télécharger ce pilote, c'est par ici que cela se passe.

Écrit par Damien Labourot

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Fermer

Commentaires (40)


J’en connais qui vont être contant.


Ca m’avait fait galérer cette techno rien que sur Windows, j’avais des apps qui se lançaient sur la puce au lieu de la carte, c’était affreux. Du coup je comprenais pas au début, il a fallut que je force le lancement sur la carte avec le rajout d’un petit option dans le clic droit du raccourci de l’appli.

Par contre sur Linux j’essaye même pas c’est mort <img data-src=" />


Par contre je vois pas vraiment ce que ça a de révolutionnaire cette techno, je vois pas pourquoi c’est pas fait automatiquement depuis le début. C’est rien d’extraordinaire sur le papier non si ?








RaYz a écrit :



Par contre je vois pas vraiment ce que ça a de révolutionnaire cette techno, je vois pas pourquoi c’est pas fait automatiquement depuis le début. C’est rien d’extraordinaire sur le papier non si ?





be si

cela demande du boulot derrière, il faut que switche correctement sans bug, d’une CG à l’autre, et que les cartes graphiques soient utilisées au bon moment .










mum1989 a écrit :



be si

cela demande du boulot derrière, il faut que switche correctement sans bug, d’une CG à l’autre, et que les cartes graphiques soient utilisées au bon moment .





Ben apparemment ils utilisent une liste d’appli qui doivent démarrer sur la carte, je vois toujours pas ce qu’il y’a d’extraordinaire.









RaYz a écrit :



Par contre je vois pas vraiment ce que ça a de révolutionnaire cette techno, je vois pas pourquoi c’est pas fait automatiquement depuis le début. C’est rien d’extraordinaire sur le papier non si ?









Non ça n’a rien d’extraordinaire mais la question c’est surtout pour l’autonomie avec un pc portable. Etre en permanence sur la carte graphique, c’est cool pour les performances mais la batterie en prend un sérieux coup tandis que la puce graphique intel est elle beaucoup moins gourmande surtout pour les taches courantes web, vidéo etc. Ce qui fait qu’en comparaison l’autonomie sur une machine avec Linux et une carte graphique Nvidia est beaucoup plus faible que la même machine sous Windows.









RaYz a écrit :



Ben apparemment ils utilisent une liste d’appli qui doivent démarrer sur la carte, je vois toujours pas ce qu’il y’a d’extraordinaire.





Non ça implique pas mal de choses au niveau du serveur graphique. Ce dernier n’ayant pas était conçu pour ça a l’origine.









RaYz a écrit :



Ben apparemment ils utilisent une liste d’appli qui doivent démarrer sur la carte, je vois toujours pas ce qu’il y’a d’extraordinaire.





En gros tu dois basculer d’une carte à l’autre sans que l’écran ne soit éteint, alors que les deux cartes sont capables de gérer la sortie vidéo.

C’est pas seulement que certaines applis utilisent telle ou telle carte, c’est que quand une appli qui a besoin de la grosse carte est lancée, tout le système passe dessus de manière transparente.

A mon avis c’est pas si évident que ça à coder ;-)









RaYz a écrit :



Ben apparemment ils utilisent une liste d’appli qui doivent démarrer sur la carte, je vois toujours pas ce qu’il y’a d’extraordinaire.





D’un point de vue logiciel et matériel c’est très complexe de faire communiquer deux puces graphiques différentes en temps réel sans glitch et de manière transparente pour l’utilisateur.









ErGo_404 a écrit :



En gros tu dois basculer d’une carte à l’autre sans que l’écran ne soit éteint, alors que les deux cartes sont capables de gérer la sortie vidéo.

C’est pas seulement que certaines applis utilisent telle ou telle carte, c’est que quand une appli qui a besoin de la grosse carte est lancée, tout le système passe dessus de manière transparente.

A mon avis c’est pas si évident que ça à coder ;-)







bof un peu de code pour changer l’écran actif un mutiplexeur et rouler jeunesse xD









titi-henry a écrit :



Non ça n’a rien d’extraordinaire mais la question c’est surtout pour l’autonomie avec un pc portable. Etre en permanence sur la carte graphique, c’est cool pour les performances mais la batterie en prend un sérieux coup tandis que la puce graphique intel est elle beaucoup moins gourmande surtout pour les taches courantes web, vidéo etc. Ce qui fait qu’en comparaison l’autonomie sur une machine avec Linux et une carte graphique Nvidia est beaucoup plus faible que la même machine sous Windows.





Oui ça j’ai bien compris l’intérêt <img data-src=" />







ErGo_404 a écrit :



En gros tu dois basculer d’une carte à l’autre sans que l’écran ne soit éteint, alors que les deux cartes sont capables de gérer la sortie vidéo.

C’est pas seulement que certaines applis utilisent telle ou telle carte, c’est que quand une appli qui a besoin de la grosse carte est lancée, tout le système passe dessus de manière transparente.

A mon avis c’est pas si évident que ça à coder ;-)





A parce que c’est censé basculer en cours d’utilisation de la puce à la carte ? SI c’est le cas ça me l’avait jamais fait. C’est juste que si j’avais le malheur qu’une appli comme un jeu se lance sur la puce c’était juste dégueulasse et puis c’est tout.



Si effectivement ça change bien de matériel en live en cours d’utilisation de l’appli et que c’est fait de manière transparente, là je suis d’accord c’est un peu plus trapu <img data-src=" />



Je trouve quand même ça dingue qu’il faille attendre tout ce temps pour voir nvidia bouger… quand ça bouge. J’attends toujours que le driver officiel soit capable de m’afficher autre chose que du 1920 par 1080… pas très pratique quand on veut jouer à des vieux jeux par exemples. Du coup j’utilise nouveau… abusé.



Enfin un début de support d’optimus, c’est toujours ça de pris ^^.


merci pour l’information, mais la programmation CUDa, reste adaptable aux coeurs NVidia, et s’il y a un echange pour supporter le traitements sur Intel, je crois , il va baisser les performances attendus , haa, pour le rendu, ça va, mais pour un traitement, applicatif , je ne pense pas



pour les lien de téléchargement :



32bits :http://www.nvidia.fr/object/linux-display-ia32-319.12-driver-fr.html



64 bits:http://www.nvidia.fr/object/linux-display-amd64-319.12-driver-fr.html



<img data-src=" />







NVidia. C’est pas eux qui disaient qu’il était techniquement impossible de le faire fonctionner sous nunux + XOrg ?



Dont acte <img data-src=" />









brazomyna a écrit :



NVidia. C’est pas eux qui disaient qu’il était techniquement impossible de le faire fonctionner sous nunux + XOrg ?



Dont acte <img data-src=" />





Syndrome du online de SimCity ? <img data-src=" />









brazomyna a écrit :



NVidia. C’est pas eux qui disaient qu’il était techniquement impossible de le faire fonctionner sous nunux + XOrg ?



Dont acte <img data-src=" />





Un doigt et ça repart <img data-src=" />



Juste une petite rectification par rapport aux commentaires précédents. Optimus ne fait pas de switch de carte graphique, pas du tout. L’affichage est toujours fait par la carte intégré.

Par contre Optimus va permettre de calculer le rendu des surfaces OpenGL/DirectX par la carte nvidia, avant d’envoyer le résultat à la carte intégré, qui va l’afficher. La carte fait en fait office de co-processeur graphique.

Dans un cas d’utilisation pratique, par exemple si on ouvre une vidéo avec vlc dans une fenêtre avec word à coté, la vidéo sera affichée/calculée grâce à la puce nvidia, alors que word sera lui entièrement géré par la puce intégrée.

C’est ce que je trouve est encore plus fort que “juste” un switch avec cette techno. Nvidia avait en premier lieu tenté de faire un switch, mais apparemment ça marchait pas top.



Quoi qu’il en soit bumblebee sous linux marche plutôt bien, mais c’est cool que nvidia se décide enfin à supporter cette techno…


Pour les CG hybrides, les news ont toujours rapport avec Optimus…



Mais quid du PowerXpress AMD qui est toujours en version alpha?



Pour changer de CG, il faut utiliser les commandes suivantes (ou changer via le control center AMD):




  • amdconfig –px-dgpu (pour dedicated)

  • amdconfig –px-igpu



    Puis fermer et relancer la session. Tu parles d’une solution. Sans parler du fait que l’autre CG fonctionne quelle que soit celle utilisée. Super pour l’autonomie!!!



    A quand un changement à la volée et qui désactive celle inemployée?








lothei a écrit :



Juste une petite rectification par rapport aux commentaires précédents. Optimus ne fait pas de switch de carte graphique, pas du tout. L’affichage est toujours fait par la carte intégré.

Par contre Optimus va permettre de calculer le rendu des surfaces OpenGL/DirectX par la carte nvidia, avant d’envoyer le résultat à la carte intégré, qui va l’afficher. La carte fait en fait office de co-processeur graphique.

Dans un cas d’utilisation pratique, par exemple si on ouvre une vidéo avec vlc dans une fenêtre avec word à coté, la vidéo sera affichée/calculée grâce à la puce nvidia, alors que word sera lui entièrement géré par la puce intégrée.

C’est ce que je trouve est encore plus fort que “juste” un switch avec cette techno. Nvidia avait en premier lieu tenté de faire un switch, mais apparemment ça marchait pas top.



Quoi qu’il en soit bumblebee sous linux marche plutôt bien, mais c’est cool que nvidia se décide enfin à supporter cette techno…





Ha merci pour ces précisions <img data-src=" />



C’est surtout switcher tous les buffers d’une carte à l’autre, et s’assurer que toutes les reférences à ces buffers sont correctement mises à jour qui est compliqué et fou la merde.

Sans compter les changements de formats du à l’architecture interne des carte et autres joyeusetées.

Surtout que dans X, malheureuselment beaucoup de défauts de conceptions sont là d’origine (des infos sur le format des buffers sont présents coté client et certaines opérations en ont besoin)

Et là, c’est vraiment iconcevable sans casser la compatibilité avec X, ou ajouter une nouvelle extention du genre “On pete tout, alors il faut que tu refasses toute ton initialization graphique et que tu redessine tes widgets… Ha ? et tu comptais sur moi pour garder tes pixmap au chaud ?? ben c’est loupé, faut les relire depuis le disque et me les refiler… Comment ? ton code n’a jamais prévu cette éventualité ?? c’est ballot hein…”





NVidia. C’est pas eux qui disaient qu’il était techniquement impossible de le faire fonctionner sous nunux + XOrg ?





Rien n’est impossible, ce qu’ils ont voulu dire (à mon avis), c’est que c’est impossible sans code source ouvert dans le noyau et/ou sans des efforts très importants qu’ils ne sont pas prêts à investir vu le retour en terme de ventes.


Et pendant ce temps là sur PC fixe, quasi tous les PC tournent avec un CPU comprenant un IGP qui ne sert à rien, et un GPU qui chauffe pour faire du surf les 9/10eme du temps.

Ça me fout toujours hors de moi.








overdrives a écrit :



Et pendant ce temps là sur PC fixe, quasi tous les PC tournent avec un CPU comprenant un IGP qui ne sert à rien, et un GPU qui chauffe pour faire du surf les 9/10eme du temps.

Ça me fout toujours hors de moi.







Je croyais que l’on pouvais se servir de l’igp pour faire du multi-ecran, un sur l’igp et l’autre sur la CG ?









Anonymous0112358 a écrit :



Je croyais que l’on pouvais se servir de l’igp pour faire du multi-ecran, un sur l’igp et l’autre sur la CG ?





Ça n’était pas le cas avec les IGP de carte mère, je doute que je soit le cas avec les IGP de CPU.

Mais même si c’était le cas, quasi toutes les cartes graphiques ont 3 sorties, donc c’est inutile.









overdrives a écrit :



Ça n’était pas le cas avec les IGP de carte mère, je doute que je soit le cas avec les IGP de CPU.

Mais même si c’était le cas, quasi toutes les cartes graphiques ont 3 sorties, donc c’est inutile.







Dans la pratique, c’est un peu plus compliqué que cela.



Mais bon, on sait que les gens ont du mal à comprendre qu’il peut y avoir beaucoup de complexité alors que le principe général le parait simple à comprendre.



Et la prochaine beta pour Windows c’est quand ? Ca fait longtemps qu’il n’y en a pas eu, çà commence à devenir long, je ne peux pas jouer à Bioshock Infinite car l’actuelle fait planter le jeu !


Ca bouge depuis l’arrivé de steam..








moi1392 a écrit :



Rien n’est impossible, ce qu’ils ont voulu dire (à mon avis), c’est que c’est impossible sans code source ouvert dans le noyau et/ou sans des efforts très importants qu’ils ne sont pas prêts à investir vu le retour en terme de ventes.





Non, ce qu’ils ont dit c’est que vue l’architecture de XOrg il était impossible d’envisager d’intégrer ne serait-ce qu’un support partiel sous linux, les deux étant incompatibles.



Leurs propres dires, c’était bien d’avancer une impossibilité technique sans modifier en profondeur XOrg, pas autre chose.



Bref. contrairement à ma dernière machine où j’avais naïvement crû qu’une machine sous optimus était convenable (puisque je pourrais désactiver le GPU NVidia pour ne garder que l’Intel), mes prochaines machines, c’est de l’IGP Intel only.














RaYz a écrit :



Ben apparemment ils utilisent une liste d’appli qui doivent démarrer sur la carte, je vois toujours pas ce qu’il y’a d’extraordinaire.





dans le détail c’est quand même pas nécessairement évident, puisque ton écran reste branché sur la même prise.. Du coup il faut que ta puce nvidia aille écrire le résultat (l’image calculée) dans le buffer de la carte intel (que tu ne peux pas complètement éteindre du coup il me semble). C’est quand même de la mécanique, d’autant plus que tu ne veux idéalement pas voir le switch à l’écran quand la carte se réveille.. (le clignotement qui se faisait avec les anciennes solutions, quand tu switch entre le buffer de l’iGP et celui du GPU)









brazomyna a écrit :



Non, ce qu’ils ont dit c’est que vue l’architecture de XOrg il était impossible d’envisager d’intégrer ne serait-ce qu’un support partiel sous linux, les deux étant incompatibles.



Leurs propres dires, c’était bien d’avancer une impossibilité technique sans modifier en profondeur XOrg, pas autre chose.





Bumblebee a quand même montré que c’était possible.. un peu pédestre, mais ça fonctionne quand même très bien !



Bref. contrairement à ma dernière machine où j’avais naïvement crû qu’une machine sous optimus était convenable (puisque je pourrais désactiver le GPU NVidia pour ne garder que l’Intel), mes prochaines machines, c’est de l’IGP Intel only.



Hmm, un peu d’accord, mais j’attends de voir ce que donne nvidia/optimus et Haswell avant de me décider <img data-src=" />









overdrives a écrit :



Et pendant ce temps là sur PC fixe, quasi tous les PC tournent avec un CPU comprenant un IGP qui ne sert à rien, et un GPU qui chauffe pour faire du surf les 9/10eme du temps.

Ça me fout toujours hors de moi.





+1

et …

ça bouffe de la place sur le DIe, ça consomme, ça limite forcément la montée en fréquence du CPU, et ça partage le développement CPU avec le développement de l’IGP intégré.









brokensoul a écrit :



Bumblebee a quand même montré que c’était possible.. un peu pédestre, mais ça fonctionne quand même très bien !





Je ne dis pas le contraire, je pointe juste le décalage entre les déclarations initiales et celles de maintenant.



Léger petit HS : Avec le futur changement de serveur graphique d’Ubuntu ça va être comique avec les pilotes proprios.



Quant à Bumblebee ça va, je n’ai pas trouvé ça dur d’installation et utilisation, parole d’archer. :)


Ce qui énervait Linus, ce n’est pas que le fait que optimus n’existe pas sur linux, c’est aussi et surtout que les drivers nvidia ne sont pas libres et du coup on peut pas les intégrer dans le noyau. C’est source d’instabilité et peu provoquer plantages et autres problèmes.

Nvidia fait moins bien à ce titre que intel.








EMegamanu a écrit :



Léger petit HS : Avec le futur changement de serveur graphique d’Ubuntu ça va être comique avec les pilotes proprios.





Non, pas HS du tout. De même avec Wayland, qui n’exclut pas les pilotes proprio, à condition d’empiler les surcouches (quid de la performance dans ce cas).



Punaise, comme je suis content d’avoir acheté un portable nu, et d’avoir installé ensuite mes distros Linux sans souci… <img data-src=" />


Bumblebee n’était pas hyper chiant a installer mais sa demandait de lancer manuellement chaque programme sur le gpu nvidia, un peu lourd a force.. Et sa n’ameliorait pas pour autant l’autonomie ( perso 2h max sous nunux , 4h en mode performance sur Win 8 )








paradise a écrit :



Punaise, comme je suis content d’avoir acheté un portable nu, et d’avoir installé ensuite mes distros Linux sans souci… <img data-src=" />







Oui tu as tout bon sur le coup, et tu es loin d’être le seul, nous somme de plus en plus sur Linux. <img data-src=" />



En tout cas merci nVidia, et comme dit la news, merci M. Torvalds pour votre “coup de gueule” qui a largement contribué à faire bouger les choses positivement chez nVidia.



L’auteur de l’article n’a pas du essayé Bumblebee. En moins de 10 minutes de lecture francophone, j’ai pu découvrir, essayer et utiliser Bumblebee de facon quotidienne pour jouer à StarCraft 2 (Wings of Liberty,HOTS beta et release)

Un petit changement dans les raccourcis, et hop ce qui doit etre lancé avec optimus l’est…








overdrives a écrit :



Ça n’était pas le cas avec les IGP de carte mère, je doute que je soit le cas avec les IGP de CPU.

Mais même si c’était le cas, quasi toutes les cartes graphiques ont 3 sorties, donc c’est inutile.







heu alors j’utilise des chips intégrer aux CM pour faire du multiscreen depuis bien longtemps…



et ce n’est pas inutile loin de la ! ça évite à la carte principale de gérer les 3* 24’ …



maintenant j’utilise deux carte graphique, et j’ai fait quelques tests sur deux ou trois jeux, avec 2 carte graphique (4890 sur l’écran principal et 3650 sur les écrans secondaires) puis 1 seul carte graphique (3 écrans sur la 4890) ba c’est simple en jeu (sur un seul écran) si je vire la 3650 je divise mes fps par 2…










Wype a écrit :



Bumblebee n’était pas hyper chiant a installer mais sa demandait de lancer manuellement chaque programme sur le gpu nvidia, un peu lourd a force.. Et sa n’ameliorait pas pour autant l’autonomie ( perso 2h max sous nunux , 4h en mode performance sur Win 8 )





Tu peux scripter aisément le lancement de l’appli pour n’avoir à lancer l’appli manuellement.



edit : ou en modifiant le raccourci comme l’indique doctor madness