Ce document résume les consignes à suivre pour examiner les modifications apportées à la spécification. Pour le moment, ces modifications impliquent généralement la vérification de plusieurs éléments dans plusieurs sources. Ce document les résume donc toutes pour simplifier les examens:
- Vérifiez que la colonne "Specification" (Spécification) de status.md indique "yes" (oui).
- Vérifiez si le titre de la section correspond au mnémonique de l'opération dans l'ODS.
- Vérifiez si la section "Sémantique" correspond à l'opération sémantique de XLA.
- Vérifiez si les sections "Entrées" et "Sorties" :
- Listez les mêmes éléments que l'ODS.
- Répertoriez les mêmes éléments que HloInstruction::CreateFromProto.
- sont commandés exactement comme ODS ;
- En cas d'incohérences, vérifiez qu'il existe des demandes d'assistance correspondantes.
- Vérifiez si la section "Contraintes" :
- Correspond au fichier shape_inference.cc de XLA.
- Correspond au fichier hlo_verifier.cc de XLA.
- Correspond à l'ODS.
- Correspond à StablehloOps.cpp.
- En cas d'incohérences, vérifiez qu'il existe des demandes d'assistance correspondantes. Liez tous les billets dans la spécification, à des emplacements aussi spécifiques que possible (par exemple, si un ticket concerne une contrainte qui n'a pas été mise en œuvre, associez-le directement dans cette contrainte).
- Si les parties correspondantes de ODS et de StablehloOps.cpp correspondent aux spécifications, vérifiez que les colonnes "Verification" et "Type Inference" (Inférence de type) de status.md indiquent "yes" (oui).
- Vérifiez si la section "Exemples" :
- Cette chaîne ne comporte qu'un seul exemple. (Nous ajouterons ultérieurement des liens vers d'autres exemples de la suite de tests d'interpréteur StableHLO.)
- Utilise une syntaxe MLIR valide en exécutant
stablehlo-opt
sur les exemples de code. - Utilise une syntaxe MLIR générique qui peut être obtenue en exécutant
stablehlo-opt -mlir-print-op-generic
(nous nous en servons à la syntaxe générique dans la spécification pour éviter d'avoir à modifier la spécification lors des modifications apportées à Joller Printer).
- Vérifiez que
description
dans l'ODS de l'opération :- Inclut la première phrase de la spécification.
- Ensuite, un lien vers la section correspondante de la spécification s'affiche.
- Elle utilise ensuite le même exemple que la spécification, mais via une syntaxe élégante qui peut être obtenue en exécutant
stablehlo-opt
.
- Vérifiez que les fichiers liés à la mise en œuvre des contraintes de validation et d'inférence de type respectent les consignes mentionnées ci-dessous :
- Suivez la consigne n° 1 pour StablehloOps.td.
- Suivez la consigne n° 2 pour TypeInference.cpp et StablehloOps.cpp.
- Suivez la consigne n° 5 pour ops_stablehlo.mlir.
- Suivez la consigne n° 6 pour infer_stablehlo.mlir.