VHLO-Checkliste

Weitere Informationen zu VHLO finden Sie unter vhlo.md.

Inkompatible Änderungen beitragen

Alle Änderungen mit Auswirkungen auf die Kompatibilität müssen den RFC-Prozess durchlaufen. Dies gilt auch für das Hinzufügen, Einstellen oder Umbenennen eines Elements. Sobald der RFC genehmigt haben, müssen folgende Schritte ausgeführt werden:

1. Die Versionsnummer in Version.h anstoßen und das Versionsprotokoll aktualisieren

Erhöhen Sie vor der Aktualisierung von VHLO-Vorgängen, -Attributen, -Typen oder -Conversions die Nebenversionsnummer in Version.h und aktualisieren Sie das Versionsprotokoll in VhloDialect.td.

Alle neu hinzugefügten VHLO-Funktionen würden diese überarbeitete Version verwenden, z. B. nach Anstoßen von 0.10.0 --> 0.11.0, einer neuen Operation in VhloOps.td würde Folgendes verwenden:

VHLO_Op<"abs_v2", "0.11.0", "current">

2. Erforderliche VHLO-Implementierung und -Conversions hinzufügen

Der genaue Code zum Einbinden einer neuen Funktion variiert unterschiedlich, aber für die meisten Teil, den Sie ändern müssen:

3. Einheitentests hinzufügen / aktualisieren

Wer zu einer inkompatiblen Änderung beigetragen hat, ist sowohl für positive negative Unittests der Funktion sowie Kompatibilitätseinheitentests.

Beim Testen der Kompatibilitätseinheiten wird stablehlo_legalize_to_vhlo.mlir aktualisiert. damit StableHLO mit der neuesten Version von VHLO umgeht, da zusätzliche Tests zur Vorwärts- oder Abwärtskompatibilität erforderlich sind. Beispiel: Wenn Sie eine neue Operation in Version X mit Y = X - 1 hinzufügen, fügen Sie eine Testdatei wie vhlo_to_version_downgrade_invalid.0_Y_0.mlir, die den Vorgang anzeigt, wird nicht unterstützt vor Version X. Wenn Sie eine neue Version eines Vorgangs hinzufügen, fügen Sie eine Testdatei wie vhlo_to_version_downgrade.0_Y_0.mlir, die angibt, dass der Vorgang herabgestuft werden kann erfolgreich war.

Wenn Ihr Vorgang Standardattribute hat, schließen Sie Tests ein, die zeigen, dass die Standardwerte serialisiert und deserialisiert wird.

4. Versionierten Serialisierungstest hinzufügen

Nach dem Hinzufügen von Tests zu stablehlo_legalize_to_vhlo.mlir den versionierten Test kopieren -Datei mit der größten Version in eine neue Datei mit der neuen Version neue Tests in diese Datei einfügen. Außerdem müssen Sie ein verknüpftes Bytecode-Datei mit stablehlo-translate:

export TARGET_VERSION=1.X.0
export TARGET_FILENAME=${TARGET_VERSION//./_}
stablehlo-translate --serialize --target=$TARGET_VERSION --strip-debuginfo stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir > stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir.bc