Architektura urządzeń wtykowych TensorFlow dodaje obsługę nowych urządzeń w postaci oddzielnych pakietów wtyczek, które są instalowane wraz z oficjalnym pakietem TensorFlow.
Mechanizm nie wymaga żadnych zmian specyficznych dla urządzenia w kodzie TensorFlow. Opiera się na interfejsach API języka C do stabilnej komunikacji z plikiem binarnym TensorFlow. Twórcy wtyczek utrzymują oddzielne repozytoria kodu i pakiety dystrybucyjne dla swoich wtyczek oraz są odpowiedzialni za testowanie swoich urządzeń.
Użyj wtyczek do urządzeń
Aby korzystać z określonego urządzenia, tak jak z urządzenia natywnego w TensorFlow, użytkownicy muszą jedynie zainstalować pakiet wtyczek urządzenia dla tego urządzenia. Poniższy fragment kodu pokazuje, jak instaluje się i używa wtyczki nowego urządzenia demonstracyjnego Awesome Processing Unit (APU) . Dla uproszczenia ta przykładowa wtyczka APU ma tylko jedno niestandardowe jądro dla ReLU:
# Install the APU example plug-in package
$ pip install tensorflow-apu-0.0.1-cp36-cp36m-linux_x86_64.whl
...
Successfully installed tensorflow-apu-0.0.1
Po zainstalowaniu wtyczki sprawdź, czy urządzenie jest widoczne i wykonaj operację na nowym urządzeniu APU:
import tensorflow as tf # TensorFlow registers PluggableDevices here.
tf.config.list_physical_devices() # APU device is visible to TensorFlow.
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:APU:0', device_type='APU')]
a = tf.random.normal(shape=[5], dtype=tf.float32) # Runs on CPU.
b = tf.nn.relu(a) # Runs on APU.
with tf.device("/APU:0"): # Users can also use 'with tf.device' syntax.
c = tf.nn.relu(a) # Runs on APU.
with tf.device("/CPU:0"):
c = tf.nn.relu(a) # Runs on CPU.
@tf.function # Defining a tf.function
def run():
d = tf.random.uniform(shape=[100], dtype=tf.float32) # Runs on CPU.
e = tf.nn.relu(d) # Runs on APU.
run() # PluggableDevices also work with tf.function and graph mode.
Dostępne urządzenia
Metalowe PluggableDevice
dla procesorów graficznych macOS:
- Działa z TF 2.5 lub nowszym.
- Przewodnik dla początkujących .
- W przypadku pytań i opinii odwiedź Forum programistów Apple .
PluggableDevice
DirectML dla systemu Windows i WSL (wersja zapoznawcza):
- Współpracuje z pakietem
tensorflow-cpu
w wersji 2.10 lub nowszej. - Koło PyPI .
- Repozytorium GitHuba .
- W przypadku pytań, opinii lub zgłaszania problemów odwiedź stronę Problemy
tensorflow-directml-plugin
w serwisie GitHub .
Rozszerzenie Intel® dla PluggableDevice
TensorFlow dla systemu Linux i WSL:
- Działa z TF 2.10 lub nowszym.
- Przewodnik dla początkujących
- Koło PyPI .
- Repozytorium GitHuba .
- W przypadku pytań, opinii lub zgłaszania problemów odwiedź stronę Problemy w witrynie
intel-extension-for-tensorflow
w serwisie GitHub .