| 708 | |
| 709 | template <typename Op> |
| 710 | SmallVector<TensorPtr> apply_on_physical_tensor( |
| 711 | const OpDef& def, const SmallVector<TensorPtr>& inputs, |
| 712 | SmallVector<LogicalTensorDesc>& output_descs, const bool& validated) { |
| 713 | SmallVector<TensorPtr> outputs; |
| 714 | SmallVector<LogicalTensorDesc> desc = infer_output_attrs<Op>(def, inputs); |
| 715 | for (auto&& i : desc) { |
| 716 | outputs.push_back(Tensor::make(i.layout, i.comp_node)); |
| 717 | } |
| 718 | exec<Op>(def, inputs, outputs, {}); |
| 719 | return outputs; |
| 720 | } |
| 721 | |
| 722 | template <> |
| 723 | SmallVector<TensorPtr> apply_on_physical_tensor<MultiHeadAttn>( |