MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / PrepareData

Function PrepareData

paddle/phi/api/lib/data_transform.cc:394–428  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

392}
393
394std::shared_ptr<phi::DenseTensor> PrepareData(
395 const Tensor& input,
396 const phi::TensorArgDef& target_args_def,
397 const TransformFlag& transform_flag,
398 bool is_stride_kernel) {
399 const auto& tensor_in = input.impl();
400 if (tensor_in) {
401 phi::DenseTensor& dense_tensor =
402 *static_cast<phi::DenseTensor*>(tensor_in.get());
403 if (!transform_flag.NeedTransform() || !dense_tensor.initialized() ||
404 (!NeedTransformPlace(
405 dense_tensor.place(), target_args_def.backend, transform_flag) &&
406 !NeedTransformDataType(
407 dense_tensor.dtype(), target_args_def.dtype, transform_flag) &&
408 !NeedTransformLayout(dense_tensor.layout(),
409 target_args_def.layout,
410 dense_tensor.place(),
411 transform_flag) &&
412 !NeedTransform2Contiguous(is_stride_kernel,
413 dense_tensor.meta().is_contiguous()))) {
414 if (NeedTransform2Contiguous(is_stride_kernel,
415 dense_tensor.meta().is_contiguous()) &&
416 dense_tensor.initialized()) {
417 phi::DenseTensor out = dense_tensor;
418 out = Trans2Contiguous(out);
419 return std::make_shared<phi::DenseTensor>(std::move(out));
420 }
421 return std::static_pointer_cast<phi::DenseTensor>(tensor_in);
422 }
423 phi::DenseTensor out = TransformData(
424 dense_tensor, target_args_def, transform_flag, is_stride_kernel);
425 return std::make_shared<phi::DenseTensor>(std::move(out));
426 }
427 return nullptr;
428}
429
430paddle::optional<phi::DenseTensor> PrepareData(
431 const paddle::optional<Tensor>& input,

Callers 4

add_n_implFunction · 0.70
fused_gemm_epilogue_implFunction · 0.70
cudnn_lstm_grad_implFunction · 0.70
embedding_grad_implFunction · 0.70

Calls 15

NeedTransformPlaceFunction · 0.85
Trans2ContiguousFunction · 0.85
NeedTransformMethod · 0.80
metaMethod · 0.80
NeedTransformDataTypeFunction · 0.70
NeedTransformLayoutFunction · 0.70
NeedTransform2ContiguousFunction · 0.70
TransformDataFunction · 0.70
implMethod · 0.45
getMethod · 0.45
initializedMethod · 0.45
placeMethod · 0.45

Tested by

no test coverage detected