mlir.dialects.transform.x86 =========================== .. py:module:: mlir.dialects.transform.x86 Classes ------- .. autoapisummary:: mlir.dialects.transform.x86.ApplyMoveAccumulatorForContractLoopPatternsOp mlir.dialects.transform.x86.ApplyMoveAccumulatorForContractLoopPatternsOpAdaptor mlir.dialects.transform.x86.ApplyShuffleVectorFMAOpsPatternsOp mlir.dialects.transform.x86.ApplyShuffleVectorFMAOpsPatternsOpAdaptor mlir.dialects.transform.x86.ApplySinkVectorProducerOpsPatternsOp mlir.dialects.transform.x86.ApplySinkVectorProducerOpsPatternsOpAdaptor mlir.dialects.transform.x86.ApplyVectorContractBF16ToFMAPatternsOp mlir.dialects.transform.x86.ApplyVectorContractBF16ToFMAPatternsOpAdaptor mlir.dialects.transform.x86.ApplyVectorContractToAMXDotProductPatternsOp mlir.dialects.transform.x86.ApplyVectorContractToAMXDotProductPatternsOpAdaptor mlir.dialects.transform.x86.ApplyVectorContractToFMAPatternsOp mlir.dialects.transform.x86.ApplyVectorContractToFMAPatternsOpAdaptor mlir.dialects.transform.x86.ApplyVectorContractToPackedTypeDotProductPatternsOp mlir.dialects.transform.x86.ApplyVectorContractToPackedTypeDotProductPatternsOpAdaptor Functions --------- .. autoapisummary:: mlir.dialects.transform.x86.apply_patterns_x86_move_accumulator_for_contract_loop mlir.dialects.transform.x86.apply_patterns_x86_shuffle_vector_fma_ops mlir.dialects.transform.x86.apply_patterns_x86_sink_vector_producer_ops mlir.dialects.transform.x86.apply_patterns_x86_vector_contract_bf16_to_fma mlir.dialects.transform.x86.apply_patterns_x86_vector_contract_to_amx_dot_product mlir.dialects.transform.x86.apply_patterns_x86_vector_contract_to_fma mlir.dialects.transform.x86.apply_patterns_x86_vector_contract_to_packed_type_dot_product Module Contents --------------- .. py:class:: ApplyMoveAccumulatorForContractLoopPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Rewrites an additive vector contraction by zeroing the accumulator input and materializing the accumulation as a separate add after the contraction. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.move_accumulator_for_contract_loop' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplyMoveAccumulatorForContractLoopPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplyMoveAccumulatorForContractLoopPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.move_accumulator_for_contract_loop' .. py:function:: apply_patterns_x86_move_accumulator_for_contract_loop(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplyMoveAccumulatorForContractLoopPatternsOp .. py:class:: ApplyShuffleVectorFMAOpsPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Collect patterns to shuffle FMAs with x86 operations as operands such that FMAs are grouped with respect to odd/even packed index. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.shuffle_vector_fma_ops' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplyShuffleVectorFMAOpsPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplyShuffleVectorFMAOpsPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.shuffle_vector_fma_ops' .. py:function:: apply_patterns_x86_shuffle_vector_fma_ops(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplyShuffleVectorFMAOpsPatternsOp .. py:class:: ApplySinkVectorProducerOpsPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Collect patterns to sink vector producer operations forward in a block to place them immediately before their first use. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.sink_vector_producer_ops' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplySinkVectorProducerOpsPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplySinkVectorProducerOpsPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.sink_vector_producer_ops' .. py:function:: apply_patterns_x86_sink_vector_producer_ops(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplySinkVectorProducerOpsPatternsOp .. py:class:: ApplyVectorContractBF16ToFMAPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Collect patterns to lower a BF16 type vector.contract operation to a FMA via emulation lowering using BF16 packed operations. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_bf16_to_fma' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplyVectorContractBF16ToFMAPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplyVectorContractBF16ToFMAPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_bf16_to_fma' .. py:function:: apply_patterns_x86_vector_contract_bf16_to_fma(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplyVectorContractBF16ToFMAPatternsOp .. py:class:: ApplyVectorContractToAMXDotProductPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Collect patterns to lower a BF16/Int8 type vector.contract operation to a BF16/Int8 AMX tiled dot-product. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_to_amx_dot_product' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplyVectorContractToAMXDotProductPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplyVectorContractToAMXDotProductPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_to_amx_dot_product' .. py:function:: apply_patterns_x86_vector_contract_to_amx_dot_product(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplyVectorContractToAMXDotProductPatternsOp .. py:class:: ApplyVectorContractToFMAPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Collect patterns to lower a F32 type vector.contract operation to a FMA. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_to_fma' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplyVectorContractToFMAPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplyVectorContractToFMAPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_to_fma' .. py:function:: apply_patterns_x86_vector_contract_to_fma(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplyVectorContractToFMAPatternsOp .. py:class:: ApplyVectorContractToPackedTypeDotProductPatternsOp(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) Bases: :py:obj:`_ods_ir` Collect patterns to lower a BF16/Int8 type vector.contract operation to a BF16/Int8 dot-product. .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_to_packed_type_dot_product' .. py:attribute:: _ODS_REGIONS :value: (0, True) .. py:class:: ApplyVectorContractToPackedTypeDotProductPatternsOpAdaptor(operands: list[Value], attributes: OpAttributeMap) ApplyVectorContractToPackedTypeDotProductPatternsOpAdaptor(operands: list[Value], opview: OpView) Bases: :py:obj:`_ods_ir` .. py:attribute:: OPERATION_NAME :value: 'transform.apply_patterns.x86.vector_contract_to_packed_type_dot_product' .. py:function:: apply_patterns_x86_vector_contract_to_packed_type_dot_product(*, loc: Optional[_ods_ir] = None, ip: Optional[_ods_ir] = None) -> ApplyVectorContractToPackedTypeDotProductPatternsOp