@@ -218,7 +218,10 @@ std::vector<cinn::common::CINNValue> IRGpuScheduleMatMul(
218218 vec_ast.emplace_back (temp);
219219 }
220220 }
221- CHECK (!vec_ast.empty ());
221+ PADDLE_ENFORCE_EQ (vec_ast.empty (),
222+ false ,
223+ phi::errors::InvalidArgument (
224+ " The vector 'vec_ast' should not be empty." ));
222225 ir::ModuleExpr mod_expr (vec_ast);
223226 ir::IRSchedule ir_sch (mod_expr);
224227 ir_sch.MergeExprs ();
@@ -311,9 +314,15 @@ void IRCudaSplitSchedule(ir::IRSchedule &ir_sch, // NOLINT
311314
312315 // collect block names
313316 auto get_block_name = [](ir::Expr expr) {
314- CHECK (expr.As <ir::ScheduleBlockRealize>());
315- CHECK (expr.As <ir::ScheduleBlockRealize>()
316- ->schedule_block .As <ir::ScheduleBlock>());
317+ PADDLE_ENFORCE_NOT_NULL (
318+ expr.As <ir::ScheduleBlockRealize>(),
319+ phi::errors::InvalidArgument (
320+ " The expression must be convertible to ir::ScheduleBlockRealize." ));
321+ PADDLE_ENFORCE_NOT_NULL (expr.As <ir::ScheduleBlockRealize>()
322+ ->schedule_block .As <ir::ScheduleBlock>(),
323+ phi::errors::InvalidArgument (
324+ " Failed to convert ir::ScheduleBlockRealize to "
325+ " ir::ScheduleBlock." ));
317326 return expr.As <ir::ScheduleBlockRealize>()
318327 ->schedule_block .As <ir::ScheduleBlock>()
319328 ->name ;
@@ -488,9 +497,16 @@ void IRGpuScheduleBlockReduceInternal(ir::IRSchedule &ir_sch, // NOLINT
488497 auto out_block = ir_sch.GetBlock (out->name );
489498 auto root_block = ir_sch.GetRootBlock (out_block);
490499
491- CHECK (out_block->as <ir::ScheduleBlockRealize>());
492- CHECK (out_block->as <ir::ScheduleBlockRealize>()
493- ->schedule_block ->as <ir::ScheduleBlock>());
500+ PADDLE_ENFORCE_NOT_NULL (
501+ out_block->as <ir::ScheduleBlockRealize>(),
502+ phi::errors::InvalidArgument (
503+ " The out_block must be convertible to ir::ScheduleBlockRealize." ));
504+ PADDLE_ENFORCE_NOT_NULL (
505+ out_block->as <ir::ScheduleBlockRealize>()
506+ ->schedule_block ->as <ir::ScheduleBlock>(),
507+ phi::errors::InvalidArgument (
508+ " The schedule_block within ir::ScheduleBlockRealize must be "
509+ " convertible to ir::ScheduleBlock." ));
494510
495511 // create var
496512 auto var = ir::Var (ir::Expr (0 ), ir::Expr (1 ), cinn::common::UniqName (" i" ));
@@ -499,9 +515,16 @@ void IRGpuScheduleBlockReduceInternal(ir::IRSchedule &ir_sch, // NOLINT
499515 ->schedule_block ->as <ir::ScheduleBlock>()
500516 ->iter_vars .push_back (var);
501517
502- CHECK (root_block->as <ir::ScheduleBlockRealize>());
503- CHECK (root_block->as <ir::ScheduleBlockRealize>()
504- ->schedule_block ->as <ir::ScheduleBlock>());
518+ PADDLE_ENFORCE_NOT_NULL (
519+ root_block->as <ir::ScheduleBlockRealize>(),
520+ phi::errors::InvalidArgument (
521+ " The root_block must be convertible to ir::ScheduleBlockRealize." ));
522+ PADDLE_ENFORCE_NOT_NULL (
523+ root_block->as <ir::ScheduleBlockRealize>()
524+ ->schedule_block ->as <ir::ScheduleBlock>(),
525+ phi::errors::InvalidArgument (
526+ " The schedule_block within ir::ScheduleBlockRealize must be "
527+ " convertible to ir::ScheduleBlock." ));
505528
506529 // create for and block node
507530 auto for_node = ir::For::Make (var,
@@ -572,14 +595,20 @@ void IRGpuScheduleBlockReduce(ir::IRSchedule &ir_sch, // NOLINT
572595 << ir_sch.GetModule ().GetExprs ().at (0 );
573596 int tmp_put_shape_size_without_reduce = 0 ;
574597 for (auto i : tmp_out->shape ) {
575- CHECK (i.is_constant ());
598+ PADDLE_ENFORCE_EQ (i.is_constant (),
599+ true ,
600+ phi::errors::InvalidArgument (
601+ " The value must be a constant but it is not." ));
576602 if (i.as_int32 () != 1 ) tmp_put_shape_size_without_reduce++;
577603 }
578604 tmp_put_shape_size_without_reduce--;
579605 // fuse last parallel dimension
580606 int reduce_temp_out_shape_size = 0 ;
581607 for (auto i : reduce_tmp_out->shape ) {
582- CHECK (i.is_constant ());
608+ PADDLE_ENFORCE_EQ (i.is_constant (),
609+ true ,
610+ phi::errors::InvalidArgument (
611+ " The value must be a constant but it is not." ));
583612 if (i.as_int32 () != 1 ) reduce_temp_out_shape_size++;
584613 }
585614
@@ -623,9 +652,16 @@ void IRGpuScheduleBlockReduce(ir::IRSchedule &ir_sch, // NOLINT
623652 auto out_block = ir_sch.GetBlock (out->name );
624653 auto root_block = ir_sch.GetRootBlock (out_block);
625654
626- CHECK (out_block->as <ir::ScheduleBlockRealize>());
627- CHECK (out_block->as <ir::ScheduleBlockRealize>()
628- ->schedule_block ->as <ir::ScheduleBlock>());
655+ PADDLE_ENFORCE_NOT_NULL (
656+ out_block->as <ir::ScheduleBlockRealize>(),
657+ phi::errors::InvalidArgument (
658+ " The out_block must be convertible to ir::ScheduleBlockRealize." ));
659+ PADDLE_ENFORCE_NOT_NULL (
660+ out_block->as <ir::ScheduleBlockRealize>()
661+ ->schedule_block ->as <ir::ScheduleBlock>(),
662+ phi::errors::InvalidArgument (
663+ " The schedule_block within ir::ScheduleBlockRealize must be "
664+ " convertible to ir::ScheduleBlock." ));
629665
630666 // create var
631667 auto var = ir::Var (ir::Expr (0 ), ir::Expr (1 ), cinn::UniqName (" i" ));
@@ -634,9 +670,16 @@ void IRGpuScheduleBlockReduce(ir::IRSchedule &ir_sch, // NOLINT
634670 ->schedule_block ->as <ir::ScheduleBlock>()
635671 ->iter_vars .push_back (var);
636672
637- CHECK (root_block->as <ir::ScheduleBlockRealize>());
638- CHECK (root_block->as <ir::ScheduleBlockRealize>()
639- ->schedule_block ->as <ir::ScheduleBlock>());
673+ PADDLE_ENFORCE_NOT_NULL (
674+ root_block->as <ir::ScheduleBlockRealize>(),
675+ phi::errors::InvalidArgument (
676+ " The root_block must be convertible to ir::ScheduleBlockRealize." ));
677+ PADDLE_ENFORCE_NOT_NULL (
678+ root_block->as <ir::ScheduleBlockRealize>()
679+ ->schedule_block ->as <ir::ScheduleBlock>(),
680+ phi::errors::InvalidArgument (
681+ " The schedule_block within ir::ScheduleBlockRealize must be "
682+ " convertible to ir::ScheduleBlock." ));
640683
641684 // create for and block node
642685 auto for_node = ir::For::Make (var,
@@ -1010,9 +1053,16 @@ void IRGpuTwoStepReduceSchedule(ir::IRSchedule &ir_sch, // NOLINT
10101053 auto out_block = ir_sch.GetBlock (out->name );
10111054 auto root_block = ir_sch.GetRootBlock (out_block);
10121055
1013- CHECK (out_block->as <ir::ScheduleBlockRealize>());
1014- CHECK (out_block->as <ir::ScheduleBlockRealize>()
1015- ->schedule_block ->as <ir::ScheduleBlock>());
1056+ PADDLE_ENFORCE_NOT_NULL (
1057+ out_block->as <ir::ScheduleBlockRealize>(),
1058+ phi::errors::InvalidArgument (
1059+ " The out_block must be convertible to ir::ScheduleBlockRealize." ));
1060+ PADDLE_ENFORCE_NOT_NULL (
1061+ out_block->as <ir::ScheduleBlockRealize>()
1062+ ->schedule_block ->as <ir::ScheduleBlock>(),
1063+ phi::errors::InvalidArgument (
1064+ " The schedule_block within ir::ScheduleBlockRealize must be "
1065+ " convertible to ir::ScheduleBlock." ));
10161066
10171067 // create var
10181068 // auto var = ir::Var(ir::Expr(0), ir::Expr(1), "i_0");
@@ -1022,9 +1072,16 @@ void IRGpuTwoStepReduceSchedule(ir::IRSchedule &ir_sch, // NOLINT
10221072 ->schedule_block ->as <ir::ScheduleBlock>()
10231073 ->iter_vars .push_back (var);
10241074
1025- CHECK (root_block->as <ir::ScheduleBlockRealize>());
1026- CHECK (root_block->as <ir::ScheduleBlockRealize>()
1027- ->schedule_block ->as <ir::ScheduleBlock>());
1075+ PADDLE_ENFORCE_NOT_NULL (
1076+ root_block->as <ir::ScheduleBlockRealize>(),
1077+ phi::errors::InvalidArgument (
1078+ " The root_block must be convertible to ir::ScheduleBlockRealize." ));
1079+ PADDLE_ENFORCE_NOT_NULL (
1080+ root_block->as <ir::ScheduleBlockRealize>()
1081+ ->schedule_block ->as <ir::ScheduleBlock>(),
1082+ phi::errors::InvalidArgument (
1083+ " The schedule_block within ir::ScheduleBlockRealize must be "
1084+ " convertible to ir::ScheduleBlock." ));
10281085
10291086 // create for and block node
10301087 auto for_node = ir::For::Make (var,
@@ -1205,7 +1262,9 @@ void IRGlobalPoolScheduleGPU(ir::IRSchedule &ir_sch, // NOLINT
12051262void IRCudaScheduleDepthwiseConv (ir::IRSchedule &ir_sch, // NOLINT
12061263 const std::vector<ir::Expr> &tensors) {
12071264 if (tensors.size () == 3U ) {
1208- CHECK (tensors[1 ].as_tensor ());
1265+ PADDLE_ENFORCE_NOT_NULL (tensors[1 ].as_tensor (),
1266+ phi::errors::InvalidArgument (
1267+ " The tensor at index 1 must not be null." ));
12091268 auto input_pad = ir_sch.GetBlock (tensors[1 ].as_tensor_ref ()->name );
12101269 ir_sch.ComputeInline (input_pad);
12111270 }
0 commit comments