:orphan:
# VecCreateMPICUDA
Creates a standard, parallel, array-style vector for CUDA devices. 
## Synopsis
```
#include <petscvec.h> 
PetscErrorCode VecCreateMPICUDA(MPI_Comm comm, PetscInt n, PetscInt N, Vec *v)
```
Collective, Possibly Synchronous


## Input Parameters

- ***comm -*** the MPI communicator to use
- ***n    -*** local vector length (or `PETSC_DECIDE` to have calculated if `N` is given)
- ***N    -*** global vector length (or `PETSC_DETERMINE` to have calculated if `n` is given)



## Output Parameter

- ***v -*** the vector



## Notes
Use `VecDuplicate()` or `VecDuplicateVecs()` to form additional vectors of the same type as an
existing vector.

This function may initialize `PetscDevice`, which may incur a device synchronization.




## See Also
 `VecCreateMPICUDAWithArray()`, `VecCreateMPICUDAWithArrays()`, `VecCreateSeqCUDA(),
`VecCreateSeq()`, `VecCreateMPI()`, `VecCreate()`, `VecDuplicate()`, `VecDuplicateVecs()`,
`VecCreateGhost()`, `VecCreateMPIWithArray()`, `VecCreateGhostWithArray()`, `VecMPISetGhost()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/vec/impls/mpi/cupm/cuda/vecmpicupm.cu.html#VecCreateMPICUDA">src/vec/vec/impls/mpi/cupm/cuda/vecmpicupm.cu</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/impls/mpi/cupm/cuda/vecmpicupm.cu)


[Index of all Vec routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
