
في عام 2017 ، أعلنت Google عن وحدة معالجة Tensor (TPU) – وهي دائرة متكاملة مخصصة للتطبيقات (ASIC) مصممة خصيصًا للتعلم الآلي. وبعد مرور عام ، تم نقل TPUs إلى السحابة وجعلها مفتوحة للاستخدام التجاري.
بعد سلسلة من وحدات المعالجة المركزية ووحدات معالجة الرسومات ، تعد وحدات معالجة Tensor (TPU) عبارة عن دوائر متكاملة مطورة خصيصًا للتطبيقات (ASIC) من Google والتي من المفترض أن تسرع أعباء عمل التعلم الآلي. تم تصميمها خصيصًا لإطار عمل TensorFlow من Google ، وهي مكتبة رياضيات رمزية تُستخدم للشبكات العصبية.
من المعروف أن TensorFlow ليس من السهل كسره. لضمان فهم أفضل لمفهوم الموتر ، وهيكل TPU وكيفية عمله ، سنحاول تقديم نظرة عامة مختصرة وبسيطة على التكنولوجيا.
ما هو الموتر؟
في الرياضيات ، يمثل الموتر كائنًا هندسيًا يقوم بتخطيط المتجهات الهندسية ، والمقاييس ، وغيرها من الكائنات المشابهة بطريقة متعددة الخطوط إلى موتر ناتج. قد يبدو هذا مربكًا للغاية ، ولكن بعبارة أبسط ، الموتر هو مصفوفة معممة يمكن أن تكون مصفوفة 1-D (متجه) ، مصفوفة ثلاثية الأبعاد (مكعب من الأرقام) ، حتى مصفوفة 0-D ( رقم واحد) ، أو بنية ذات أبعاد أعلى يصعب تصورها. يسمى البعد من الموتر في المرتبة.
من الخصائص المهمة للموتر هي دينامياته: إنه يعيش في هيكل ويتفاعل مع الكيانات الرياضية الأخرى. إذا قام أحدهم بتحويل كيانات أخرى في الهيكل بطريقة منتظمة ، فإن الموتر يلتزم بقاعدة التحول ذات الصلة وقيمها العددية تتواجد مع الكيانات الأخرى. هذه الخاصية “الديناميكية” للموتر هي المفتاح الذي يميزها عن مجرد مصفوفة.
في علوم الكمبيوتر ، يعتبر Tensor مصفوفة n-dimensional تشبه صفيف Numpy – وهي بنية البيانات الأساسية التي تستخدمها خوارزميات التعلم الآلي. إنها الوحدة الأساسية للعمل في TensorFlow وفي الحقيقة تستخدم Numpy.
ما علاقة الأمر بالتعلم الآلي؟
تتضمن الرياضيات المشاركة في القيام بـ ML إضافة هذه الكائنات وضربها:
العددية
قوه موجهة
مصفوفة
دعنا نلقي نظرة على شبكة عصبية بسيطة. يقوم المثال التالي في TensorFlow Playground بتدريب شبكة عصبية لتصنيف نقطة بيانات باللون الأزرق أو البرتقالي بناءً على مجموعة بيانات التدريب:
تقوم الشبكة العصبية المدربة بتصنيف البيانات التي تحتوي على تسميات أو تقديرات القيم المفقودة أو المستقبلية في المهمة التي تسمى الاستدلال. لهذا ، تخضع كل خلية عصبية في الشبكة العصبية للحسابات التالية:
اضرب بيانات الإدخال (x) مع الأوزان (w) لتمثيل قوة الإشارة ؛
أضف النتائج لتجميع حالة الخلايا العصبية ؛
تطبيق وظيفة التنشيط (و) لتعديل نشاط الخلايا العصبية الاصطناعية.
كما ترون ، مع ثلاثة مدخلات وخليتين فقط مع شبكة عصبية أحادية الطبقة متصلة بالكامل ، يجب عليك تنفيذ ستة مضاعفات بين الأوزان والمدخلات وإضافة مضاعفات في مجموعتين من ثلاثة. هذا التسلسل من الضرب والإضافات يمكن كتابته كضرب مصفوفة وهو الجزء الأكثر كثافة حسابيًا في تشغيل نموذج مدرّب. يتطلب كل التنبؤ الفردي العديد من الخطوات لمضاعفة بيانات الإدخال المعالجة بواسطة مصفوفة الوزن وتطبيق وظيفة التنشيط.
ونتيجة لذلك ، فإن ضرب الشرائح وأخذها من المصفوفات يستغرق الكثير من دورات ساعة وحدة المعالجة المركزية والذاكرة. تم تصميم TPUs لتخفيف أعباء العمل المحددة هذه.
المنطق وراء TPU
لتبسيط عملية التدريب على الشبكة العصبية ، تعالج TPUs هذه المشكلة في عدة اتجاهات:
1. الكمي
تمشيا مع تقنية القياس الكمي ، وهي عملية تقريب قيمة التعسفي بين الحد الأدنى المحدد مسبقا والقيمة القصوى مع عدد صحيح 8 بت ، تحتوي TPUs على 65،536 مضاعف عدد صحيح 8 بت. في جوهرها ، هذه التقنية عبارة عن ضغط لحسابات الفاصلة العائمة بأرقام 32 بت أو حتى 16 بت إلى عدد صحيح 8-بت. كما ترون ، يتم تحويل مجموعة كبيرة من القيم المستمرة (مثل الأعداد الحقيقية) إلى مجموعة منفصلة (من الأعداد الصحيحة) مع الحفاظ على المنحنى:
يعد القياس الكمي أول أداة قوية تستخدمها TPU لتقليل تكلفة تنبؤات الشبكة العصبية دون خسائر كبيرة في الدقة.
2. التركيز على الرياضيات الاستدلال
ثانيا ، تصميم TPU نفسه يلخص جوهر حساب الشبكة العصبية. يتضمن TPU الموارد الحسابية التالية:
وحدة مصفوفة المضاعف (MXU): 65،536 وحدة متعددة الإضافة 8 بت لعمليات المصفوفة ؛
المخزن المؤقت الموحد (UB): 24 ميغابايت من SRAM التي تعمل كسجلات ؛
وحدة التنشيط (AU): وظائف التنشيط Hardwired.
يتم التحكم فيها من خلال عشرات الإرشادات عالية المستوى التي تركز على العمليات الرياضية الرئيسية المطلوبة لاستدلال الشبكة العصبية. تقوم مجموعة المترجمات والبرامج الخاصة بترجمة مكالمات API من الرسوم البيانية TensorFlow إلى تعليمات TPU.
3. المعالجة المتوازية
توفر معالجات RISC النموذجية إرشادات للحسابات البسيطة مثل الضرب عن طريق معالجة عملية واحدة أو عددية مع كل تعليمة. كما تتذكر ، يحتوي TPU على وحدة مضاعف Matrix. تم تصميمه كمصفوفة ، بدلاً من العددية والمعالج ومعالجة مئات الآلاف من العمليات (= عملية المصفوفة) في دورة واحدة على مدار الساعة. إن استخدام معالج المصفوفة هذا يشبه طباعة المستندات في صفحة كاملة في وقت واحد بدلاً من حرف بحرف أو سطرا.
4. مجموعة الانقباضي
قلب TPU هو العمارة الجديدة لل MXU تسمى مجموعة الانقباضي. في المباني التقليدية (مثل وحدات المعالجة المركزية (CPU) أو وحدات معالجة الرسومات) ، يتم تخزين القيم في السجلات ، ويخبر البرنامج الوحدات المنطقية للحساب (ALUs) التي تسجل القراءة ، والعملية المراد تنفيذها (مثل الإضافة ، أو الضرب ، أو المنطقية AND) و سجل فيه لوضع النتيجة. يتكون البرنامج من سلسلة من هذه العمليات. في وحدة MXU ، يعيد ضرب المصفوفة إعادة استخدام المدخلات عدة مرات لإنشاء المخرجات النهائية. تتم قراءة القيمة مرة واحدة ولكنها تُستخدم في العديد من العمليات المختلفة دون تخزينها مرة أخرى في أحد السجلات. تقوم وحدات ALU بإجراء عمليات الضرب والإضافات فقط في الأنماط الثابتة ، وتربط الأسلاك وحدات ALU المجاورة ، مما يجعلها قصيرة وفعالة في استهلاك الطاقة.
نموذج البرمجة
يكون نقل البيانات بين Cloud TPU وذاكرة المضيف بطيئًا مقارنةً بسرعة الحساب نظرًا لسرعة ناقل PCIe. نظرًا لوجود “كرة الطاولة” بين المضيف و Cloud TPU ، فإن هذا الأخير في وضع الخمول معظم الوقت ، في انتظار وصول البيانات عبر ناقل PCIe. لتعزيز الكفاءة ، يقوم نموذج البرمجة لـ Cloud TPU بتحويل جزء كبير من التدريب إلى TPU. في هذا الطريق:
يتم الاحتفاظ بجميع معلمات الطراز في ذاكرة النطاق الترددي العالي على الرقاقة ؛
يتم تنفيذ العديد من خطوات التدريب في حلقة تستهلك تكلفة إطلاق الحسابات على Cloud TPU ؛
يقوم خادم TensorFlow بجلب البيانات ومعالجتها مسبقًا قبل “ضخ” أجهزة Cloud TPU ؛
تنفذ النوى على Cloud TPU بشكل متزامن برنامجًا متطابقًا يتم تخزينه في HBM الخاص بها.
التسعير
وفقًا لمعلومات التسعير من Google ، تبلغ تكلفة كل TPU 4.50 دولار. الأسعار لا تختلف عن موديلات TPU الثلاثة المعروضة على الموقع. يبدو ذلك مربكًا لأن TPUs لها أحجام مختلفة للذاكرة وسرعات على مدار الساعة.
وحدات المعالجة المركزية / وحدات معالجة الرسومات / TPUs التباين
تقوم وحدات المعالجة المركزية (وحدات المعالجة المركزية) ووحدات معالجة الرسومات (GPU) (وحدات معالجة الرسومات) بحساب معظم مشاكل ML ولكن في نفس الوقت تستهلك الكثير من الوقت. يفكر بعض الخبراء في أن TPUs هي في جوهرها وحدات معالجة الرسومات في NVidia انتقلت إلى السحابة. نظرًا لأن التقنيات متشابهة تمامًا ، فنحن نقدم جدولًا يتناقض مع شرائح CPU و GPU و TPU لإظهار مدى اختلافها ونطاق تطبيقها:
مزايا TPU
يوفر استخدام TPUs عددًا من المزايا من حيث زيادة الكفاءة وسرعة الحساب ، بما في ذلك الفوائد التالية:
الأداء المتسارع لحساب الجبر الخطي ، والذي يستخدم بكثرة في تطبيقات التعلم الآلي.
التقليل من الوقت إلى الدقة عند تدريب نماذج الشبكة العصبية الكبيرة والمعقدة: يمكن أن تتقارب الموديلات التي استغرقت أسابيع قبل التدريب في ساعات على أجهزة TPU.
عمليات قابلة للتطوير عبر أجهزة مختلفة مع خوادم TPU الخاصة بهم.
قيود TPU
الشيء المهم الذي يجب فهمه هو أن TPUs مُحسَّنة بشكل خاص لأداء عملية الضرب المصفوفة السريعة الضخمة. من المحتمل أن تتفوق منصات TPU السحابية على المنصات الأخرى في أحمال العمل التي لا يسيطر عليها ضرب المصفوفة ، مثل:
برامج الجبر الخطية التي تتطلب تشعبًا متكررًا أو التي يهيمن عليها الجبر ؛
أعباء العمل التي تصل إلى الذاكرة بطريقة متفرقة ؛
أعباء العمل التي تتطلب حسابًا عالي الدقة ؛
أعباء عمل الشبكة العصبية التي تحتوي على عمليات TensorFlow مخصصة مكتوبة بلغة C ++ ، على وجه التحديد ، العمليات المخصصة في نص حلقة التدريب الرئيسية.
مزيج من TensorFlow و TPUs يمكن أن تعمل العجائب في مجال الطب ومعالجة الصور و ML. عندما يتم تقليل وقت تدريب نموذج ووقت الحساب من أسابيع إلى ساعات ، يصبح التعلم الآلي أكثر قدرة على المنافسة ومتاحًا للجمهور الأوسع. علاوة على ذلك ، فإن تقديم TPUs كخدمة على السحابة يتيح للمستخدمين البدء في بناء نماذجهم دون الحاجة إلى استثمار رأسمالي مسبق. هذا يعني أنه يمكن للباحثين والمهندسين والشركات الصغيرة وحتى الطلاب بدء مشاريع التعلم الآلي بكل سهولة.
0 responses on "فهم وحدات معالجة Tensor Processing Units"