Stream processing
Retour à la page precedente
Modèle de programmation consistant à appliquer un ensemble d’instructions relativement petit (on parle de kernel) à un très large ensemble de données (un flux). Ce code est très facilement parallélisable car il a peu, pour ne pas dire pas, de dépendances. De plus contrairement au code des applications bureautiques, il y a peu de branchement : tous les éléments d’un flux sont traités exactement de la même manière.
Un processeur classique exécute des calculs différents à la suite les uns des autres. Un stream processor est bâti dans une autre perspective : appliquer des opérations relativement simples de la même façon sur beaucoup de données. Des précurseurs ont été les unités d’exécution de type MMX ou SSE intégrées aux processeurs x86. Mais les stream processors ont avant tout trouvé leurs débouchés sur les GPU, où l’on trouve plusieurs unités. Le microprocesseur Cell conçu en association entre Sony, Toshiba et IBM, repose par ailleurs sur une logique de huit unités de calcul en parallèle dont la nature se rapproche des stream processors.
Un des atouts des stream processors dans le cadre des besoins actuels de puissance (comme les calculs multimédia) est leur facilité de déploiement en parallèle. Ils nécessitent toutefois une logique de programmation différente et une réécriture du code traditionnel.