設備
裝置選擇
可用裝置的完整清單可透過 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 物件的列表。裝置可以根據名稱、操作系統或屬性進行篩選。要獲取特定裝置,請根據名稱和操作系統進行篩選。
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=[10, 12) 將選擇作業系統主要版本為 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 並支持 TensorFlow Lite 的裝置。支持的屬性記錄在 Device 中。
import qai_hub as hub
client = hub.Client()
devices = client.get_devices(attributes=["chipset:qualcomm-snapdragon-8gen2", "framework:tflite"])
print(devices)
名稱、作業系統和屬性也可以一併使用。回傳的列表包含所有符合篩選條件的裝置。這個列表可能是空的。以下代碼選擇所有具有 Snapdragon® 8 Gen 2 SOC 並且作業系統版本為 12 及以上的設備。
import qai_hub as hub
client = hub.Client()
devices = client.get_devices(attributes=["chipset:qualcomm-snapdragon-8gen2", "os:android"], os="[12,)")
print(devices)
名稱、操作系統和屬性也可以用來選擇某個設備,如同使用 Device class。
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")
如果有多個設備符合提供的篩選條件,則選擇具有最新可用操作系統版本的任意設備。