Lista de tareas de VHLO

Consulta vhlo.md para obtener información sobre VHLO.

Cómo contribuir a cambios incompatibles

Todos los cambios con implicaciones de compatibilidad deben pasar por el proceso de RFC. Esto incluye agregar un atributo, darlo de baja o cambiar su nombre. Una vez que el RFC aprobado, se deben completar los siguientes pasos:

1. Modifica el número de versión en Version.h y actualiza el registro de versiones

Antes de actualizar las operaciones, los atributos, los tipos o las conversiones de VHLO, incrementa número de versión menor en Version.h, y actualiza el registro de la versión en VhloDialect.td.

Cualquier función nueva de VHLO que se agregue usaría esta versión mejorada, por ejemplo, después mostrando 0.10.0 --> 0.11.0, una nueva op en VhloOps.td usaría:

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

2. Agregar la implementación y las conversiones de VHLO requeridas

El código exacto que se necesita para integrar una función nueva variará, pero para la mayoría lo siguiente deberá cambiar:

3. Agregar o actualizar pruebas de unidades

La persona que contribuye a un cambio incompatible es responsable de pruebas de unidades negativas de la función, así como pruebas de unidades de compatibilidad.

La prueba de unidades de compatibilidad implica la actualización de stablehlo_legalize_to_vhlo.mlir. para garantizar que los recorridos de StableHLO sean de ida y vuelta con la versión más reciente de VHLO, como se requiere cualquier prueba adicional de retrocompatibilidad. Por ejemplo: Si agregas una operación nueva en la versión X con Y = X - 1, agrega un archivo de prueba, como vhlo_to_version_downgrade_invalid.0_Y_0.mlir, que muestra que la op no es compatible. anterior a la versión X. Si agregas una versión nueva de una op, agrega un archivo de prueba, como vhlo_to_version_downgrade.0_Y_0.mlir que muestra que la operación se puede cambiar a una versión inferior. con éxito.

Si tu operación tiene atributos predeterminados, incluye pruebas que muestren que los valores predeterminados son serializado y deserializado correctamente.

4. Agregar prueba de serialización con control de versiones

Después de agregar pruebas a stablehlo_legalize_to_vhlo.mlir, copia la prueba con control de versiones. con la versión más grande en un nuevo archivo en la nueva versión y agrega el pruebas nuevas a ese archivo también. También deberás crear una cuenta archivo de código de bytes con 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