|
|
@ -176,13 +176,12 @@ class CudnnHolder {
|
|
|
|
if (required_workspace_len <= workspace_len_) {
|
|
|
|
if (required_workspace_len <= workspace_len_) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
void* new_workspace = paddle::memory::Alloc(place_, required_workspace_len);
|
|
|
|
|
|
|
|
if (workspace_ != nullptr) {
|
|
|
|
if (workspace_ != nullptr) {
|
|
|
|
// Maybe someone is using the current workspace
|
|
|
|
// Maybe someone is using the current workspace
|
|
|
|
PADDLE_ENFORCE(cudaStreamSynchronize(*stream_));
|
|
|
|
PADDLE_ENFORCE(cudaStreamSynchronize(*stream_));
|
|
|
|
paddle::memory::Free(place_, workspace_);
|
|
|
|
paddle::memory::Free(place_, workspace_);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
workspace_ = new_workspace;
|
|
|
|
workspace_ = paddle::memory::Alloc(place_, required_workspace_len);
|
|
|
|
workspace_len_ = required_workspace_len;
|
|
|
|
workspace_len_ = required_workspace_len;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|