ملحقات جهاز GPU

تضيف بنية الجهاز القابل للتوصيل في TensorFlow دعمًا جديدًا للأجهزة كحزم إضافية منفصلة يتم تثبيتها جنبًا إلى جنب مع حزمة TensorFlow الرسمية.

لا تتطلب الآلية أي تغييرات خاصة بالجهاز في كود TensorFlow. يعتمد على واجهات برمجة تطبيقات C للتواصل مع TensorFlow الثنائي بطريقة مستقرة. يحتفظ مطورو المكونات الإضافية بمستودعات تعليمات برمجية منفصلة وحزم توزيع للمكونات الإضافية الخاصة بهم ويكونون مسؤولين عن اختبار أجهزتهم.

استخدم المكونات الإضافية للجهاز

لاستخدام جهاز معين، مثل جهاز أصلي في TensorFlow، يتعين على المستخدمين فقط تثبيت حزمة المكونات الإضافية للجهاز لهذا الجهاز. يوضح مقتطف الكود التالي كيفية تثبيت واستخدام المكون الإضافي لجهاز العرض التوضيحي الجديد، Awesome Processing Unit (APU) . من أجل التبسيط، يحتوي نموذج مكون APU الإضافي هذا على نواة مخصصة واحدة فقط لـ 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

بعد تثبيت المكون الإضافي، اختبر أن الجهاز مرئي وقم بتشغيل العملية على جهاز 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.

الأجهزة المتاحة

جهاز معدني PluggableDevice لوحدات معالجة الرسومات لنظام التشغيل macOS:

DirectML PluggableDevice لنظامي التشغيل Windows وWSL (معاينة):

ملحق Intel® لجهاز TensorFlow PluggableDevice لنظامي التشغيل Linux وWSL: