@@ -212,8 +212,9 @@ extern MLIR_CUDA_WRAPPERS_EXPORT "C" void mgpuEventRecord(CUevent event,
212
212
213
213
extern " C" void *mgpuMemAlloc (uint64_t sizeBytes, CUstream /* stream*/ ) {
214
214
ScopedContext scopedContext;
215
- CUdeviceptr ptr;
216
- CUDA_REPORT_IF_ERROR (cuMemAlloc (&ptr, sizeBytes));
215
+ CUdeviceptr ptr = 0 ;
216
+ if (sizeBytes != 0 )
217
+ CUDA_REPORT_IF_ERROR (cuMemAlloc (&ptr, sizeBytes));
217
218
return reinterpret_cast <void *>(ptr);
218
219
}
219
220
@@ -521,7 +522,7 @@ extern "C" MLIR_CUDA_WRAPPERS_EXPORT intptr_t mgpuSpMVBufferSize(
521
522
CUSPARSE_REPORT_IF_ERROR (cusparseSpMV_bufferSize (
522
523
cusparse_env, modeA, alphap, matA, vecX, betap, vecY, cTp,
523
524
CUSPARSE_SPMV_ALG_DEFAULT, &bufferSize))
524
- return bufferSize == 0 ? 1 : bufferSize; // avoid zero-alloc
525
+ return bufferSize;
525
526
}
526
527
527
528
extern " C" MLIR_CUDA_WRAPPERS_EXPORT void mgpuSpMV (int32_t ma, void *a, void *x,
@@ -555,7 +556,7 @@ mgpuSpMMBufferSize(int32_t ma, int32_t mb, void *a, void *b, void *c,
555
556
CUSPARSE_REPORT_IF_ERROR (cusparseSpMM_bufferSize (
556
557
cusparse_env, modeA, modeB, alphap, matA, matB, betap, matC, cTp,
557
558
CUSPARSE_SPMM_ALG_DEFAULT, &bufferSize))
558
- return bufferSize == 0 ? 1 : bufferSize; // avoid zero-alloc
559
+ return bufferSize;
559
560
}
560
561
561
562
extern " C" MLIR_CUDA_WRAPPERS_EXPORT void mgpuSpMM (int32_t ma, int32_t mb,
@@ -590,7 +591,7 @@ mgpuSDDMMBufferSize(int32_t ma, int32_t mb, void *a, void *b, void *c,
590
591
CUSPARSE_REPORT_IF_ERROR (cusparseSDDMM_bufferSize (
591
592
cusparse_env, modeA, modeB, alphap, matA, matB, betap, matC, cTp,
592
593
CUSPARSE_SDDMM_ALG_DEFAULT, &bufferSize))
593
- return bufferSize == 0 ? 1 : bufferSize; // avoid zero-alloc
594
+ return bufferSize;
594
595
}
595
596
596
597
extern " C" MLIR_CUDA_WRAPPERS_EXPORT void mgpuSDDMM (int32_t ma, int32_t mb,
@@ -638,7 +639,7 @@ extern "C" MLIR_CUDA_WRAPPERS_EXPORT intptr_t mgpuSpGEMMWorkEstimation(
638
639
CUSPARSE_REPORT_IF_ERROR (cusparseSpGEMM_workEstimation (
639
640
cusparse_env, modeA, modeB, alphap, matA, matB, betap, matC, cTp,
640
641
CUSPARSE_SPGEMM_DEFAULT, spgemmDesc, &newBufferSize, buf))
641
- return newBufferSize == 0 ? 1 : newBufferSize; // avoid zero-alloc
642
+ return newBufferSize;
642
643
}
643
644
644
645
extern " C" MLIR_CUDA_WRAPPERS_EXPORT intptr_t
@@ -656,7 +657,7 @@ mgpuSpGEMMCompute(void *s, int32_t ma, int32_t mb, void *a, void *b, void *c,
656
657
CUSPARSE_REPORT_IF_ERROR (cusparseSpGEMM_compute (
657
658
cusparse_env, modeA, modeB, alphap, matA, matB, betap, matC, cTp,
658
659
CUSPARSE_SPGEMM_DEFAULT, spgemmDesc, &newBufferSize2, buf2))
659
- return newBufferSize2 == 0 ? 1 : newBufferSize2; // avoid zero-alloc
660
+ return newBufferSize2;
660
661
}
661
662
662
663
extern " C" MLIR_CUDA_WRAPPERS_EXPORT void
@@ -794,7 +795,6 @@ mgpuCuSparseLtSpMMBufferSize(void *bs, int32_t ma, int32_t mb, void *a, void *b,
794
795
auto workspace_size = reinterpret_cast <int64_t *>(bs);
795
796
auto compressed_size = &(reinterpret_cast <int64_t *>(bs)[1 ]);
796
797
auto compressed_buffer_size = &(reinterpret_cast <int64_t *>(bs)[2 ]);
797
- size_t workspace_size_, compressed_size_, compressed_buffer_size_;
798
798
auto cTp = static_cast <cusparseComputeType>(ctp);
799
799
800
800
cusparseOperation_t modeA = static_cast <cusparseOperation_t>(ma);
@@ -836,16 +836,9 @@ mgpuCuSparseLtSpMMBufferSize(void *bs, int32_t ma, int32_t mb, void *a, void *b,
836
836
}
837
837
838
838
CUSPARSE_REPORT_IF_ERROR (cusparseLtMatmulGetWorkspace (
839
- &cusparseLt_env, &(matA->plan ), &workspace_size_ ))
839
+ &cusparseLt_env, &(matA->plan ), workspace_size ))
840
840
CUSPARSE_REPORT_IF_ERROR (cusparseLtSpMMACompressedSize (
841
- &cusparseLt_env, &(matA->plan ), &compressed_size_,
842
- &compressed_buffer_size_))
843
-
844
- // Avoid zero-allocation.
845
- *workspace_size = (workspace_size_ == 0 ? 1 : workspace_size_);
846
- *compressed_size = (compressed_size_ == 0 ? 1 : compressed_size_);
847
- *compressed_buffer_size =
848
- (compressed_buffer_size_ == 0 ? 1 : compressed_buffer_size_);
841
+ &cusparseLt_env, &(matA->plan ), compressed_size, compressed_buffer_size))
849
842
}
850
843
851
844
extern " C" MLIR_CUDA_WRAPPERS_EXPORT void
0 commit comments