# Strategy for Choosing a Device

When using a "process" method on a system where multiple devices were initialized, you can expect the following behavior, depending on the mode of operation.

## Single Device per Tool

- Device List Provided

  The system will use the first GPU available in the list. If no GPU in the list is available, the method will call be blocked until a GPU from the list becomes available.

- No Device List Provided

  The system will use the first GPU available from the devices that were initialized. If no GPU is available, the method call will be blocked until a GPU becomes available.

## Multiple Devices per Tool

- Device List Provided

  The system will use the first GPU available in the list. If no GPU in the list is available, the method will call be blocked until at least one GPU from the list becomes available.

- No Device List Provided

  The system will use all GPU available from the devices that were initialized. If no GPUs are available, the method call will be blocked until at least one GPU becomes available.