Lines Matching refs:a
28 Mat_SeqAIJ *a = (Mat_SeqAIJ *)A->data; in MatViennaCLCopyToGPU() local
31 …if (A->rmap->n > 0 && A->cmap->n > 0 && a->nz) { //some OpenCL SDKs have issues with buffers of si… in MatViennaCLCopyToGPU()
36 if (a->compressedrow.use) { in MatViennaCLCopyToGPU()
43 row_buffer.raw_resize(dummy, a->compressedrow.nrows + 1); in MatViennaCLCopyToGPU()
44 … for (PetscInt i = 0; i <= a->compressedrow.nrows; ++i) row_buffer.set(i, (a->compressedrow.i)[i]); in MatViennaCLCopyToGPU()
47 row_indices.raw_resize(dummy, a->compressedrow.nrows); in MatViennaCLCopyToGPU()
48 …for (PetscInt i = 0; i < a->compressedrow.nrows; ++i) row_indices.set(i, (a->compressedrow.rindex)… in MatViennaCLCopyToGPU()
51 col_buffer.raw_resize(dummy, a->nz); in MatViennaCLCopyToGPU()
52 for (PetscInt i = 0; i < a->nz; ++i) col_buffer.set(i, (a->j)[i]); in MatViennaCLCopyToGPU()
54 …ffer.get(), row_indices.get(), col_buffer.get(), a->a, A->rmap->n, A->cmap->n, a->compressedrow.nr… in MatViennaCLCopyToGPU()
55 …PetscCall(PetscLogCpuToGpu(((2 * a->compressedrow.nrows) + 1 + a->nz) * sizeof(PetscInt) + (a->nz)… in MatViennaCLCopyToGPU()
64 for (PetscInt i = 0; i <= A->rmap->n; ++i) row_buffer.set(i, (a->i)[i]); in MatViennaCLCopyToGPU()
67 col_buffer.raw_resize(dummy, a->nz); in MatViennaCLCopyToGPU()
68 for (PetscInt i = 0; i < a->nz; ++i) col_buffer.set(i, (a->j)[i]); in MatViennaCLCopyToGPU()
70 … viennaclstruct->mat->set(row_buffer.get(), col_buffer.get(), a->a, A->rmap->n, A->cmap->n, a->nz); in MatViennaCLCopyToGPU()
71 …PetscCall(PetscLogCpuToGpu(((A->rmap->n + 1) + a->nz) * sizeof(PetscInt) + (a->nz) * sizeof(PetscS… in MatViennaCLCopyToGPU()
101 Mat_SeqAIJ *a = (Mat_SeqAIJ *)A->data; in MatViennaCLCopyFromGPU() local
108 …PetscCheck(!a->compressedrow.use, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONG, "ViennaCL: Cannot handle r… in MatViennaCLCopyFromGPU()
110 a->nz = Agpu->nnz(); in MatViennaCLCopyFromGPU()
111 a->maxnz = a->nz; /* Since we allocate exactly the right amount */ in MatViennaCLCopyFromGPU()
113 if (a->free_a) PetscCall(PetscShmgetDeallocateArray((void **)a->a)); in MatViennaCLCopyFromGPU()
114 if (a->free_ij) PetscCall(PetscShmgetDeallocateArray((void **)a->j)); in MatViennaCLCopyFromGPU()
115 if (a->free_ij) PetscCall(PetscShmgetDeallocateArray((void **)a->i)); in MatViennaCLCopyFromGPU()
116 PetscCall(PetscShmgetAllocateArray(a->nz, sizeof(PetscScalar), (void **)&a->a)); in MatViennaCLCopyFromGPU()
117 PetscCall(PetscShmgetAllocateArray(a->nz, sizeof(PetscInt), (void **)&a->j)); in MatViennaCLCopyFromGPU()
118 PetscCall(PetscShmgetAllocateArray(m + 1, sizeof(PetscInt), (void **)&a->i)); in MatViennaCLCopyFromGPU()
119 a->free_a = PETSC_TRUE; in MatViennaCLCopyFromGPU()
120 a->free_ij = PETSC_TRUE; in MatViennaCLCopyFromGPU()
123 PetscCall(PetscFree(a->imax)); in MatViennaCLCopyFromGPU()
124 PetscCall(PetscFree(a->ilen)); in MatViennaCLCopyFromGPU()
125 PetscCall(PetscMalloc1(m, &a->imax)); in MatViennaCLCopyFromGPU()
126 PetscCall(PetscMalloc1(m, &a->ilen)); in MatViennaCLCopyFromGPU()
134 (a->i)[0] = row_buffer[0]; in MatViennaCLCopyFromGPU()
136 (a->i)[i + 1] = row_buffer[i + 1]; in MatViennaCLCopyFromGPU()
137 …a->imax[i] = a->ilen[i] = a->i[i + 1] - a->i[i]; //Set imax[] and ilen[] arrays at the same time a… in MatViennaCLCopyFromGPU()
144 for (PetscInt i = 0; i < (PetscInt)Agpu->nnz(); ++i) (a->j)[i] = col_buffer[i]; in MatViennaCLCopyFromGPU()
147 viennacl::backend::memory_read(Agpu->handle(), 0, sizeof(PetscScalar) * Agpu->nnz(), a->a); in MatViennaCLCopyFromGPU()
159 …PetscCheck(!a->compressedrow.use, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONG, "ViennaCL: Cannot handle r… in MatViennaCLCopyFromGPU()
161 …ory_read(viennaclstruct->mat->handle(), 0, sizeof(PetscScalar) * viennaclstruct->mat->nnz(), a->a); in MatViennaCLCopyFromGPU()
163 viennacl::backend::memory_read(Agpu->handle(), 0, sizeof(PetscScalar) * Agpu->nnz(), a->a); in MatViennaCLCopyFromGPU()
175 Mat_SeqAIJ *a = (Mat_SeqAIJ *)A->data; in MatMult_SeqAIJViennaCL() local
183 if (A->rmap->n > 0 && A->cmap->n > 0 && a->nz) { in MatMult_SeqAIJViennaCL()
188 if (a->compressedrow.use) { in MatMult_SeqAIJViennaCL()
200 PetscCall(PetscLogGpuFlops(2.0 * a->nz - a->nonzerorowcnt)); in MatMult_SeqAIJViennaCL()
209 Mat_SeqAIJ *a = (Mat_SeqAIJ *)A->data; in MatMultAdd_SeqAIJViennaCL() local
217 if (A->rmap->n > 0 && A->cmap->n > 0 && a->nz) { in MatMultAdd_SeqAIJViennaCL()
223 …if (a->compressedrow.use) *viennaclstruct->tempvec = viennacl::linalg::prod(*viennaclstruct->compr… in MatMultAdd_SeqAIJViennaCL()
236 PetscCall(PetscLogGpuFlops(2.0 * a->nz)); in MatMultAdd_SeqAIJViennaCL()
362 *array = ((Mat_SeqAIJ *)A->data)->a; in MatSeqAIJGetArray_SeqAIJViennaCL()
378 *array = ((Mat_SeqAIJ *)A->data)->a; in MatSeqAIJGetArrayRead_SeqAIJViennaCL()
393 *array = ((Mat_SeqAIJ *)A->data)->a; in MatSeqAIJGetArrayWrite_SeqAIJViennaCL()
407 Mat_SeqAIJ *a = (Mat_SeqAIJ *)A->data; in MatBindToCPU_SeqAIJViennaCL() local
411 if (flg && a->inode.size_csr) { in MatBindToCPU_SeqAIJViennaCL()
412 a->inode.use = PETSC_TRUE; in MatBindToCPU_SeqAIJViennaCL()
414 a->inode.use = PETSC_FALSE; in MatBindToCPU_SeqAIJViennaCL()
423 PetscCall(PetscMemzero(a->ops, sizeof(Mat_SeqAIJOps))); in MatBindToCPU_SeqAIJViennaCL()
431 a->ops->getarray = MatSeqAIJGetArray_SeqAIJViennaCL; in MatBindToCPU_SeqAIJViennaCL()
432 a->ops->restorearray = MatSeqAIJRestoreArray_SeqAIJViennaCL; in MatBindToCPU_SeqAIJViennaCL()
433 a->ops->getarrayread = MatSeqAIJGetArrayRead_SeqAIJViennaCL; in MatBindToCPU_SeqAIJViennaCL()
434 a->ops->restorearrayread = MatSeqAIJRestoreArrayRead_SeqAIJViennaCL; in MatBindToCPU_SeqAIJViennaCL()
435 a->ops->getarraywrite = MatSeqAIJGetArrayWrite_SeqAIJViennaCL; in MatBindToCPU_SeqAIJViennaCL()
436 a->ops->restorearraywrite = MatSeqAIJRestoreArrayWrite_SeqAIJViennaCL; in MatBindToCPU_SeqAIJViennaCL()