Skip to content

Commit c576c6b

Browse files
authored
[flang][cuda] Remove error check from allocation and free call (#165022)
As in #164463, do not do error checking in the runtime itself but let error go through as user might want to catch them for error recovery.
1 parent a1dc546 commit c576c6b

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

flang-rt/lib/cuda/allocator.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,23 +138,21 @@ void RTDEF(CUFRegisterAllocator)() {
138138
void *CUFAllocPinned(
139139
std::size_t sizeInBytes, [[maybe_unused]] std::int64_t *asyncObject) {
140140
void *p;
141-
CUDA_REPORT_IF_ERROR(cudaMallocHost((void **)&p, sizeInBytes));
141+
cudaMallocHost((void **)&p, sizeInBytes);
142142
return p;
143143
}
144144

145-
void CUFFreePinned(void *p) { CUDA_REPORT_IF_ERROR(cudaFreeHost(p)); }
145+
void CUFFreePinned(void *p) { cudaFreeHost(p); }
146146

147147
void *CUFAllocDevice(std::size_t sizeInBytes, std::int64_t *asyncObject) {
148148
void *p;
149149
if (Fortran::runtime::executionEnvironment.cudaDeviceIsManaged) {
150-
CUDA_REPORT_IF_ERROR(
151-
cudaMallocManaged((void **)&p, sizeInBytes, cudaMemAttachGlobal));
150+
cudaMallocManaged((void **)&p, sizeInBytes, cudaMemAttachGlobal);
152151
} else {
153152
if (asyncObject == nullptr) {
154-
CUDA_REPORT_IF_ERROR(cudaMalloc(&p, sizeInBytes));
153+
cudaMalloc(&p, sizeInBytes);
155154
} else {
156-
CUDA_REPORT_IF_ERROR(
157-
cudaMallocAsync(&p, sizeInBytes, (cudaStream_t)*asyncObject));
155+
cudaMallocAsync(&p, sizeInBytes, (cudaStream_t)*asyncObject);
158156
insertAllocation(p, sizeInBytes, (cudaStream_t)*asyncObject);
159157
}
160158
}
@@ -167,21 +165,20 @@ void CUFFreeDevice(void *p) {
167165
if (pos >= 0) {
168166
cudaStream_t stream = deviceAllocations[pos].stream;
169167
eraseAllocation(pos);
170-
CUDA_REPORT_IF_ERROR(cudaFreeAsync(p, stream));
168+
cudaFreeAsync(p, stream);
171169
} else {
172-
CUDA_REPORT_IF_ERROR(cudaFree(p));
170+
cudaFree(p);
173171
}
174172
}
175173

176174
void *CUFAllocManaged(
177175
std::size_t sizeInBytes, [[maybe_unused]] std::int64_t *asyncObject) {
178176
void *p;
179-
CUDA_REPORT_IF_ERROR(
180-
cudaMallocManaged((void **)&p, sizeInBytes, cudaMemAttachGlobal));
177+
cudaMallocManaged((void **)&p, sizeInBytes, cudaMemAttachGlobal);
181178
return reinterpret_cast<void *>(p);
182179
}
183180

184-
void CUFFreeManaged(void *p) { CUDA_REPORT_IF_ERROR(cudaFree(p)); }
181+
void CUFFreeManaged(void *p) { cudaFree(p); }
185182

186183
void *CUFAllocUnified(
187184
std::size_t sizeInBytes, [[maybe_unused]] std::int64_t *asyncObject) {

0 commit comments

Comments
 (0)