1
我在C00格式的矩陣,這是我通過下面的代碼轉換爲CSR格式:爲混合(HYB)格式的CUDA中的稀疏矩陣分配內存?
status = cusparseXcoo2csr(handle, cooRowIndex, nnz, n,
csrRowPtr, CUSPARSE_INDEX_BASE_ZERO);
那麼我想從CSR格式HYB格式矩陣轉換,但我不知道有多少內存我需要爲HYB格式的矩陣分配。我在網上查找,找不到任何資源。應該分配多少內存?
以下是我打算使用從企業社會責任轉化爲HYB格式:
cusparseScsr2hyb(handle_array[i], m, n,
descr,
cooVal,
csrRowPtr,
cooColIndex,
hybA,
CUSPARSE_HYB_PARTITION_AUTO);
這裏是我的分配內存的代碼,但我不知道要添加到hybA分配內存。
cudaStat1 = cudaMalloc((void**)&cooRowIndex, nnz*sizeof(cooRowIndex[0])); // Row indices for A
cudaStat2 = cudaMalloc((void**)&cooColIndex, nnz*sizeof(cooColIndex[0])); // Column indices for A
cudaStat3 = cudaMalloc((void**)&cooVal, nnz*sizeof(cooVal[0])); // Data values for A
cudaStat4 = cudaMalloc((void**)&csrRowPtr, (n + 1)*sizeof(csrRowPtr[0]));
cusparse HYB格式爲[不透明類型](http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybmatt)。您不需要手動分配它。研究[this](https://www.mcs.anl.gov/petsc/petsc-dev/src/mat/impls/aij/seq/seqcusparse/aijcusparse.cu)。 –