• [^] # Re: Comment ça se programme ?

    Posté par . En réponse à la dépêche AMD mise tout sur RADV. Évalué à 3.

    tu fais comment pour chercher des exemples représentatifs pour se mettre le pied à l'étrier ?

    Je ne suis pas spécialiste, j'espère que quelqu'un de compétent me corrigera.

    Le bon cas, c'est tous les algos trivialement parallélisables, sans divergence, et sans trop de pression sur la mémoire. Le hachage parallèle (hashcat), l'évaluation Monte Carlo, ou, pour faire une jolie démo, l'ensemble de Mandelbrot. (C'est assez impressionnant, Mandelbrot sur un GPU, même sur un iGPU de base, c'est instantané.)

    Le moyen cas, c'est quand ça reste parallélisable sans divergence, mais c'est les temps de transfert qui dominent. C'est tout ce qui est convolutions, produits scalaires (donc réseaux de neurones), produits de matrices, etc. Ça inclut les filtres d'images et de vidéo, dont il y a plein d'exemples dans les sources de mpv. La difficulté, c'est les accès à la mémoire, l'architecture de la mémoire dans les GPU est complètement expicite, à la différence des CPU il faut gérer le cache manuellement. Et pour ce genre d'algorithmes, il faut un GPU discret, ça ne marche pas du tout sur les iGPU.

    Le cas amusant, c'est quand intuivivement il y a des dépendances, mais des gens plus intelligents que moi arrivent quand-même à paralléliser. Il y a des gens qui font des tris sur GPU, l'algorithme du scan, etc. J'essaie de lire les articles à ce sujet, mais pour le moment ça me dépasse.