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

Method SupportGPU

paddle/fluid/framework/operator.cc:1338–1362  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1336}
1337
1338bool OperatorWithKernel::SupportGPU() const {
1339 auto phi_kernels = phi::KernelFactory::Instance().SelectKernelMap(
1340 phi::TransToPhiKernelName(type_));
1341 auto has_phi_kernel =
1342 std::any_of(phi_kernels.begin(),
1343 phi_kernels.end(),
1344 [](phi::KernelKeyMap::const_reference kern_pair) {
1345 return kern_pair.first.backend() == phi::Backend::GPU;
1346 });
1347 if (has_phi_kernel) {
1348 return true;
1349 } else {
1350 auto kernel_iter = OperatorWithKernel::AllOpKernels().find(type_);
1351 if (kernel_iter == OperatorWithKernel::AllOpKernels().end()) {
1352 return false;
1353 } else {
1354 auto& op_kernels = kernel_iter->second;
1355 return std::any_of(op_kernels.begin(),
1356 op_kernels.end(),
1357 [](OpKernelMap::const_reference kern_pair) {
1358 return phi::is_gpu_place(kern_pair.first.place_);
1359 });
1360 }
1361 }
1362}
1363
1364bool OperatorWithKernel::SupportXPU() const {
1365#ifdef PADDLE_WITH_XPU

Callers 1

ApplyDeviceGuardFunction · 0.80

Calls 7

InstanceFunction · 0.85
is_gpu_placeFunction · 0.85
SelectKernelMapMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
backendMethod · 0.45
findMethod · 0.45

Tested by

no test coverage detected