Skip to content

[E1] Combinaison MoE : k lignes relues sur PCIe dont les lignes GPU nulles, 3 kernels #44

Closed

Description

@gputier

session.cpp:844-847, verify.cpp:588-594 : copy_from_mapped relit les k lignes de sortie CPU depuis la mémoire mappée (~100 Ko par couche, 4,9 Mo par token), y compris les lignes des experts calculés sur le GPU, qui valent zéro. Ensuite moe_hit_add et la combinaison font deux kernels de plus.

Proposition : un seul kernel qui lit les lignes manquées dans y_miss (filtrées par le masque de hits), puis les lignes GPU, et calcule Σ w·y + partagé. HYPOTHÈSE : allouer y_miss en cudaHostAllocWriteCombined, puisque le CPU ne fait que l'écrire.

Gain (ESTIMÉ) : 0,2 à 0,5 ms par token.

Effort : M


Relevé dans l'audit docs/AUDIT-PERF.md (section 4). Gains : ESTIMÉ = calcul de l'audit, HYPOTHÈSE = à confirmer au profileur, MESURÉ = chiffre présent dans le dépôt. Aucun gain n'a été mesuré sur GPU. Les numéros de ligne renvoient au commit b38c183 (moteur 0.1.18) ; toujours présent en 0.1.20.

Activity

  1. added
    perfVitesse ou efficacité
    décodageChemin de génération (fenêtres de vérification, MTP)
    on Sep 28, 2026
  2. gputier commented on Sep 30, 2026

    @gputier
    OwnerAuthor

    Fait par 6c3c3d8 sur main (lot perf/window-batching) : un seul kernel lit les lignes CPU en place et les lignes GPU, sans relire les lignes nulles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    décodageChemin de génération (fenêtres de vérification, MTP)perfVitesse ou efficacité

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions