Maintenant, parlons GPU

Voyons comment Rust se positionne par rapport à mon idéal1 du calcul GPU :

  • Portabilité de l’appli vers un maximum de fabricants, GPUs et OSes.
  • Environnement de dev & exécution faciles à installer et maintenir.
  • Accès au support fabricant, y compris outils : débogueur, profileur…
  • Facile d’écrire du code kernel GPU + plomberie CPU/GPU.
  • Donne un accès complet au matériel, y compris subgroups, textures, tensor cores
  • Peu de duplication de code entre GPUs, hors optimisations spécifiques rares.
  • Bonne interopérabilité avec la visualisation (le GPU est fait pour ça !).

Cet idéal n’inclut pas le partage de code kernel CPU/GPU/FPGA. Ca fait des années que ce désir produit des usines à gaz compliquées et non performantes, il me semble temps d’arrêter les frais.

1

Comme tous les idéaux, ses points-clés et leur importance relative sont personnels et sujets à débat.