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

Function NeedTransformPlace

paddle/phi/api/lib/data_transform.h:167–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

165 const std::vector<phi::DenseTensor>& tensor);
166
167inline bool NeedTransformPlace(const phi::Place& src_place,
168 const Backend& target,
169 const TransformFlag& transform_flag) {
170 // NOTE(dev): The default value of TransformFlag is True, if it is set with
171 // False
172 // somewhere such as ops.yaml or backward.yaml that means we should skip data
173 // transform. Because "stop_transform_" has highest priority.
174 if (!transform_flag.need_trans_backend()) {
175 return false;
176 }
177
178#if defined(PADDLE_WITH_CUDA) || defined(PADDLE_WITH_HIP)
179 bool ret = src_place.GetType() == AllocationType::GPUPINNED ||
180 (target != Backend::ALL_BACKEND &&
181 phi::TransToPhiBackend(src_place) !=
182 (target != Backend::GPUDNN ? target : Backend::GPU));
183#elif defined(PADDLE_WITH_XPU)
184 bool ret = src_place.GetType() == AllocationType::XPUPINNED ||
185 (target != Backend::ALL_BACKEND &&
186 phi::TransToPhiBackend(src_place) != target);
187#elif defined(PADDLE_WITH_IPU)
188 bool ret = target != Backend::ALL_BACKEND &&
189 phi::TransToPhiBackend(src_place) != target;
190#elif defined(PADDLE_WITH_CUSTOM_DEVICE)
191 bool ret = target != Backend::ALL_BACKEND;
192 if (target == Backend::CUSTOM) {
193 ret = ret && !is_custom_place(src_place);
194 } else {
195 ret =
196 ret && phi::TransToPhiBackend(src_place) !=
197 (target != Backend::GPUDNN ? target
198 : Backend::DEFAULT_CUSTOM_DEVICE);
199 }
200#else
201 bool ret = false;
202#endif
203
204#ifdef PADDLE_WITH_DNNL
205 if (target == Backend::ONEDNN) {
206 ret = src_place.GetType() != AllocationType::CPU;
207 }
208#endif
209 return ret;
210}
211
212/* ------------------ for auto parallel ----------------------- */
213

Callers 6

TransformDataFunction · 0.85
PrepareDataFunction · 0.85
PrepareDataForDistTensorFunction · 0.85
HandleForSpecialOpFunction · 0.85
BuildInputsFunction · 0.85

Calls 4

TransToPhiBackendFunction · 0.85
is_custom_placeFunction · 0.85
need_trans_backendMethod · 0.80
GetTypeMethod · 0.45

Tested by

no test coverage detected