Avec la disponibilité des shaders de calcul pour DirectX et OpenGL, il est désormais possible d'implémenter de nombreux algorithmes sans passer par le pipeline de rastérisation et d'utiliser à la place l'informatique à usage général sur le GPU pour résoudre le problème.
Pour certains algorithmes, cela semble devenir la solution canonique intuitive car ils ne sont pas intrinsèquement basés sur la pixellisation, et les shaders basés sur la pixellisation semblent être une solution de contournement pour exploiter la puissance du GPU (exemple simple: créer une texture de bruit. Aucun quad n'a besoin d'être pixellisé ici ).
Étant donné un algorithme qui peut être mis en œuvre dans les deux sens, y a-t-il des avantages de performance (potentiels) généraux par rapport à l'utilisation de shaders de calcul par rapport à la voie normale? Y a-t-il des inconvénients que nous devrions surveiller (par exemple, y a-t-il une sorte de surcharge inhabituelle pour passer de / à des shaders de calcul lors de l'exécution)?
Y a-t-il peut-être d'autres avantages ou inconvénients à considérer lors du choix entre les deux?
la source
Réponses:
Il n'y a pas de bonne réponse si vous souhaitez bénéficier directement de l'approche de calcul shadrs / GPGPU, cela dépend fortement du type d'algorithme que vous mettez en œuvre, les shaders de calcul et CUDA / OpenCL sont une approche plus généralisée pour surmonter certaines des limitations de ces vieilles langues d'ombrage piratent. les avantages les plus importants que vous obtiendrez:
Eh bien, à mon avis , si vous voulez suivre la voie des shaders de calcul, même si certains algorithmes peuvent être plus adaptés, il y a certaines considérations que vous devez prendre en compte:
Néanmoins, je suis sûr que c'est formidable pour l'avenir et que ce sera une excellente expérience d'apprentissage. Bonne chance!
la source