فتح إمكانيات أداء Tensor Core لإمكانيات التفاعل بين الذرات في تعلم الآلة

نيفيديا تقوم بتقييم طرق Tensor Core FP32 في أداة Point Edge Transformer (PET) لتسريع عمليات القوى بين الذرات في التعلم الآلي. تُظهر النتائج أن BF16x9 على رقاقات GPU من نوع Blackwell وTF32x3 على رقاقات GPU من نوع Ampere يسرّعان بشكل كبير عمليات ضرب المصفوفات، مع الحفاظ على الاتساق الفيزيائي وحفظ الطاقة في محاكاة الديناميكا الجزيئية.

القراءة الصوتية غير متاحة في هذا المتصفح
فتح إمكانيات أداء Tensor Core لإمكانيات التفاعل بين الذرات في تعلم الآلة

الوسوم

ملخص سريع

نيفيديا تقوم بتقييم طرق Tensor Core FP32 في أداة Point Edge Transformer (PET) لتسريع عمليات القوى بين الذرات في التعلم الآلي. تُظهر النتائج أن BF16x9 على رقاقات GPU من نوع Blackwell وTF32x3 على رقاقات GPU من نوع Ampere يسرّعان بشكل كبير عمليات ضرب المصفوفات، مع الحفاظ على الاتساق الفيزيائي وحفظ الطاقة في محاكاة الديناميكا الجزيئية.

فتح إمكانيات Tensor Core لتحسين أداء القوى بين الذرات في التعلم الآلي

تُعد المحاكاة الذرية أساسية لفهم سلوك الجزيئات والمواد، بدءًا من التفاعلات الكيميائية والانتقالات الطورية وصولاً إلى الفشل الميكانيكي. لكن هذه المحاكاة تواجه توازنًا كبيرًا بين التكلفة والدقة. توفر الأساليب الميكانيكية الكمومية، مثل نظرية الدالة الكثافية (DFT)، دقة عالية لكنها مكلفة حسابيًا، مما يحد من استخدامها إلى الأنظمة الصغيرة أو الفترات الزمنية القصيرة. في المقابل، تتميز القوى بين الذرات التقليدية بالسرعة لكنها تفتقر إلى القدرة على التعميم في بيئات ذرية متنوعة. تسد القوى بين الذرات في التعلم الآلي (MLIPs) هذه الفجوة من خلال استخدام الشبكات العصبية للتنبؤ بالطاقات والقوى بتكلفة أقل بكثير، مما يسمح بدراسة أنظمة أكبر مع الحفاظ على الدقة اللازمة.

على الرغم من كفاءتها، يظل تشغيل MLIPs بكفاءة تحديًا. تكون المحاكاة الذرية حساسة للأخطاء العددية الصغيرة التي تتراكم مع مرور الوقت، خاصة عند حساب القوى المستمدة من تفاضل الطاقة. خلال ديناميكا الجزيئات، تُوجه هذه القوى تحديثات الذرات عبر العديد من الخطوات الزمنية، مما يجعل الدقة العددية ضرورية لكل من الدقة الفيزيائية واستقرار المسار. ونتيجة لذلك، تستمر العديد من MLIPs في التشغيل في FP32، رغم أن بطاقات NVIDIA الحديثة توفر سرعة أعلى بكثير في عمليات ضرب المصفوفات من خلال عمليات Tensor Core ذات الدقة المنخفضة.

لمعالجة ذلك، قام الباحثون بتقييم أساليب Tensor Core FP32. تقوم هذه التقنيات بتقسيم المتغيرات FP32 إلى مكونات ذات دقة أقل، وتقييم حاصل ضربها المتقاطع على Tensor Cores، ثم إعادة تجميع النتائج في FP32.. يزيد هذا النهج من سرعة ضرب المصفوفات مع الحفاظ على دقة قريبة من الدقة الأصلية FP32، دون الحاجة إلى إعادة تدريب النموذج أو تغييرات في التصميم. يقوم التحليل التالي بتقييم أداء هذه الأساليب على Point Edge Transformer (PET)، وهو نموذج MLIP مبني على تقنية الترانسفورمر طوره مختبر COSMO في EPFL.

كيف يسد Tensor Core FP32 الفجوة في الأجهزة

توفر بطاقات الرسومات الحديثة من NVIDIA أداءً أعلى بكثير لوحدات Tensor Core في عمليات الضرب المصفوفي BF16 وTF32 مقارنةً بعمليات الضرب المصفوفي في FP32. وهذا يخلق فجوة بين الأداء المتاح ومتطلبات الدقة للأعباء العلمية. تساعد طرق Tensor Core FP32 في تضييق هذه الفجوة عن طريق الاستفادة من قوة الأجهزة في الدقة المنخفضة مع الحفاظ على دقة النتائج المطلوبة لضمان الاستقرار.

في بطاقات الرسومات NVIDIA Blackwell (بقدرة حسابية 10.0 أو 10.3)، يتم دعم خوارزمية BF16x9 عبر NVIDIA cuBLAS. كما هو موضح في الوثائق، يتم تقسيم كل عنصر عمليات FP32 إلى ثلاثة مكونات BF16، مما ينتج تسعة حاصلضرب زوجي يتم تراكمها في FP32 على طول خمسة أشرطة قطرية. تتيح NVIDIA cuBLAS تنفيذ هذا الإجراء من خلال متغير البيئة CUBLAS_EMULATE_SINGLE_PRECISION=1، مما يسمح لدوال GEMM في PyTorch المتوافقة باستخدام هذا الطريق دون تعديل هيكل النموذج أو تطبيق نوى خاصة.

في بطاقات الرسومات NVIDIA Ampere، تطبق طريقة TF32x3 مبدأً مشابهًا. يتم تمثيل كل عنصر عمليات FP32 باستخدام مكون رئيسي TF32 ومكون متبقي TF32. تقوم التنفيذ بحساب ثلاثة حاصلضرب متقاطع — حاصل ضرب رئيسي برئيسي وحاصلان ضرب رئيسي بمتبقي — وتراكمها في FP32، مع إغفال حاصل الضرب المتبقي بالمتبقي. توفر NVIDIA CUTLASS هذا النهج من خلال المشغل OpMultiplyAddFastF32، حيث يظل المدخلات والمخرجات في FP32.

قياس أداء عمليات الرياضيات المصفوفية باستخدام Tensor Core FP32 على PET

ركز التقييم على نقطة التحقق الصغيرة PET-MAD ذات المعامل 26M (pet-mad-s-v1.6.0-nn-32) على صندوق ماء يحتوي على 192 ذرة وخلية فائقة تحتوي على 17,280 ذرة، بالإضافة إلى نقطة التحقق الكبيرة ذات المعامل 255M (pet-mad-m-v1.6.0) على نظام يحتوي على 192 ذرة. تمت مقارنة الطاقات والقوى والإجهادات المتوقعة مع الطريقة الأصلية FP32.

طريقة BF16x9 على بطاقات الرسومات NVIDIA Blackwell

على رقاقات GPU من نوع Blackwell، أظهرت طريقة BF16x9 تسريعًا كبيرًا لعمليات GEMM الكبيرة ضمن نموذج PET. بالنسبة لعبء العمل المكون من 17,280 ذرة، تم تسريع عمليات GEMM الكبيرة بمقدار 2.2–2.5x.، أما بالنسبة لعبء العمل المكون من 192 ذرة، فقد تراوح التسريع بين 1.2–1.4x..

عند تقييم أداء الديناميكا الجزيئية من البداية إلى النهاية، تم اختبار استراتيجيتين:

  • الاستراتيجية الفعالة: تستخدم BF16x9 عندما يتوقع cuBLAS أن ذلك سيؤدي إلى سرعة أكبر.
  • الاستراتيجية الفورية: تستخدم BF16x9 كلما دعمت العملية ذلك.

على نظام المكون من 192 ذرة، سرّعت الاستراتيجية الفعالة خطوة الديناميكا الجزيئية بمقدار 1.2x، بينما حققت الاستراتيجية الفورية تسريعًا بمقدار 1.1x.، أما على نظام المكون من 17,280 ذرة، فقد حققت الاستراتيجية الفعالة تسريعًا بمقدار 1.7x، بينما حققت الاستراتيجية الفورية تسريعًا بمقدار 1.4x.. من المهم ملاحظة أن الخطأ الناتج عن طريقة Tensor Core BF16x9 كان أقل من مستوى عدم اليقين الخاص بالنموذج نفسه. هذه النتيجة مهمة لأن نموذج PET يعبر بالفعل عن جزء كبير من وقت تشغيله عبر عمليات GEMM المُحسّنة، ومع ذلك فإن مسار BF16x9 سمح بتحسين الأداء دون الحاجة إلى إعادة تدريب النموذج أو تغيير هيكله التحويلي.

طريقة TF32x3 على رقاقات GPU من نوع Ampere

على رقاقات GPU من نوع Ampere، تم تنفيذ طريقة TF32x3 عن طريق استبدال طبقات nn.Linear القياسية في نموذج PET بطبقة مخصصة من نوع TF32Linear تستدعي نواة C++ من نوع CUTLASS وهي TF32x3. الإعداد الرئيسي في تنفيذ نموذج PET هو اختيار وضع الضرب السريع والدقيق من CUTLASS وهو FP32، حيث تمثل النواة كل عامل من عوامل FP32 على أنه مكون رئيسي ومكون متبقي من نوع TF32، وتقوم وحدات Tensor Core بتنفيذ المنتجات الثلاثة من نوع TF32 مع تراكم النتائج في FP32..

بالنسبة لعبء العمل المكون من 17,280 ذرة على بطاقة الرسومات NVIDIA A100 Tensor Core، قام TF32x3 بتسريع عمليات PET SGEMM الكبيرة بمقدار تقريبي 1.7–1.9x مقارنةً بالطريقة الأصلية FP32.. أما من حيث خطوات الديناميكا الجزيئية الكاملة، فقد سرّع TF32x3 العملية بمقدار يصل إلى 1.5x مع الحفاظ على خطأ القوة عند المستوى الأساسي FP32.

التحقق من الاتساق الفيزيائي

يُعد ضمان الاتساق الفيزيائي جانبًا حاسمًا عند استخدام الحسابات ذات الدقة المنخفضة في المحاكاة العلمية. اختبر التقييم طريقة TF32x3 من حيث نعومة الطاقة الكامنة وحفظ الطاقة والاسترخاء الهيكلي.

حفظ الطاقة والنعومة

يحافظ TF32x3 على نعومة الطاقة الكامنة وحفظ الطاقة في مسارات NVE، بما يتوافق مع سلوك FP32. في المقابل، أظهرت طريقة one-pass TF32 وجود تذبذب وخشونة في هذه المسارات. يبرز هذا الفرق أهمية طريقة التحليل المحددة المستخدمة للحفاظ على الاستقرار العددي خلال المحاكاة طويلة الأمد.

الاسترخاء الهيكلي

تم اختبار الطرق أيضًا أثناء عملية الاسترخاء الهيكلي لصفيحة سبيكة كانتور المكونة من 539 ذرة. في هذا السيناريو، توصلت طريقة TF32x3 إلى النتيجة النهائية في 218–222 خطوة مع تسريع بمقدار 1.5x لكل خطوة. على العكس من ذلك، فشلت طريقة one-pass TF32 في تحقيق مستوى التحمل المطلوب للقوة حتى بعد 1,000 خطوة. يوضح ذلك أن الطرق القياسية ذات الدقة المنخفضة قد توفر سرعة أولية، لكنها قد تؤثر سلبًا على عملية التقارب والموثوقية المطلوبة في مهام التحسين الهيكلي.

القيود ومعايير اتخاذ القرار

على الرغم من أن طرق Tensor Core FP32 توفر مكاسب كبيرة في الأداء، إلا أنها ليست حلًا شاملًا. لم يقم التقييم بقياس المكاسب المشتركة عند استخدام هذه الطرق مع بناء الرسوم البيانية المُحسّنة، والعمليات المدمجة، والنوى المخصصة، ورسومات NVIDIA CUDA؛ يجب تحديد هذه المكاسب من نهاية إلى أخرى لكل عبء عمل محدد.

علاوة على ذلك، تختلف تفاصيل التنفيذ بين أجيال الأجهزة. في رقائق GPU من نوع Blackwell، يعتمد النهج على متغيرات بيئية cuBLAS لتمكين عملية ضرب المصفوفات العامة بدقة واحدة (SGEMM) دون الحاجة إلى تغييرات في الكود. أما في رقائق GPU من نوع Ampere، فيلزم استخدام تنفيذ مخصص بلغة C++ باستخدام CUTLASS لاستبدال الطبقات الخطية القياسية. يجب على المستخدمين موازنة فوائد الأداء مع تعقيد التنفيذ والتأكد من أن هوامش الخطأ المحددة لا تزال مقبولة في مجالهم العلمي.

الخلاصة

توفر طرق Tensor Core FP32 مسارًا عمليًا لتسريع إمكانيات التعلم الآلي المتعلقة بالجزيئات دون التضحية بالاستقرار العددي المطلوب لمحاكاة الذرات. من خلال تقسيم المتغيرات FP32 إلى مكونات ذات دقة أقل، يمكن لطرق مثل BF16x9 في رقائق GPU من نوع Blackwell وTF32x3 في رقائق GPU من نوع Ampere الاستفادة من سرعة أعلى لوحدات Tensor Core.

تشير الأدلة إلى أنه بالنسبة لأداة Point Edge Transformer، يمكن لـ BF16x9 تسريع عمليات ضرب المصفوفات الكبيرة بمقدار يصل إلى 2.5x على أجهزة Blackwell، بينما يحقق TF32x3 مكاسب مماثلة على رقائق GPU من نوع Ampere. والأهم من ذلك، أن هذه الطرق تحافظ على الاتساق الفيزيائي، مما يضمن الحفاظ على قانون حفظ الطاقة والتقارب في مهام الاسترخاء الهيكلي حيث تفشل الطرق ذات الدقة المنخفضة. يمكن للباحثين تحقيق هذه المكاسب في الأداء عن طريق استخدام الأدوات ومتغيرات البيئة الموثقة، مما يسمح باستكشاف المواد والجزيئات بسرعة أكبر مع الحفاظ على الدقة الضرورية للاكتشافات العلمية.

المصدر: https://developer.nvidia.com/blog/unlocking-tensor-core-performance-for-machine-learning-interatomic-potentials

المصادر