def __init__(self): sub_rules = [ OptimizeRuleGroup([ InsertTranspose(), ReplaceConvolutionByIm2Col(), ReplaceDeconvolutionByCol2Im(), ReplaceLinearByTensordot(), DecomposeSoftmax(), FixTensordotTextureShape(), MergeTensordotAndElementwiseMul(), ConstantFolding(), RemoveRedundantOperator(), RemoveNoEffectOperator(), SplitTexture(), UnrollConcat(), ]), OptimizeRuleGroup([ InsertTranspose(), InsertChannelModeConversion(), SimplifyChannelModeConversion(), ConstantFolding(), RemoveRedundantOperator(), RemoveNoEffectOperator(), ]), ] # type: List[OptimizeRule] if flags.DEBUG: sub_rules.append( DumpGraph(f"cg_{config.WEBGL_MAX_TEXTURE_SIZE}_{{count}}.dot")) super(WebGLOptimizeRule, self).__init__(sub_rules, repeat=False)
def __init__(self): super(GeneralOptimizeRule, self).__init__([ RemoveRedundantOperator(), RemoveNoEffectOperator(), RemoveNoEffectOperator(), ReplaceScalarOperator(), SimplifyElementwiseSequence(), SimplifySplitAxis(), SimplifyAssociativeOperator(), ConcatZeroPadding(), ConstantFolding(), Convolution2DSvdCompression(), ConvFilterPruning(), UpgradeOperatorType() ])
def __init__(self): super(SimplifyElementwise, self).__init__() self.register(RemoveNoEffectOperator()) self.register(ReplaceScalarAffine()) self.register(SimplifyElementwiseSequential()) self.register(SimplifyElementwiseParallel())
def __init__(self): sub_rules = [ OptimizeRuleGroup([ InsertTranspose(), ReplaceConvolutionByIm2Col(), MergeSgemmAndElementwiseMul(), ConstantFolding(), ReplaceDeconvolutionByCol2Im(), MergeSgemmAndElementwiseMul(), ConstantFolding(), ReplaceLinearBySgemm(), MergeSgemmAndElementwiseMul(), ConstantFolding(), ConcatLSTMInputAndHidden(), RemoveRedundantOperator(), RemoveNoEffectOperator(), UpdateInplaceAttribute() ]), ElementwiseKernelFusion() ] if flags.DEBUG: sub_rules.append(DumpGraph("cg{count}.dot")) super(WebGPUOptimizeRule, self).__init__(sub_rules)
def __init__(self): sub_rules = [ OptimizeRuleGroup([ InsertTranspose(), ReplaceConvolutionByIm2Col(), ReplaceDeconvolutionByCol2Im(), DecomposeSoftmax(), ReplaceLinearBySgemm(), MergeSgemmAndElementwiseMul(), FixSGEMMTextureShape(optimize_channel_mode=False), FixTensordotTextureShape(optimize_channel_mode=False), ConstantFolding(), SplitTexture(), ]), OptimizeRuleGroup([ InsertChannelModeConversion(), RemoveNoEffectOperator(), SimplifyElementwiseSequence(), SimplifySplitAxis(), RemoveRedundantOperator(), SimplifyChannelModeConversion(), FixSGEMMTextureShape(optimize_channel_mode=True), FixTensordotTextureShape(optimize_channel_mode=True), ]), AttachConcatWorkspace(), ] if flags.DEBUG: sub_rules.append(DumpGraph("cg{count}.dot")) super(WebGLOptimizeRule, self).__init__(sub_rules, repeat=False)
def __init__(self): super(GeneralOptimizeRule, self).__init__() self.register(RemoveRedundantOperator()) self.register(RemoveNoEffectOperator()) self.register(ReplaceScalarAffine()) self.register(SimplifyElementwise()) self.register(ConcatZeroPadding())
def __init__(self): super(SimplifyElementwise, self).__init__([ RemoveNoEffectOperator(), ReplaceScalarOperator(), SimplifyElementwiseSequential(), SimplifySplitAxis(), SimplifyCommutativeOperator(), SimplifyAssociativeOperator() ])
def __init__(self): super(WebGPUOptimizeRule, self).__init__() self.register(OptimizeTranspose()) self.register(OptimizeConvolution2D()) self.register(OptimizeDeconvolution2D()) self.register(OptimizeLinear()) self.register(OptimizeLSTM()) self.register(RemoveRedundantOperator()) self.register(RemoveNoEffectOperator()) self.register(ElementwiseKernelFusion())
def test_scalar_mul2(): x = Variable([5, 5], OrderNC) h = fn(x) y = h * 2 graph = Graph([x], [y]) flag_changed = True while flag_changed: graph, flag_changed = RemoveNoEffectOperator().optimize(graph) ops = listup_operators(graph) assert len(ops) == 2
def test_scalar_affine2(): x = Variable([5, 5], OrderNC) h = fn(x) y, = ScalarAffine(None, scale=2, bias=0)(h) graph = Graph([x], [y]) flag_changed = True while flag_changed: graph, flag_changed = RemoveNoEffectOperator().optimize(graph) ops = listup_operators(graph) assert len(ops) == 2
def __init__(self): super(WebGPUOptimizeRule, self).__init__([ OptimizeRuleGroup([ InsertTranspose(), ReplaceConvolutionByIm2Col(), MergeSgemmAndElementwiseMul(), ConstantFolding(), ReplaceDeconvolutionByCol2Im(), MergeSgemmAndElementwiseMul(), ConstantFolding(), ReplaceLinearBySgemm(), MergeSgemmAndElementwiseMul(), ConstantFolding(), ConcatLSTMInputAndHidden(), RemoveRedundantOperator(), RemoveNoEffectOperator(), UpdateInplaceAttribute() ]), ElementwiseKernelFusion() ])
def __init__(self): super(TensorFlowFrontendOptimizeRule, self).__init__([RemoveNoEffectOperator()])
def __init__(self): super(TensorFlowFrontendOptimizeRule, self).__init__() self.register(RemoveNoEffectOperator())