Ne jamais bloquer le GPU ! Dans un nouvel article de blog @modal, nous passons en revue une catégorie majeure d'inefficacité dans l'inférence IA : la surcharge de l'hôte. Nous présentons trois cas où nous avons collaboré avec @sgl_project pour réduire lmodal.com/blog/host-over…ter les blocages du GPU. Chaque microseconde compte. https://t.co/ZeumrZpSKE
Pour l'inférence, j'aime me représenter le GPU comme un grand bateau et le CPU comme un navigateur. Le navigateur doit indiquer au bateau la route à suivre. Si le bateau est immobilisé, en attendant les instructions du navigateur, c'est une mauvaise chose ! Vous gaspillez des ressources et du temps.
La principale cause de surcharge du système hôte dans l'inférence IA est une synchronisation inutile avec le processeur, ce qui fait que le système attend le navigateur.
Les moteurs de production comme @sgl_project évitent les cas les plus évidents de synchronisation hôte/périphérique. Nous avons trouvé deux cas particuliers où un peu d'ingéniosité pouvait éviter une synchronisation : - construction de représentations de position sur l'appareil - recalcul de la longueur de certaines pages du cache KV sur l'hôte
Relations github.com/sgl-project/sg…/github.com/sgl-project/sg…://t.co/Sc340PbB2F
Une autre astuce clé pour réduire la charge de l'hôte consiste à _fusionner_ les noyaux : transformer plusieurs lancements de noyaux GPU distincts en un seul. Le temps de latence pour chaque lancement n'est que d'une microseconde environ, mais chaque microseconde compte !
Nous avons identifié une opération spécifique qui entraînait une surcharge importante au lancement du noyau dans les VLM plus petits -- ceux dont nous constatons un déploiement beaucoup plus important (s/o @Alibaba_Qwen). Nous avons donc utilisé le compilateur @PyTorch pour fusionner automatiquement les noyaux, réduisant ainsi le temps d'exécution de 40 µs à 5 µs.
Plus de détails dansgithub.com/sgl-project/sg…e : https://t.co/gvEqTgdIth
La compilation Torch est idéale pour obtenir rapidement des gains en termes de latence d'inférence en général. Noumodal.com/blog/flux-3x-f… https://t.co/MN072QDXzz
Il reste encore beaucoup de microsecondes à gagner et beaucoup de GPU à libérer des chaînes d'un code CPU non optimisé ! Mais l'équipe @modal est ravie d'avoir déjà réalisé des progrès qui aident nos clients à proposer des applications d'IA interactivesmodal.com/blog/host-over… https://t.co/ZeumrZqqAc



