[Actualit�] gpu.js : le JavaScript acc�l�r� par la carte graphique
par
, 15/07/2017 � 01h58 (3209 Affichages)
Il se fait tard au moment o� je tape ces quelques lignes, mais je viens de tomber sur quelque chose qui pourrait se r�v�ler �tre un moyen d'optimisation tr�s int�ressant � l'heure o� les applications JavaScript deviennent de plus en plus gourmandes en ressources de calcul. Le JavaScript �tant principalement monothread et les calculs en JS �tant pour une large part � l'heure actuelle synchrone, quand ils deviennent nombreux et complexes, �a peut devenir un probl�me comme dans le domaine des jeux vid�os, de la simulation num�rique, du Big Data, de l'Intelligence Artificielle ou plus g�n�ralement du calcul scientifique qui commence � pointer le bout de son nez sur navigateur.
Il se trouve qu'un composant existant sur de nombreux ordinateurs, la carte graphique, est justement sp�cialis�e dans le calcul num�rique avec l'avantage que ces calculs peuvent �tre ex�cut�s en parall�le, ce qui change tout. Depuis quelques ann�es d�j�, il existait des solutions pour d�tourner l'usage premier de la carte graphique, afficher des pixels, pour en faire une unit� de calcul � vocation g�n�raliste, concept connu sous l'acronyme barbare de GPGPU. Mais c'�tait r�serv� � quelques langages comme le C++, Python ou la plateforme .NET. Pour les d�veloppeurs JavaScript, point de salut, cela restait un peu le vide intersid�ral.
Et bien, il se trouve que ce vide vient d'�tre combl� tout r�cemment puisqu'une biblioth�que du nom de gpu.js permet d'ex�cuter certains calculs sur la carte graphique et non pas sur le processeur principal qui sera ainsi libre de r�agir aux interactions de l'utilisateur. Le champ d'action de cette biblioth�que est pour le moment assez restreint, mais elle n'en est qu'� sa version 0.0.Alpha. Il y a donc certainement de la marge de progression.
Mais d�j�, selon le benchmark fourni en guise de d�monstration et mon PC portable au moment o� j'�cris, les calculs seraient acc�l�r�s d'un facteur trois avec le circuit int�gr� Intel HD Graphics et au del� d'un facteur 8 avec une v�ritable carte graphique. Loin d'�tre n�gligeable donc.
M�me si je n'ai pas encore vraiment pu regarder sous le capot, la biblioth�que doit sans doute g�n�rer des shaders � la vol�e qu'elle transmet ensuite � la carte graphique via la couche WebGL. A v�rifier mais en gros, �a doit ressembler � quelque chose comme �a.
Quoiqu'il en soit, cela ouvre des perspectives tout � fait int�ressantes pour le langage JavaScript. Si on consid�re le projet WebAssembly et l'�volution de la norme vers le parall�lisme et la concurrence (Web Workers et SharedArrayBuffer), je vois mal ce qui ne pourra pas tourner � l'avenir sur le navigateur.
N'h�sitez pas � me dire ce que vous pensez de cette biblioth�que.
Bon d�veloppement !
source : Site officiel