장치

장치 선택

사용 가능한 전체 디바이스 목록은 get_devices() 를 통해 조회할 수 있습니다.

import qai_hub as hub

client = hub.Client()
devices = client.get_devices()
print(devices)

또는 명령줄 인터페이스 를 사용합니다.

qai-hub list-devices

디바이스 유형

디바이스에는 세 가지 유형이 있습니다:

  • 일반 디바이스 (General devices): 대부분의 디바이스는 목록에 표시된 그대로의 실제 디바이스입니다. 디바이스 이름에 (Family) 또는 (Proxy) 가 없는 경우, 해당 디바이스를 대상으로 하는 모든 워크로드는 정확히 그 호스팅된 디바이스에서 실행됩니다.

  • 패밀리 디바이스 (Family devices): 디바이스 이름이 (Family) 로 끝나는 경우 디바이스 패밀리를 의미합니다. 이는 특정 디바이스 모델이 아닌 디바이스 패밀리를 대상으로 지정할 수 있게 하여 대기 시간을 개선할 수 있습니다. 예를 들어, Samsung Galaxy S25 (Family)를 대상으로 지정하면 Workbench는 Samsung Galaxy S25, Samsung Galaxy S25 Ultra, Samsung Galaxy S25+ 등 Samsung Galaxy S25의 어떤 변형 디바이스에서도 워크로드를 실행할 수 있으며, 특정 단일 디바이스를 기다릴 필요가 없습니다. 가능한 경우 패밀리 디바이스를 대상으로 지정하는 것을 강력히 권장합니다.

  • 프록시 디바이스 (Proxy devices): 디바이스 이름이 (Proxy) 로 끝나는 경우, 호스팅되지 않은 디바이스를 대상으로 삼기 위해 대체 디바이스를 사용하고 있음을 의미합니다. 이러한 프록시 디바이스를 통해 사용자는 AI Hub Models에서 디바이스/모델 호환성으로 필터링할 수 있고, AI Hub Workbench에서 해당 디바이스에서 실행될 자산을 생성할 수 있습니다. 우리는 실제 디바이스와 최대한 유사한 프록시 디바이스를 식별하지만, 실제 디바이스를 호스팅하지 않기 때문에 실제 디바이스에서의 메트릭, 성능, 정확도는 AI Hub Models 페이지에 게시된 결과와 다를 수 있습니다. 프록시 메트릭은 항상 NPU에서 실행됩니다. 실제 보유한 디바이스에서 실행할 때에도 유사한 결과를 얻으려면 반드시 NPU를 활용해야 하며, CPU에서 실행할 경우 완전히 다른 메트릭이 나올 수 있습니다.

장치 필터링

이것은 Device 객체의 목록을 반환합니다. 디바이스는 이름, OS 또는 속성에 따라 필터링할 수 있습니다. 특정 디바이스를 얻으려면 이름과 OS로 필터링하십시오.

import qai_hub as hub

client = hub.Client()
devices = client.get_devices(name="Samsung Galaxy S24 (Family)")
print(devices)

devices_os13 = client.get_devices(os="13", attributes="os:android")
print(devices_os13)

OS 버전은 단일 값 또는 반열린 구간으로 표현될 수 있습니다. 예를 들어, os=[10, 12) 는 OS 주요 버전 10과 11을 선택하지만 12는 선택하지 않습니다.

import qai_hub as hub

client = hub.Client()
devices_os10_to_os11 = client.get_devices(os="[10, 12)", attributes="os:android")
print(devices_os10_to_os11)

devices_os12_and_more = client.get_devices(os="[12,)", attributes="os:android")
print(devices_os12_and_more)

디바이스는 속성에 따라 추가로 필터링할 수 있습니다. 다음 예제는 Snapdragon® 8 Gen 2 SOC를 지원하는 모든 디바이스를 선택합니다. 지원되는 속성은 Device 에 문서화되어 있습니다.

import qai_hub as hub

client = hub.Client()
devices = client.get_devices(attributes=["chipset:qualcomm-snapdragon-8gen2", "framework:tflite"])
print(devices)

이름, OS 및 속성을 함께 사용할 수도 있습니다. 반환된 디바이스 목록에는 제공된 모든 필터와 일치하는 디바이스가 포함됩니다. 이 목록은 비어 있을 수 있습니다. 다음 코드는 Snapdragon® 8 Gen 2 SOC와 Android OS 버전 12 이상을 가진 모든 디바이스를 선택합니다.

import qai_hub as hub

client = hub.Client()
devices = client.get_devices(attributes=["chipset:qualcomm-snapdragon-8gen2", "os:android"], os="[12,)")
print(devices)

이름, OS 및 속성을 사용하여 Device 클래스를 사용하여 단일 디바이스를 선택할 수도 있습니다.

import qai_hub as hub

device_sn8gen2 = hub.Device(attributes="chipset:qualcomm-snapdragon-8gen2")
device_os12 = hub.Device(os="12", attributes="os:android")
device_galaxy_s23 = hub.Device(name="Samsung Galaxy S23 Ultra")

제공된 필터와 일치하는 디바이스가 둘 이상인 경우, 최신 OS 버전을 가진 임의의 디바이스가 선택됩니다.