# Initialization Through the C API

Initialization via the C API is performed using the VIDI_UNIT vidi_initialize(VIDI_INT gpu_mode, VIDI_STRING gpu_devices) argument.

GPU Mode gpu_mode | No GPU Support | Single Device per Tool | Multiple Devices per Tool
--- | --- | --- | ---
Int value | -1 | 0 | 1
C Define | VIDI_GPU_MODE_NO_SUPPORT | VIDI_GPU_MODE_SINGLE_DEVICE_PER_TOOL | VIDI_GPU_MODE_MULTIPLE_DEVICES_PER_TOOL

When processing with the following:

- vidi_runtime_process
- vidi_runtime_process_single_tool
- vidi_runtime_process_sample
- vidi_training_stream_process_sample
- vidi_training_tool_process_database
- vidi_training_process_sample

The GPU device selection is performed using the VIDI_STRING gpu_list argument.

GPU Device gpu_list | Default Value | Device List
--- | --- | ---
String value | " " | "0,1,2"
C Define | VIDI_AUTO_SELECT_GPU_DEVICE |
Description | Uses all of the available GPUs. | Only uses the specified GPUs (e.g. 0, 1 and 2).