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.