Développement d'optimisation Torch C++ et CUDA toute la journée aujourd'hui et demain, en direct ici/YouTube/Twitch. L'objectif est de 1) Faire en sorte que PufferLib effectue un apprentissage par renforcement à 10 millions d'étapes par seconde. 2) Éliminer les sources de goulots d'étranglement potentiels difficiles à identifier 3) Voyez comme nous pouvons le simplifier. Quelques questions pour les développeurs de GPU ci-dessous
Q : J'ai des petits réseaux et je dois réduire le nombre de lancements de noyaux. Mes options sont : 1) subir les difficultés liées à l'utilisation de cudagraph ; 2) écrire de gros noyaux fusionnés ; ou 3) les deux. Les noyaux fusionnés semblent intéressants, mais la fonction matmul de cublas de NVIDIA n'est pas open source. Que faire ?
Q : Jusqu'ici, la gestion des noyaux FP32 est assez simple. Il suffit d'écrire du C. Quelle est la méthode la plus simple pour gérer les formats TF32, FP16 et BF16 sans faire de bêtises ?
Q : Mon instinct me pousse à éviter les bibliothèques supplémentaires, sauf en cas d'absolue nécessité. Par exemple, je n'apprécie vraiment pas Triton (même si cela me dérangerait moins s'il générait les noyaux une seule fois, que je pourrais ensuite inclure statiquement dans mon projet). J'ai besoin d'ajuster la taille des tuiles. Comment faire ?