| 15 | } |
| 16 | |
| 17 | SmallVector<TensorPtr> apply_on_physical_tensor( |
| 18 | const OpDef& def, const SmallVector<TensorPtr>& inputs, |
| 19 | SmallVector<LogicalTensorDesc>& output_descs, const bool& validated) { |
| 20 | auto&& op = def.cast_final_safe<CheckNonFinite>(); |
| 21 | auto comp_node = inputs[0]->comp_node(); |
| 22 | auto dest = Tensor::make(TensorLayout({1}, dtype::Int32()), comp_node); |
| 23 | SmallVector<TensorPtr> outputs; |
| 24 | outputs.reserve(inputs.size() + 1); |
| 25 | for (auto&& input : inputs) { |
| 26 | outputs.push_back(Tensor::make(input->layout(), comp_node)); |
| 27 | outputs.back()->dev_tensor().copy_from_fixlayout(input->dev_tensor()); |
| 28 | } |
| 29 | DnnOprCaller<megdnn::CheckNonFinite> dnn_opr(comp_node, {op.scale}); |
| 30 | dnn_opr.exec_with_ws(outputs, dest); |
| 31 | outputs.push_back(dest); |
| 32 | return outputs; |
| 33 | } |
| 34 | |
| 35 | std::tuple<SmallVector<LogicalTensorDesc>, bool> infer_output_attrs_fallible( |
| 36 | const OpDef& def, const SmallVector<LogicalTensorDesc>& inputs) { |
nothing calls this directly
no test coverage detected