fix-deadlinks-in-readme
fengjiayi 7 years ago
parent f79ca23115
commit 5398e1a3a6

@ -157,19 +157,19 @@ class CudnnHolder {
void RunFunc(const std::function<void(void*)>& cudnn_func,
size_t required_workspace_len) {
framework::RWLockGuard lock_guard(&rw_lock_,
framework::RWLockGuard::Status::kRDLock);
std::lock_guard<std::mutex> lock(mtx_);
if (required_workspace_len > workspace_len_) {
lock_guard.UnLock();
lock_guard.WRLock();
ReallocateWorkspace(required_workspace_len);
lock_guard.UnLock();
lock_guard.RDLock();
}
cudnn_func(workspace_);
}
~CudnnHolder() { PADDLE_ENFORCE(dynload::cudnnDestroy(cudnn_handle_)); }
~CudnnHolder() {
PADDLE_ENFORCE(dynload::cudnnDestroy(cudnn_handle_));
if (workspace_ != nullptr) {
paddle::memory::Free(place_, workspace_);
}
}
private:
void ReallocateWorkspace(size_t required_workspace_len) {
@ -194,7 +194,7 @@ class CudnnHolder {
const cudaStream_t* stream_; // not owned;
const CUDAPlace place_;
framework::RWLock rw_lock_;
std::mutex mtx_;
};
CUDADeviceContext::CUDADeviceContext(CUDAPlace place)

Loading…
Cancel
Save