SelectCudaDevice
Introduction
The SelectCudaDevice
widget in Supervisely is a user interface element that enables users to select CUDA devices available on their agent. It automatically detects and lists the devices, displaying each with its corresponding RAM usage. Additionally, a refresh button allows users to update the list and view real-time device and memory usage. The widget also includes an event handler that activates when a user selects a device from the dropdown menu.
Function signature
Parameters
get_list_on_init
Optional[bool]
Whether to retrieve and display the list of CUDA devices upon initialization. Default is True
.
sort_by_free_ram
Optional[bool]
Whether to sort the CUDA devices by their available free RAM. Default is False
.
include_cpu_option
Optional[bool]
Whether to include CPU as an option in the device list. Default is False
.
widget_id
str
An optional ID for the widget.
get_list_on_init
Determine if you want to get the device list on widget initialization. If True
, the widget retrieves information about device on initialization. Default is True
.
type: Optional[bool]
default value: True
Initialize the empty widget, and then manually refresh it to find the devices:
sort_by_free_ram
If True
, the device list will automatically be sorted by its free RAM value. Default is False
.
type: Optional[bool]
default value: False
Initialize the widget sorting it by free RAM:
include_cpu_option
If True
, selector will include CPU as a device option. Default is False
.
type: Optional[bool]
default value: False
Initialize the widget with CPU as a device option:
widget_id
An optional ID for the widget.
type: str
default value: None
Initialize the widget with an ID:
Methods and attributes
get_device()
Get currently selected device.
set_device(value: str)
Set the device to be displayed in the widget (overrides current).
refresh()
Get up-to-date information about available devices and set them as options in the selector.
Mini app example
You can find this example in our GitHub repository:
selection/023_select_cuda_device/src/main.py
Import libraries
Init API client
First, we load environment variables with credentials and init API for communicating with Supervisely Instance:
Initialize the SelectCudaDevice
widget
SelectCudaDevice
widgetLet's initialize the SelectCudaDevice
widget with no devices:
Then, we can manually refresh the widget, retrieving the devices information when we need to.
Create an event handler for the SelectCudaDevice
widget
SelectCudaDevice
widgetNow, let's create a event handler for the SelectCudaDevice widget, when the value of the widget is changed.
Create app layout
Prepare a layout for the app using Card
widget with the content
parameter and place widget that we've just created in the Container
widget.
Create an app using the layout
Create an app object with the layout parameter.
Last updated