# ComputeDeviceBinding

`import { ComputeDeviceBinding } from "destack:compute/binding";`

Compute device binding family.

```ds title="ComputeDeviceBinding"
export interface ComputeDeviceBinding {
    available(query?: DeviceQuery | undefined): ^Array<Device>;
    cpu(): Device;
    gpu(index: uint32): Device;
    accelerator(index: uint32): Device;
    default(query?: DeviceQuery | undefined): Device;
    kind(device: &'a readonly Device): DeviceKind;
    name(device: &'a readonly Device): &readonly string;
    properties(device: &'a readonly Device): Result<DeviceProperties, ComputeError>;
}
```

[language/library/src/compute/binding/device.ds:7:71](https://github.com/destack-sh/destack/blob/main/language/library/src/compute/binding/device.ds#L7-L71)

## Members

### `available(query?: DeviceQuery | undefined): ^Array<Device>`

Return all available devices matching `query`.

### `cpu(): Device`

Return the default CPU device.

### `gpu(index: uint32): Device`

Return a GPU device.

### `accelerator(index: uint32): Device`

Return an accelerator device.

### `default(query?: DeviceQuery | undefined): Device`

Return the default compute device matching `query`.

### `kind(device: &'a readonly Device): DeviceKind`

Return the device kind.

### `name(device: &'a readonly Device): &readonly string`

Return the human-readable device name.

### `properties(device: &'a readonly Device): Result<DeviceProperties, ComputeError>`

Return device properties.
