| /petsc/src/vec/vec/impls/seq/cupm/cuda/ |
| H A D | vecseqcupm.cu | 7 template class impl::VecSeq_CUPM<DeviceType::CUDA>; 9 static constexpr auto VecSeq_CUDA = impl::VecSeq_CUPM<DeviceType::CUDA>{}; 64 PetscCall(VecCreateSeqCUPMAsync<DeviceType::CUDA>(comm, n, v)); in VecCreateSeqCUDA() 107 PetscCall(VecCreateSeqCUPMWithArraysAsync<DeviceType::CUDA>(comm, bs, n, cpuarray, gpuarray, v)); in VecCreateSeqCUDAWithArrays() 189 PetscCall(VecCUPMGetArrayAsync<DeviceType::CUDA>(v, a)); in VecCUDAGetArray() 216 PetscCall(VecCUPMRestoreArrayAsync<DeviceType::CUDA>(v, a)); in VecCUDARestoreArray() 251 PetscCall(VecCUPMGetArrayReadAsync<DeviceType::CUDA>(v, a)); in VecCUDAGetArrayRead() 278 PetscCall(VecCUPMRestoreArrayReadAsync<DeviceType::CUDA>(v, a)); in VecCUDARestoreArrayRead() 312 PetscCall(VecCUPMGetArrayWriteAsync<DeviceType::CUDA>(v, a)); in VecCUDAGetArrayWrite() 339 PetscCall(VecCUPMRestoreArrayWriteAsync<DeviceType::CUDA>(v, a)); in VecCUDARestoreArrayWrite() [all …]
|
| /petsc/src/mat/impls/dense/mpi/cupm/cuda/ |
| H A D | matmpidensecuda.cu | 6 static constexpr impl::MatDense_MPI_CUPM<DeviceType::CUDA> mat_cupm{}; 74 PetscCall(MatCreateDenseCUPM<DeviceType::CUDA>(comm, m, n, M, N, data, A)); in MatCreateDenseCUDA() 103 PetscCall(MatDenseCUPMPlaceArray<DeviceType::CUDA>(mat, array)); in MatDenseCUDAPlaceArray() 126 PetscCall(MatDenseCUPMResetArray<DeviceType::CUDA>(mat)); in MatDenseCUDAResetArray() 154 PetscCall(MatDenseCUPMReplaceArray<DeviceType::CUDA>(mat, array)); in MatDenseCUDAReplaceArray() 185 PetscCall(MatDenseCUPMGetArrayWrite<DeviceType::CUDA>(A, a)); in MatDenseCUDAGetArrayWrite() 207 PetscCall(MatDenseCUPMRestoreArrayWrite<DeviceType::CUDA>(A, a)); in MatDenseCUDARestoreArrayWrite() 237 PetscCall(MatDenseCUPMGetArrayRead<DeviceType::CUDA>(A, a)); in MatDenseCUDAGetArrayRead() 263 PetscCall(MatDenseCUPMRestoreArrayRead<DeviceType::CUDA>(A, a)); in MatDenseCUDARestoreArrayRead() 293 PetscCall(MatDenseCUPMGetArray<DeviceType::CUDA>(A, a)); in MatDenseCUDAGetArray() [all …]
|
| /petsc/src/vec/vec/impls/mpi/cupm/cuda/ |
| H A D | vecmpicupm.cu | 7 template class impl::VecMPI_CUPM<DeviceType::CUDA>; 9 static constexpr auto VecMPI_CUDA = impl::VecMPI_CUPM<DeviceType::CUDA>{}; 98 PetscCall(VecCreateMPICUPMAsync<DeviceType::CUDA>(comm, n, N, v)); in VecCreateMPICUDA() 133 PetscCall(VecCreateMPICUPMWithArrays<DeviceType::CUDA>(comm, bs, n, N, cpuarray, gpuarray, v)); in VecCreateMPICUDAWithArrays() 167 PetscCall(VecCreateMPICUPMWithArray<DeviceType::CUDA>(comm, bs, n, N, gpuarray, v)); in VecCreateMPICUDAWithArray()
|
| /petsc/src/mat/impls/dense/seq/cupm/cuda/ |
| H A D | matseqdensecuda.cu | 6 static constexpr impl::MatDense_Seq_CUPM<DeviceType::CUDA> cupm_mat{}; 30 PetscCall(impl::MatSolverTypeRegister_DENSECUPM<DeviceType::CUDA>()); in MatSolverTypeRegister_DENSECUDA() 44 PetscCall(impl::MatMatMultNumeric_SeqDenseCUPM_SeqDenseCUPM<DeviceType::CUDA>(A, B, C, TA, TB)); in MatMatMultNumeric_SeqDenseCUDA_SeqDenseCUDA_Internal() 77 PetscCall(MatCreateSeqDenseCUPM<DeviceType::CUDA>(comm, m, n, data, A)); in MatCreateSeqDenseCUDA()
|
| /petsc/src/sys/objects/device/impls/cupm/ |
| H A D | cupminterface.cxx | 32 …efined(HAVE_CUDA, PETSC_CUPM_STATIC_VARIABLE_DEFN, PetscExpandToNothing)(cuoriginal, CUDA, ours); \ 37 …d(HAVE_CUDA, PETSC_CUPM_STATIC_VARIABLE_DEFN_CLASS, PetscExpandToNothing)(type_name, CUDA, ours); \ 41 …d(HAVE_CUDA, PETSC_CUPM_STATIC_VARIABLE_DEFN_EXACT, PetscExpandToNothing)(type_name, CUDA, ours); \ 101 template struct Interface<DeviceType::CUDA>;
|
| H A D | cupmblasinterface.cxx | 25 …A, PETSC_CUPMBLAS_STATIC_VARIABLE_DEFN, PetscExpandToNothing)(CUORIGINAL, CUDA, OURS) PetscIfPetsc… 49 template struct BlasInterface<DeviceType::CUDA>;
|
| H A D | cupmsolverinterface.cxx | 19 … PETSC_CUPMSOLVER_STATIC_VARIABLE_DEFN, PetscExpandToNothing)(CUORIGINAL, CUDA, OURS) PetscIfPetsc… 39 template struct SolverInterface<DeviceType::CUDA>;
|
| /petsc/src/ksp/ksp/utils/lmvm/blas_cyclic/cupm/ |
| H A D | blas_cyclic_cupm.cxx | 16 template struct BLASCyclic<DeviceType::CUDA>; 41 …PetscCall(::Petsc::device::cupm::impl::BLASCyclic<::Petsc::device::cupm::DeviceType::CUDA>::axpby(… in AXPBYCyclic_CUPM_Private() 66 …PetscCall(::Petsc::device::cupm::impl::BLASCyclic<::Petsc::device::cupm::DeviceType::CUDA>::dmv(dc… in DMVCyclic_CUPM_Private() 91 …PetscCall(::Petsc::device::cupm::impl::BLASCyclic<::Petsc::device::cupm::DeviceType::CUDA>::dsv(dc… in DSVCyclic_CUPM_Private() 116 …PetscCall(::Petsc::device::cupm::impl::BLASCyclic<::Petsc::device::cupm::DeviceType::CUDA>::trsv(d… in TRSVCyclic_CUPM_Private() 141 …PetscCall(::Petsc::device::cupm::impl::BLASCyclic<::Petsc::device::cupm::DeviceType::CUDA>::hemv(d… in HEMVCyclic_CUPM_Private() 166 …PetscCall(::Petsc::device::cupm::impl::BLASCyclic<::Petsc::device::cupm::DeviceType::CUDA>::gemv(d… in GEMVCyclic_CUPM_Private()
|
| /petsc/src/vec/is/sf/impls/basic/cupm/cuda/ |
| H A D | sfcupm.cu | 18 template struct SfInterface<device::cupm::DeviceType::CUDA>; 28 using PetscSFCuda = ::Petsc::sf::cupm::impl::SfInterface<::Petsc::device::cupm::DeviceType::CUDA>;
|
| /petsc/include/petsc/private/ |
| H A D | cupmsolverinterface.hpp | 53 …BRARY_VISIBILITY_INTERNAL SolverInterfaceImpl<DeviceType::CUDA> : BlasInterface<DeviceType::CUDA> { 87 using cupmBlasInt_t = typename BlasInterface<DeviceType::CUDA>::cupmBlasInt_t; 88 using cupmScalar_t = typename Interface<DeviceType::CUDA>::cupmScalar_t; 271 …constexpr const char *cupmSolverName() noexcept { return T == DeviceType::CUDA ? "cusolverDn" : "h… in cupmSolverName() 279 extern template struct PETSC_SINGLE_LIBRARY_VISIBILITY_INTERNAL SolverInterface<DeviceType::CUDA>;
|
| H A D | cupminterface.hpp | 22 CUDA, enumerator 109 static_assert(util::to_underlying(DeviceType::CUDA) == 0, ""); in cupmName() 114 …PETSC_NODISCARD static constexpr const char *cupmNAME() noexcept { return T == DeviceType::CUDA ? … in cupmNAME() 116 …pr PetscDeviceType PETSC_DEVICE_CUPM() noexcept { return T == DeviceType::CUDA ? PETSC_DEVICE_CUDA… in PETSC_DEVICE_CUPM() 118 …expr PetscMemType PETSC_MEMTYPE_CUPM() noexcept { return T == DeviceType::CUDA ? PETSC_MEMTYPE_CUD… in PETSC_MEMTYPE_CUPM() 140 struct InterfaceImpl<DeviceType::CUDA> : InterfaceBase<DeviceType::CUDA> { 141 PETSC_CUPM_BASE_CLASS_HEADER(DeviceType::CUDA); 595 if (PETSC_PKG_CUDA_VERSION_GE(11, 0, 0) && (T == DeviceType::CUDA)) PetscCallCUPM(cerr); in PetscCUPMGetMemType() 952 extern template struct PETSC_SINGLE_LIBRARY_VISIBILITY_INTERNAL Interface<DeviceType::CUDA>;
|
| H A D | cupmblasinterface.hpp | 234 …GLE_LIBRARY_VISIBILITY_INTERNAL BlasInterfaceImpl<DeviceType::CUDA> : Interface<DeviceType::CUDA> { 429 …c constexpr const char *cupmBlasName() noexcept { return T == DeviceType::CUDA ? "cuBLAS" : "hipBL… in cupmBlasName() 497 extern template struct PETSC_SINGLE_LIBRARY_VISIBILITY_INTERNAL BlasInterface<DeviceType::CUDA>;
|
| /petsc/doc/changes/ |
| H A D | 314.md | 12 - Add CUDA-11 support, but with CUDA-11, 15 - Add CUDA-11 option -mat_cusparse_spmv_alg {MV_ALG_DEFAULT, 18 - Add CUDA-11 option -mat_cusparse_spmm_alg {ALG_DEFAULT, CSR_ALG1 20 - Add CUDA-11 option -mat_cusparse_csr2csc_alg {ALG1 (default), 29 - Add PetscCUDAInitializeCheck() to do lazy CUDA initialization 32 usage is similar to their CUDA counterpart 56 CUDA backend, and then use -vec_type kokkos -mat_type aijkokkos. 83 - Add a Kokkos backend to SF. Previously, SF could only handle CUDA
|
| H A D | 312.md | 114 - PetscSF is now CUDA-aware. The rootdata, leafdata arguments passed 116 CUDA-aware MPI and option -use_gpu_aware_mpi to enable it. 117 - VecScatter is also CUDA-aware. You can do VecScatter on CUDA 119 CUDA-aware MPI and option -use_gpu_aware_mpi.
|
| /petsc/src/ksp/ksp/utils/lmvm/dense/cd_cupm/ |
| H A D | cd_cupm.cxx | 84 template struct UpperTriangular<DeviceType::CUDA>; 112 …PetscCall(UpperTriangular<DeviceType::CUDA>::SolveInPlace(dctx, hermitian_transpose, n, A, lda, x,… in MatUpperTriangularSolveInPlace_CUPM() 139 …PetscCall(UpperTriangular<DeviceType::CUDA>::SolveInPlaceCyclic(dctx, hermitian_transpose, m, olde… in MatUpperTriangularSolveInPlaceCyclic_CUPM()
|
| /petsc/src/ksp/ksp/tests/raja/output/ |
| H A D | ex1_2.out | 10 RAJA: CUDA Policy - Nested ForallN
|
| /petsc/doc/overview/ |
| H A D | gpu_roadmap.md | 5 PETSc algebraic solvers run on GPU systems from NVIDIA using CUDA, and AMD and Intel using 33 * - CUDA
|
| H A D | features.md | 12 - {ref}`Matrix/Vector CUDA support <doc_config_accel_cuda>`
|
| /petsc/src/mat/impls/dense/mpi/cupm/ |
| H A D | matmpidensecupm.hpp | 200 …return T == device::cupm::DeviceType::CUDA ? "MatConvert_mpidensecuda_mpidense_C" : "MatConvert_mp… in MatConvert_mpidensecupm_mpidense_C() 206 …return T == device::cupm::DeviceType::CUDA ? "MatProductSetFromOptions_mpiaij_mpidensecuda_C" : "M… in MatProductSetFromOptions_mpiaij_mpidensecupm_C() 212 …return T == device::cupm::DeviceType::CUDA ? "MatProductSetFromOptions_mpidensecuda_mpiaij_C" : "M… in MatProductSetFromOptions_mpidensecupm_mpiaij_C() 218 …return T == device::cupm::DeviceType::CUDA ? "MatProductSetFromOptions_mpiaijcusparse_mpidensecuda… in MatProductSetFromOptions_mpiaijcupmsparse_mpidensecupm_C() 224 …return T == device::cupm::DeviceType::CUDA ? "MatProductSetFromOptions_mpidensecuda_mpiaijcusparse… in MatProductSetFromOptions_mpidensecupm_mpiaijcupmsparse_C()
|
| /petsc/src/sys/objects/device/impls/cupm/cuda/ |
| H A D | cupmcontext.cu | 11 dctx->data = new PetscDeviceContext_(CUDA); in PetscDeviceContextCreate_CUDA()
|
| /petsc/src/sys/objects/device/tests/output/ |
| H A D | ex12_device_enable-eager_cuda_env_set_empty_device_enable_cuda-eager.out | 6 …lize cuda, as doing so results in cuda error 100 (cudaErrorNoDevice) : no CUDA-capable device is d…
|
| H A D | ex12_device_enable-none_cuda_env_set_empty_device_enable_cuda-eager.out | 6 …lize cuda, as doing so results in cuda error 100 (cudaErrorNoDevice) : no CUDA-capable device is d…
|
| H A D | ex12_device_enable-lazy_cuda_env_set_empty_device_enable_cuda-eager.out | 6 …lize cuda, as doing so results in cuda error 100 (cudaErrorNoDevice) : no CUDA-capable device is d…
|
| H A D | ex12_device_enable-lazy_cuda_env_set_empty_device_enable_cuda-lazy.out | 11 [0]PETSC ERROR: Cannot lazily initialize PetscDevice: cuda error 100 (cudaErrorNoDevice) : no CUDA-…
|
| /petsc/src/sys/objects/device/interface/ |
| H A D | device.cxx | 31 cupm::Device<cupm::DeviceType::CUDA> CUDADevice{PetscDeviceContextCreate_CUDA}; 121 PETSC_DEVICE_CASE_IF_PETSC_DEFINED(CUDA, getDevice, *device, devid); in PetscDeviceCreate() 515 …PETSC_DEVICE_CASE_IF_PETSC_DEFINED(CUDA, initialize, comm, &defaultDeviceId, &defaultView, default… in PetscDeviceInitializeTypeFromOptions_Private()
|