Skip to main content
`Ctrl`+`K`

# PetscDeviceCreate

Get a new handle for a particular device (often a GPU) type

## Synopsis

    #include <petscdevice.h>
    PetscErrorCode PetscDeviceCreate(PetscDeviceType type, PetscInt devid, PetscDevice *device)

Not Collective

## Input Parameters

- type - The type of `PetscDevice`

- devid - The numeric ID# of the device (pass `PETSC_DECIDE` to assign automatically)

## Output Parameter

- device - The `PetscDevice`

## Notes

This routine may initialize `PetscDevice`. If this is the case, it may cause some sort of device synchronization.

`devid` is what you might pass to `cudaSetDevice()` for example.

## See Also

`PetscDevice`, `PetscDeviceInitType`, `PetscDeviceInitialize()`, `PetscDeviceInitialized()`, `PetscDeviceConfigure()`, `PetscDeviceView()`, `PetscDeviceDestroy()`

## Level

beginner

## Location

src/sys/objects/device/interface/device.cxx

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages