def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager([ new_pass("build_cinn"), new_pass("fuse_elewise_add_act"), ]) pass_manager.apply([main_prog], [startup_prog]) print(pass_manager.names)
def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager([ new_pass("fuse_elewise_add_act"), new_pass("fuse_all_reduce", {"max_memory_size": 1024 * 1024}) ]) pass_manager.apply([main_prog], [startup_prog]) print(pass_manager.names)
def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager([ new_pass("build_cinn"), new_pass("fuse_elewise_add_act"), ]) pass_manager.apply([main_prog], [startup_prog]) op_types = [op.type for op in main_prog.global_block().ops] self.assertTrue('cinn_launch' in op_types)
def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager([new_pass("fuse_bn_act")]) pass_manager.apply([main_prog], [startup_prog]) print(pass_manager.names) op_type = [] for op in main_prog.global_block().ops: op_type.append(op.type) self.assertTrue("fused_batch_norm_act" in op_type) self.assertTrue("fused_batch_norm_act_grad" in op_type)
def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager([new_pass("fuse_relu_depthwise_conv")]) pass_manager.apply([main_prog], [startup_prog]) print(pass_manager.names) op_type = [] for op in main_prog.global_block().ops: if op.type == "depthwise_conv2d": self.assertTrue(op.desc.attr("fuse_relu_before_depthwise_conv")) op_type.append(op.type) self.assertTrue("depthwise_conv2d" in op_type)
def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager( [new_pass("inplace_addto_op", {"use_cuda": True})]) pass_manager.apply([main_prog], [startup_prog]) print(pass_manager.names) conv2d_grad_attr = [] for op in main_prog.global_block().ops: if op.type == "conv2d_grad": conv2d_grad_attr.append(op.desc.attr("use_addto")) self.assertTrue(True in conv2d_grad_attr)
def apply_passes(self, main_prog, startup_prog): pass_manager = PassManager([new_pass("fuse_optimizer")]) pass_manager.apply([main_prog], [startup_prog]) print(pass_manager.names) op_type = [] for op in main_prog.global_block().ops: op_type.append(op.type) if op.type == "adam": self.assertTrue("@FUSEDVAR@_adam_Param_batch_norm2d_0.b_0" in op.input("Param")) self.assertTrue("@FUSEDVAR@_adam_Grad_batch_norm2d_0.b_0@GRAD" in op.input("Grad")) self.assertTrue("coalesce_tensor" in op_type)