Skip to content

Commit 5398e1a

Browse files
committed
fix bugs
1 parent f79ca23 commit 5398e1a

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

paddle/fluid/platform/device_context.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -157,19 +157,19 @@ class CudnnHolder {
157157

158158
void RunFunc(const std::function<void(void*)>& cudnn_func,
159159
size_t required_workspace_len) {
160-
framework::RWLockGuard lock_guard(&rw_lock_,
161-
framework::RWLockGuard::Status::kRDLock);
160+
std::lock_guard<std::mutex> lock(mtx_);
162161
if (required_workspace_len > workspace_len_) {
163-
lock_guard.UnLock();
164-
lock_guard.WRLock();
165162
ReallocateWorkspace(required_workspace_len);
166-
lock_guard.UnLock();
167-
lock_guard.RDLock();
168163
}
169164
cudnn_func(workspace_);
170165
}
171166

172-
~CudnnHolder() { PADDLE_ENFORCE(dynload::cudnnDestroy(cudnn_handle_)); }
167+
~CudnnHolder() {
168+
PADDLE_ENFORCE(dynload::cudnnDestroy(cudnn_handle_));
169+
if (workspace_ != nullptr) {
170+
paddle::memory::Free(place_, workspace_);
171+
}
172+
}
173173

174174
private:
175175
void ReallocateWorkspace(size_t required_workspace_len) {
@@ -194,7 +194,7 @@ class CudnnHolder {
194194
const cudaStream_t* stream_; // not owned;
195195
const CUDAPlace place_;
196196

197-
framework::RWLock rw_lock_;
197+
std::mutex mtx_;
198198
};
199199

200200
CUDADeviceContext::CUDADeviceContext(CUDAPlace place)

0 commit comments

Comments
 (0)