Remove deprecate function

This commit is contained in:
kradchen
2023-11-28 09:43:46 +08:00
parent 9beffc39c7
commit d470f12dc1
2 changed files with 69 additions and 17 deletions

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
build/ build/
.cache/ .cache/
.vscode/ .vscode/
URDepends/ URD*/

View File

@@ -41,8 +41,8 @@ struct sparse_mm {
cusparseIndexBase_t idxBase) cusparseIndexBase_t idxBase)
*/ */
unsigned long tbufferSize = 0;
HANDLE_ERROR(cusparseScsr2csc(cs_handle, cusparseCsr2cscEx2_bufferSize(cs_handle,
A.dim_x, // m A.dim_x, // m
A.dim_y, // n A.dim_y, // n
A.nnz, // nnz A.nnz, // nnz
@@ -50,10 +50,42 @@ struct sparse_mm {
A_csc.ptr(), // csrRowPtr A_csc.ptr(), // csrRowPtr
A_csc.ind(), // csrColInd A_csc.ind(), // csrColInd
A_csr.val(), // cscVal A_csr.val(), // cscVal
A_csr.ind(), // cscRowInd
A_csr.ptr(), // cscColPtr A_csr.ptr(), // cscColPtr
A_csr.ind(), // cscRowInd
CUDA_R_32F,
CUSPARSE_ACTION_NUMERIC, // copyValues CUSPARSE_ACTION_NUMERIC, // copyValues
CUSPARSE_INDEX_BASE_ZERO)); // idxBase CUSPARSE_INDEX_BASE_ZERO,
CUSPARSE_CSR2CSC_ALG1,
&tbufferSize);
void * buffer =NULL;
cudaMalloc(&buffer,tbufferSize);
cusparseCsr2cscEx2(cs_handle,
A.dim_x, // m
A.dim_y, // n
A.nnz, // nnz
A_csc.val(), // csrVal
A_csc.ptr(), // csrRowPtr
A_csc.ind(), // csrColInd
A_csr.val(), // cscVal
A_csr.ptr(), // cscColPtr
A_csr.ind(), // cscRowInd
CUDA_R_32F,
CUSPARSE_ACTION_NUMERIC, // copyValues
CUSPARSE_INDEX_BASE_ZERO,
CUSPARSE_CSR2CSC_ALG1,buffer);
cudaFree(buffer);
// HANDLE_ERROR(cusparseScsr2csc(cs_handle,
// A.dim_x, // m
// A.dim_y, // n
// A.nnz, // nnz
// A_csc.val(), // csrVal
// A_csc.ptr(), // csrRowPtr
// A_csc.ind(), // csrColInd
// A_csr.val(), // cscVal
// A_csr.ind(), // cscRowInd
// A_csr.ptr(), // cscColPtr
// CUSPARSE_ACTION_NUMERIC, // copyValues
// CUSPARSE_INDEX_BASE_ZERO)); // idxBase
@@ -139,20 +171,40 @@ inline cusparseStatus_t mat_vec_mul(cublasOperation_t transA, const sparse_mm &A
*/ */
cusparseStatus_t status; cusparseStatus_t status;
status = cusparseScsrmv(A.cs_handle, // status = cusparseScsrmv(A.cs_handle,
CUSPARSE_OPERATION_NON_TRANSPOSE, // CUSPARSE_OPERATION_NON_TRANSPOSE,
m, // m,
n, // n,
A.A_csr.nnz, // A.A_csr.nnz,
&alpha, // &alpha,
A.descrA, // A.descrA,
mA->val(), // mA->val(),
mA->ptr(), // mA->ptr(),
mA->ind(), // mA->ind(),
x, // x,
// &beta,
// y);
cusparseSpMatDescr_t matA;
cusparseCreateCsr(&matA,m,n,A.A_csr.nnz,(void*)mA->ptr(),(void*)mA->ind(),(void*)mA->val(),CUSPARSE_INDEX_32I,CUSPARSE_INDEX_32I,CUSPARSE_INDEX_BASE_ZERO,CUDA_R_32F);
cusparseDnVecDescr_t vecX,vecY;
cusparseCreateDnVec(&vecX,n, (void*)x, cudaDataType::CUDA_R_32F);
cusparseCreateDnVec(&vecY,m, (void*)y, cudaDataType::CUDA_R_32F);
unsigned long bufferSize = 0;
status = cusparseSpMV_bufferSize(A.cs_handle, CUSPARSE_OPERATION_NON_TRANSPOSE,&alpha,matA,
vecX,
&beta, &beta,
y); vecY,
cudaDataType::CUDA_R_32F,
CUSPARSE_CSRMV_ALG1, &bufferSize);
void* buffer = NULL;
cudaMalloc(&buffer,bufferSize);
status = cusparseSpMV(A.cs_handle, CUSPARSE_OPERATION_NON_TRANSPOSE,
&alpha, matA, vecX, &beta, vecY,
CUDA_R_32F, CUSPARSE_CSRMV_ALG1, buffer);
cusparseDestroySpMat(matA);
cusparseDestroyDnVec(vecX);
cusparseDestroyDnVec(vecY);
cudaFree(buffer);
return status; return status;
} }