|
|
|
@ -162,6 +162,23 @@ void Tracer::TraceOp(const std::string& type, const NameVarBaseMap& ins,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if (platform::is_gpu_place(place)) {
|
|
|
|
|
#if defined(PADDLE_WITH_CUDA) || defined(PADDLE_WITH_HIP)
|
|
|
|
|
platform::SetDeviceId(BOOST_GET_CONST(platform::CUDAPlace, place).device);
|
|
|
|
|
#else
|
|
|
|
|
PADDLE_THROW(platform::errors::PreconditionNotMet(
|
|
|
|
|
"PaddlePaddle should compile with GPU if use CUDAPlace."));
|
|
|
|
|
#endif
|
|
|
|
|
} else if (platform::is_xpu_place(place)) {
|
|
|
|
|
#ifdef PADDLE_WITH_XPU
|
|
|
|
|
platform::SetXPUDeviceId(
|
|
|
|
|
BOOST_GET_CONST(platform::XPUPlace, place).device);
|
|
|
|
|
#else
|
|
|
|
|
PADDLE_THROW(platform::errors::PreconditionNotMet(
|
|
|
|
|
"PaddlePaddle should compile with XPU if use XPUPlace."));
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
OpBase::Run(*op, new_ins, outs, attrs, place);
|
|
|
|
|
} catch (platform::EnforceNotMet& exception) {
|
|
|
|
|
framework::AppendErrorOpHint(type, &exception);
|
|
|
|
@ -199,22 +216,6 @@ void Tracer::TraceOp(const std::string& type, const NameVarBaseMap& ins,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Tracer::SetExpectedPlace(platform::Place place) {
|
|
|
|
|
// NOTE(wangxi): set device id before launch device kernel
|
|
|
|
|
if (platform::is_gpu_place(place)) {
|
|
|
|
|
#if defined(PADDLE_WITH_CUDA) || defined(PADDLE_WITH_HIP)
|
|
|
|
|
platform::SetDeviceId(BOOST_GET_CONST(platform::CUDAPlace, place).device);
|
|
|
|
|
#else
|
|
|
|
|
PADDLE_THROW(platform::errors::PreconditionNotMet(
|
|
|
|
|
"PaddlePaddle should compile with GPU if use CUDAPlace."));
|
|
|
|
|
#endif
|
|
|
|
|
} else if (platform::is_xpu_place(place)) {
|
|
|
|
|
#ifdef PADDLE_WITH_XPU
|
|
|
|
|
platform::SetXPUDeviceId(BOOST_GET_CONST(platform::XPUPlace, place).device);
|
|
|
|
|
#else
|
|
|
|
|
PADDLE_THROW(platform::errors::PreconditionNotMet(
|
|
|
|
|
"PaddlePaddle should compile with XPU if use XPUPlace."));
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
expected_place_ = place;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|