
Envoyé par
Marvell
C'est un point de vue. Pour ma part, j'estime que le programmeur ne devrait pas avoir à se soucier des détails concernant l'architecture sous-jasante. À cela, plusieurs raisons… Les systèmes tendent à être hétérogènes. Un utilisateur peut disposer d'un grand nombre de cœurs scalaires, et d'un GPU d'appoint. À contrario, un autre peut avoir un CPU plus modeste, mais un puissant GPU. De plus, les architectures évoluent rapidement : les GPU délaissent le modèle SIMD pour le SIMT, plusieurs ISAs cohabitent sur un même SoC, etc.
D'autre part, les programmes n'ont pas l'exclusivité sur les ressources du système ! Une charge de travail conséquente peut être initiée par n'importe quel application, sans que les autres en aient conscience. Laisser les développeurs choisir entre le GPU ou le CPU ne requiert que pure spéculation de leur part ! Là, le système d'exploitation – ayant connaissance des performances relatives offertes par chacune des unités de traitements, ainsi que de leur charge – peut réaliser un bien meilleur choix.
Partager