إصلاح: وحدة المعالجة المركزية الخاصة بك تدعم التعليمات التي تفيد بأن TensorFlow Binary لم يتم تجميعه لاستخدام AVX2

امتدادات المتجهات المتقدمة ( AVX ، المعروفة أيضًا باسم ملحقات Sandy Bridge الجديدة ) هي امتدادات لمعمارية مجموعة تعليمات x86 للمعالجات الدقيقة من Intel و AMD التي اقترحتها Intel في مارس 2008 ودعمتها لأول مرة مع معالج Sandy Bridge الذي تم شحنه في الربع الأول من عام 2011 وما بعده تم تشغيله بواسطة AMD مع شحن معالج Bulldozer في الربع الثالث من عام 2011. يوفر AVX ميزات جديدة وإرشادات جديدة ونظام تشفير جديد.

تتم طباعة رسالة التحذير هذه بواسطة مكتبة TensorFlow المشتركة. كما تشير الرسالة ، لا تتضمن المكتبة المشتركة نوع التعليمات التي يمكن أن تستخدمها وحدة المعالجة المركزية الخاصة بك.

ما سبب هذا التحذير؟

بعد TensorFlow 1.6 ، تستخدم الثنائيات الآن تعليمات AVX التي قد لا تعمل على وحدات المعالجة المركزية القديمة بعد الآن. لذلك لن تتمكن وحدات المعالجة المركزية الأقدم من تشغيل AVX ، بينما بالنسبة للوحدات الأحدث ، يحتاج المستخدم إلى بناء تدفق التوتر من المصدر لوحدة المعالجة المركزية الخاصة بهم. يوجد أدناه جميع المعلومات التي تحتاج إلى معرفتها حول هذا التحذير المحدد. أيضًا ، طريقة للتخلص من هذا التحذير للاستخدام المستقبلي.

ماذا يفعل AVX؟

على وجه الخصوص ، قدم AVX FMA (إضافة مضاعفة مدمجة) ؛ وهي عملية الضرب والجمع للفاصلة العائمة ، وتتم كل هذه العمليات في خطوة واحدة. هذا يساعد على تسريع العديد من العمليات دون أي مشكلة. إنه يجعل حساب الجبر أكثر سرعة وسهولة في الاستخدام ، وكذلك المنتج النقطي ، ومضاعفة المصفوفة ، والالتفاف ، وما إلى ذلك ، وهذه كلها العمليات الأساسية والأكثر استخدامًا لكل تدريب على تعلم الآلة. ستكون وحدات المعالجة المركزية التي تدعم AVX و FMA أسرع بكثير من تلك القديمة. لكن التحذير ينص على أن وحدة المعالجة المركزية الخاصة بك تدعم AVX ، لذا فهي نقطة جيدة.

لماذا لا يتم استخدامه بشكل افتراضي؟

وذلك لأن التوزيع الافتراضي TensorFlow مبني بدون امتدادات وحدة المعالجة المركزية. من خلال امتدادات وحدة المعالجة المركزية ، تنص على AVX و AVX2 و FMA وما إلى ذلك. الإرشادات التي تؤدي إلى حدوث هذه المشكلة لا يتم تمكينها افتراضيًا على الإصدارات الافتراضية المتاحة. أسباب عدم تمكينها هي جعلها أكثر توافقًا مع أكبر عدد ممكن من وحدات المعالجة المركزية. لمقارنة هذه الإضافات أيضًا ، فهي أبطأ كثيرًا في وحدة المعالجة المركزية بدلاً من وحدة معالجة الرسومات. يتم استخدام وحدة المعالجة المركزية في التعلم الآلي على نطاق صغير بينما يُتوقع استخدام وحدة معالجة الرسومات عند استخدامها في تدريب على تعلم الآلة متوسط ​​أو واسع النطاق.

إصلاح التحذير!

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

إذا كان لديك GPU على جهازك ، فيمكنك تجاهل هذه التحذيرات من دعم AVX. لأنه سيتم إرسال أغلى منها على جهاز GPU. وإذا كنت لا تريد رؤية هذا الخطأ بعد الآن ، فيمكنك ببساطة تجاهله عن طريق إضافة ما يلي:

قم باستيراد وحدة نظام التشغيل في رمز البرنامج الرئيسي الخاص بك وقم أيضًا بتعيين كائن التعيين لها

# لتعطيل تحذير استيراد نظام التشغيل os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

ولكن إذا كنت تستخدم نظام Unix ، فاستخدم أمر التصدير في bash shell

تصدير TF_CPP_MIN_LOG_LEVEL = 2

ولكن إذا لم يكن لديك GPU ، وترغب في استخدام وحدة المعالجة المركزية الخاصة بك قدر الإمكان ، فيجب عليك إنشاء TensorFlow من المصدر المحسن لوحدة المعالجة المركزية الخاصة بك مع تمكين AVX و AVX2 و FMA هنا.