Lines Matching refs:cudastruct

22 static PetscErrorCode MatSeqSELLCUDA_Destroy(Mat_SeqSELLCUDA **cudastruct)  in MatSeqSELLCUDA_Destroy()  argument
25 if (*cudastruct) { in MatSeqSELLCUDA_Destroy()
26 if ((*cudastruct)->colidx) PetscCallCUDA(cudaFree((*cudastruct)->colidx)); in MatSeqSELLCUDA_Destroy()
27 if ((*cudastruct)->val) PetscCallCUDA(cudaFree((*cudastruct)->val)); in MatSeqSELLCUDA_Destroy()
28 if ((*cudastruct)->sliidx) PetscCallCUDA(cudaFree((*cudastruct)->sliidx)); in MatSeqSELLCUDA_Destroy()
29 if ((*cudastruct)->chunk_slice_map) PetscCallCUDA(cudaFree((*cudastruct)->chunk_slice_map)); in MatSeqSELLCUDA_Destroy()
30 PetscCall(PetscFree(*cudastruct)); in MatSeqSELLCUDA_Destroy()
37 Mat_SeqSELLCUDA *cudastruct = (Mat_SeqSELLCUDA *)A->spptr; in MatSeqSELLCUDACopyToGPU() local
43 if (A->assembled && A->nonzerostate == cudastruct->nonzerostate) { in MatSeqSELLCUDACopyToGPU()
45 …PetscCallCUDA(cudaMemcpy(cudastruct->val, a->val, a->sliidx[a->totalslices] * sizeof(MatScalar), c… in MatSeqSELLCUDACopyToGPU()
48 if (cudastruct->colidx) PetscCallCUDA(cudaFree(cudastruct->colidx)); in MatSeqSELLCUDACopyToGPU()
49 if (cudastruct->val) PetscCallCUDA(cudaFree(cudastruct->val)); in MatSeqSELLCUDACopyToGPU()
50 if (cudastruct->sliidx) PetscCallCUDA(cudaFree(cudastruct->sliidx)); in MatSeqSELLCUDACopyToGPU()
51 if (cudastruct->chunk_slice_map) PetscCallCUDA(cudaFree(cudastruct->chunk_slice_map)); in MatSeqSELLCUDACopyToGPU()
52 cudastruct->maxallocmat = a->maxallocmat; in MatSeqSELLCUDACopyToGPU()
53 cudastruct->totalentries = a->sliidx[a->totalslices]; in MatSeqSELLCUDACopyToGPU()
54 cudastruct->totalslices = a->totalslices; in MatSeqSELLCUDACopyToGPU()
55 cudastruct->totalchunks = a->totalchunks; in MatSeqSELLCUDACopyToGPU()
56 …PetscCallCUDA(cudaMalloc((void **)&cudastruct->colidx, a->maxallocmat * sizeof(*cudastruct->colidx… in MatSeqSELLCUDACopyToGPU()
57 … PetscCallCUDA(cudaMalloc((void **)&cudastruct->val, a->maxallocmat * sizeof(*cudastruct->val))); in MatSeqSELLCUDACopyToGPU()
59 …PetscCallCUDA(cudaMemcpy(cudastruct->colidx, a->colidx, a->sliidx[a->totalslices] * sizeof(*a->col… in MatSeqSELLCUDACopyToGPU()
60 …PetscCallCUDA(cudaMemcpy(cudastruct->val, a->val, a->sliidx[a->totalslices] * sizeof(*a->val), cud… in MatSeqSELLCUDACopyToGPU()
62 …PetscCallCUDA(cudaMalloc((void **)&cudastruct->sliidx, (a->totalslices + 1) * sizeof(*cudastruct->… in MatSeqSELLCUDACopyToGPU()
63 …PetscCallCUDA(cudaMemcpy(cudastruct->sliidx, a->sliidx, (a->totalslices + 1) * sizeof(*a->sliidx),… in MatSeqSELLCUDACopyToGPU()
64 …PetscCallCUDA(cudaMalloc((void **)&cudastruct->chunk_slice_map, a->totalchunks * sizeof(*cudastruc… in MatSeqSELLCUDACopyToGPU()
65 …PetscCallCUDA(cudaMemcpy(cudastruct->chunk_slice_map, a->chunk_slice_map, a->totalchunks * sizeof(… in MatSeqSELLCUDACopyToGPU()
569 Mat_SeqSELLCUDA *cudastruct = (Mat_SeqSELLCUDA *)A->spptr; in MatMult_SeqSELLCUDA() local
585 …PetscCheck(!(cudastruct->kernelchoice >= 2 && cudastruct->kernelchoice <= 6 && sliceheight != SLIC… in MatMult_SeqSELLCUDA()
588 aval = cudastruct->val; in MatMult_SeqSELLCUDA()
589 acolidx = cudastruct->colidx; in MatMult_SeqSELLCUDA()
590 sliidx = cudastruct->sliidx; in MatMult_SeqSELLCUDA()
596 switch (cudastruct->kernelchoice) { in MatMult_SeqSELLCUDA()
600 if (cudastruct->blocky == 2) { in MatMult_SeqSELLCUDA()
602 } else if (cudastruct->blocky == 4) { in MatMult_SeqSELLCUDA()
604 } else if (cudastruct->blocky == 8) { in MatMult_SeqSELLCUDA()
606 } else if (cudastruct->blocky == 16) { in MatMult_SeqSELLCUDA()
608 } else if (cudastruct->blocky == 32) { in MatMult_SeqSELLCUDA()
616 if (cudastruct->blocky == 2) { in MatMult_SeqSELLCUDA()
618 } else if (cudastruct->blocky == 4) { in MatMult_SeqSELLCUDA()
620 } else if (cudastruct->blocky == 8) { in MatMult_SeqSELLCUDA()
622 } else if (cudastruct->blocky == 16) { in MatMult_SeqSELLCUDA()
624 } else if (cudastruct->blocky == 32) { in MatMult_SeqSELLCUDA()
661 nchunks = cudastruct->totalchunks; in MatMult_SeqSELLCUDA()
662 …chunksperblock = cudastruct->chunksperblock ? cudastruct->chunksperblock : 1 + (cudastruct->total… in MatMult_SeqSELLCUDA()
664 chunk_slice_map = cudastruct->chunk_slice_map; in MatMult_SeqSELLCUDA()
699 … "unsupported kernel choice %" PetscInt_FMT " for MatMult_SeqSELLCUDA.", cudastruct->kernelchoice); in MatMult_SeqSELLCUDA()
711 Mat_SeqSELLCUDA *cudastruct = (Mat_SeqSELLCUDA *)A->spptr; in MatMultAdd_SeqSELLCUDA() local
715 MatScalar *aval = cudastruct->val; in MatMultAdd_SeqSELLCUDA()
716 PetscInt *acolidx = cudastruct->colidx; in MatMultAdd_SeqSELLCUDA()
717 PetscInt *sliidx = cudastruct->sliidx; in MatMultAdd_SeqSELLCUDA()
721 PetscInt blocky = cudastruct->blocky; in MatMultAdd_SeqSELLCUDA()
726 …PetscCheck(!(cudastruct->kernelchoice >= 2 && cudastruct->kernelchoice <= 6 && sliceheight != SLIC… in MatMultAdd_SeqSELLCUDA()
736 switch (cudastruct->kernelchoice) { in MatMultAdd_SeqSELLCUDA()
756 nchunks = cudastruct->totalchunks; in MatMultAdd_SeqSELLCUDA()
758 …chunksperblock = cudastruct->chunksperblock ? cudastruct->chunksperblock : 1 + (cudastruct->total… in MatMultAdd_SeqSELLCUDA()
760 chunk_slice_map = cudastruct->chunk_slice_map; in MatMultAdd_SeqSELLCUDA()
821 nchunks = cudastruct->totalchunks; in MatMultAdd_SeqSELLCUDA()
823 …chunksperblock = cudastruct->chunksperblock ? cudastruct->chunksperblock : 1 + (cudastruct->total… in MatMultAdd_SeqSELLCUDA()
825 chunk_slice_map = cudastruct->chunk_slice_map; in MatMultAdd_SeqSELLCUDA()
860 … "unsupported kernel choice %" PetscInt_FMT " for MatMult_SeqSELLCUDA.", cudastruct->kernelchoice); in MatMultAdd_SeqSELLCUDA()
875 Mat_SeqSELLCUDA *cudastruct = (Mat_SeqSELLCUDA *)A->spptr; in MatSetFromOptions_SeqSELLCUDA() local
884 cudastruct->blocky = blocky; in MatSetFromOptions_SeqSELLCUDA()
889 cudastruct->kernelchoice = kernel; in MatSetFromOptions_SeqSELLCUDA()
890 …(PetscOptionsGetInt(NULL, NULL, "-mat_sell_spmv_cuda_chunksperblock", &cudastruct->chunksperblock,… in MatSetFromOptions_SeqSELLCUDA()
926 Mat_SeqSELLCUDA *cudastruct = (Mat_SeqSELLCUDA *)A->spptr; in MatZeroEntries_SeqSELLCUDA() local
927 if (cudastruct->val) { in MatZeroEntries_SeqSELLCUDA()
929 …PetscCallCUDA(cudaMemset(cudastruct->val, 0, a->sliidx[a->totalslices] * sizeof(*cudastruct->val))… in MatZeroEntries_SeqSELLCUDA()
957 Mat_SeqSELLCUDA *cudastruct; in MatConvert_SeqSELL_SeqSELLCUDA() local
965 PetscCall(PetscNew(&cudastruct)); in MatConvert_SeqSELL_SeqSELLCUDA()
966 B->spptr = cudastruct; in MatConvert_SeqSELL_SeqSELLCUDA()