---
title: CUDAAccelerator
description: Accelerator for NVIDIA CUDA devices.
canonical: >-
  https://lightning.ai/docs/pytorch/stable/optional-api/api/lightning.pytorch.accelerators.CUDAAccelerator
---
# CUDAAccelerator {#cudaaccelerator}

### `class lightning.pytorch.accelerators.CUDAAccelerator` {#lightning.pytorch.accelerators.CUDAAccelerator}

Bases: [`Accelerator`](/docs/pytorch/2.6.6/optional-api/api/lightning.pytorch.accelerators.Accelerator.md#lightning.pytorch.accelerators.Accelerator "lightning.pytorch.accelerators.accelerator.Accelerator")

Accelerator for NVIDIA CUDA devices.

#### `static auto_device_count()` {#lightning.pytorch.accelerators.CUDAAccelerator.auto_device_count}

Get the devices when set to auto.

Return type:

[`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")

#### `get_device_stats(device)` {#lightning.pytorch.accelerators.CUDAAccelerator.get_device_stats}

Gets stats for the given GPU device.

Parameters:

**device** (`Union`\[[`device`](https://docs.pytorch.org/docs/stable/tensor_attributes.html#torch.device "(in PyTorch v2.15)"), [`str`](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)"), [`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")\]) – GPU device for which to get stats

Return type:

[`dict`](https://docs.python.org/3/builtins/stdtypes.html#dict "(in Python v3.15)")\[[`str`](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)"), [`Any`](https://docs.python.org/3/library/typing.html#typing.Any "(in Python v3.15)")\]

Returns:

A dictionary mapping the metrics to their values.

Raises:

[**FileNotFoundError**](https://docs.python.org/3/builtins/exceptions.html#FileNotFoundError "(in Python v3.15)") – If nvidia-smi installation not found

#### `static get_parallel_devices(devices)` {#lightning.pytorch.accelerators.CUDAAccelerator.get_parallel_devices}

Gets parallel devices for the Accelerator.

Return type:

[`list`](https://docs.python.org/3/builtins/stdtypes.html#list "(in Python v3.15)")\[[`device`](https://docs.pytorch.org/docs/stable/tensor_attributes.html#torch.device "(in PyTorch v2.15)")\]

#### `static is_available()` {#lightning.pytorch.accelerators.CUDAAccelerator.is_available}

Detect if the hardware is available.

Return type:

[`bool`](https://docs.python.org/3/builtins/functions.html#bool "(in Python v3.15)")

#### `static name()` {#lightning.pytorch.accelerators.CUDAAccelerator.name}

The name of the accelerator.

Return type:

[`str`](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")

#### `static parse_devices(devices)` {#lightning.pytorch.accelerators.CUDAAccelerator.parse_devices}

Accelerator device parsing logic.

Return type:

[`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`list`](https://docs.python.org/3/builtins/stdtypes.html#list "(in Python v3.15)")\[[`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")\]\]

#### `classmethod register_accelerators(accelerator_registry)` {#lightning.pytorch.accelerators.CUDAAccelerator.register_accelerators}

Register the accelerator with the registry.

Return type:

[`None`](https://docs.python.org/3/builtins/constants.html#None "(in Python v3.15)")

#### `setup(trainer)` {#lightning.pytorch.accelerators.CUDAAccelerator.setup}

Called by the Trainer to set up the accelerator before the model starts running on the device.

Parameters:

**trainer** ([`Trainer`](/docs/pytorch/2.6.6/optional-api/api/lightning.pytorch.trainer.trainer.Trainer.md#lightning.pytorch.trainer.trainer.Trainer "lightning.pytorch.trainer.trainer.Trainer")) – the trainer instance

Return type:

[`None`](https://docs.python.org/3/builtins/constants.html#None "(in Python v3.15)")

#### `setup_device(device)` {#lightning.pytorch.accelerators.CUDAAccelerator.setup_device}

Raises:

**MisconfigurationException** – If the selected device is not GPU.

Return type:

[`None`](https://docs.python.org/3/builtins/constants.html#None "(in Python v3.15)")

#### `teardown()` {#lightning.pytorch.accelerators.CUDAAccelerator.teardown}

Clean up any state created by the accelerator.

Return type:

[`None`](https://docs.python.org/3/builtins/constants.html#None "(in Python v3.15)")

---

**Navigation**

- Parent: [Api](/docs/pytorch/2.6.6/optional-api/api.md)
