ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

تطوير الواجهة الخلفية الجديدة لXLA

هذا الدليل الأولي هو الأوائل التي ترغب في إعادة التوجيه بسهولة TensorFlow إلى الأجهزة الخاصة بهم بطريقة فعالة. دليل ليست خطوة بخطوة ويفترض معرفة LLVM ، بازل ، وTensorFlow.

يوفر XLA واجهة المجردة التي معمارية جديدة أو مسرع يمكن تنفيذها لإنشاء الواجهة الخلفية لتشغيل الرسوم البيانية TensorFlow. يجب أن تكون إعادة توجيه XLA أسهل بكثير وقابلة للتنفيذ من كل TensorFlow أب القائمة عن أجهزة جديدة.

ستسقط معظم تطبيقات في واحدة من الحالات التالية:

  1. القائمة العمارة وحدة المعالجة المركزية لم تدعم رسميا من قبل XLA، مع أو بدون القائمة LLVM الخلفية.
  2. غير CPU-مثل الأجهزة مع الخلفية LLVM القائمة.
  3. غير CPU-مثل الأجهزة دون الخلفية LLVM القائمة.

السيناريو 1: القائمة العمارة وحدة المعالجة المركزية لم تدعم رسميا من قبل XLA

في هذا السيناريو، تبدأ من خلال النظر في القائمة الخلفية XLA وحدة المعالجة المركزية . XLA يجعل من السهل إعادة التوجيه TensorFlow إلى وحدات المعالجة المركزية مختلفة باستخدام LLVM، لأن الفرق الرئيسي بين الخلفيات XLA لوحدات المعالجة المركزية هي الشفرة التي تم إنشاؤها من قبل LLVM. جوجل تختبر XLA لx64 و ARM64 أبنية.

إذا ببائع الجهاز لديه الخلفية LLVM عن الأجهزة الخاصة بهم، أنها بسيطة لربط الخلفية مع LLVM بنيت مع XLA. في وضع JIT، الخلفية للفي XLA CPU كود تنبعث من أجل وحدة المعالجة المركزية المضيف. لتجميعها قبل من الوقت، xla::AotCompilationOptions يمكن أن توفر LLVM ثلاثة أضعاف لتكوين بنية الهدف.

إذا لم يكن هناك الخلفية LLVM الحالية ولكن من نوع آخر مولد رمز موجود، فإنه ينبغي أن يكون من الممكن إعادة استخدامها أكثر من الخلفية وحدة المعالجة المركزية القائمة.

السيناريو 2: غير CPU-مثل الأجهزة مع الخلفية LLVM القائمة

فمن الممكن لنموذج جديد xla::Compiler التنفيذ على القائمة xla::CPUCompiler و xla::GPUCompiler الطبقات، لأن هذه LLVM IR تنبعث منها بالفعل. اعتمادا على طبيعة الأجهزة، فمن الممكن أن العديد من الجوانب الجيل LLVM IR سوف تضطر إلى تغيير، ولكن الكثير من التعليمات البرمجية يمكن أن تكون مشتركة مع الخلفيات القائمة.

وخير مثال على المتابعة هو الخلفية GPU من XLA. الخلفية GPU تستهدف وغير CPU-مثل ISA، وبالتالي بعض جوانب الجيل رمزها هي فريدة من نوعها إلى المجال GPU. أنواع أخرى من الأجهزة، مزودي خدمات المعطيات سبيل المثال مثل مسدس (التي لديها الخلفية LLVM المنبع)، ويمكن إعادة استخدام أجزاء من المنطق الانبعاثات LLVM IR، ولكن أجزاء أخرى تكون فريدة من نوعها.

السيناريو 3: عدم CPU-مثل الأجهزة دون الخلفية LLVM القائمة

إذا لم يكن من الممكن الاستفادة LLVM، فإن أفضل خيار هو تنفيذ الخلفية الجديدة لXLA للأجهزة المطلوبة. يتطلب هذا الخيار معظم الجهد. الفئات التي يجب أن تنفذ على النحو التالي:

  • StreamExecutor : للحصول على العديد من الأجهزة ليست كل أساليب StreamExecutor المطلوبة. انظر القائمة StreamExecutor تطبيقات للحصول على التفاصيل.
  • xla::Compiler : هذه الفئة بتغليف تجميع لحساب HLO إلى xla::Executable .
  • xla::Executable : يستخدم هذه الفئة لإطلاق حساب جمعت على المنصة.
  • xla::TransferManager : هذه الفئة تمكن الخلفيات لتوفير الآليات الخاصة بالنظام الأساسي لبناء XLA بيانات حرفية من إعطاء مقابض ذاكرة الجهاز. وبعبارة أخرى، فإنه يساعد تغليف نقل البيانات من المضيف إلى الجهاز والظهر.