|
|
|
@ -167,7 +167,7 @@ class CudnnHolder {
|
|
|
|
|
if (required_workspace_len > WorkspaceSize()) {
|
|
|
|
|
ReallocateWorkspace(required_workspace_len);
|
|
|
|
|
}
|
|
|
|
|
cudnn_func(workspace_->ptr());
|
|
|
|
|
cudnn_func(WorkspacePtr());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~CudnnHolder() { PADDLE_ENFORCE(dynload::cudnnDestroy(cudnn_handle_)); }
|
|
|
|
@ -181,6 +181,14 @@ class CudnnHolder {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void* WorkspacePtr() const {
|
|
|
|
|
if (workspace_ == nullptr) {
|
|
|
|
|
return nullptr;
|
|
|
|
|
} else {
|
|
|
|
|
return workspace_->ptr();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ReallocateWorkspace(size_t required_workspace_len) {
|
|
|
|
|
if (required_workspace_len <= WorkspaceSize()) {
|
|
|
|
|
return;
|
|
|
|
|