علامات تحسين دول مجلس التعاون الخليجي لـ Intel Atom [مغلق]

StackOverflow https://stackoverflow.com/questions/110674

  •  02-07-2019
  •  | 
  •  

سؤال

أقوم بتطوير تطبيق مهم للأداء لمعالج Intel Atom.

ما هي أفضل علامات تحسين دول مجلس التعاون الخليجي لوحدة المعالجة المركزية هذه؟

هل كانت مفيدة؟

المحلول

سيحتوي الإصدار 4.5 من مجلس التعاون الخليجي على خيارات -march=atom و-mtune=atom.

مصدر: http://gcc.gnu.org/gcc-4.5/changes.html

نصائح أخرى

هناك إطار رائع يسمى Acovea (تحليل خيارات المترجم عبر الخوارزمية التطورية), بقلم سكوت روبرت لاد، أحد المتسللين في دول مجلس التعاون الخليجي.إنه إطار عمل خوارزمي جيني/تطوري يحاول تحسين علامات تحسين دول مجلس التعاون الخليجي لجزء معين من التعليمات البرمجية عبر الانتقاء الطبيعي.

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

لدي برنامج نصي يقوم تلقائيًا بتحديد العلامات المناسبة لوحدة المعالجة المركزية الخاصة بك ومجموعة المترجم.لقد قمت للتو بتحديثه لدعم Intel Atom:

http://www.pixelbeat.org/scripts/gcccpuopt

تحديث:سبق أن حددت -March = prescott for Atom ، لكن النظر إلى أكثر من ذلك يدل على أن Atom هو Merom ISA متوافق ، وبالتالي -march = core2 أكثر ملاءمة.لاحظ مع ذلك أن الذرات عبارة عن نوى مرتبة، وآخرها هو البنتيوم الأصلي.لذلك ربما يكون من الأفضل -mtune=pentium أيضًا.لسوء الحظ ، ليس لدي ذرة للاختبار.سأكون ممتنًا حقًا لو تمكن أي شخص من قياس الفرق بين:

-march=core2 -mfpmath=sse -O3
-march=core2 -mtune=pentium -mfpmath=sse -O3

تحديث:فيما يلي بعض المقالات الرائعة حول تحسين المستوى المنخفض لـ Atom:

حسنًا، ينص موقع Gentoo wiki على البريسكوت:

http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel#Atom_N270

CHOST='i686-pc-linux-gnu'

CFLAGS = "-march = بريسكوت -O2 -الأنابيب -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

من إنتل، الشروع في العمل مع MID

عند استخدام مجلس التعاون الخليجي للتجميع، هناك بعض العلامات الموصى باستخدامها:

  • -O2 أو -O1:تعمل علامة O2 على تحسين السرعة، بينما تعمل علامة -O1 على تحسين الحجم
  • -msse3
  • -march=core2
  • -mfpmath=sse

تماما مثل بنتيوم 4:

-march=prescott -O2 -pipe -fomit-frame-pointer

لا أعرف ما إذا كان لدى مجلس التعاون الخليجي أي علامات تحسين خاصة بـ Atom حتى الآن، ولكن من المفترض أن يكون Atom core مشابهًا جدًا لـ Pentium الأصلي، مع إضافة مهمة جدًا لمجموعات تعليمات MMX/SSE/SSE2/SSE3/SSSE3.بالطبع، لا يحدث هذا فرقًا كبيرًا إلا إذا كان الكود الخاص بك عبارة عن نقطة عائمة أو ثقيل DSP.

ربما يمكنك أن تجرب:

دول مجلس التعاون الخليجي -O2 -march=pentium -mmmx -mse -mse2 -msse3 -mssse3 -mfpmath=sse

وهنا بعض التلقيح المتبادل للمدونات ...ما كنت أتمناه حقًا هو معيار فايرفوكس المترجم من أجل الذرة ...

عنوان :http://ivoras.sharanet.org/blog/tree/2009-02-11.optimizing-for-atom.html

"كما اتضح، يبدو أن gcc تقوم بعمل جيد جدًا مع -mtune=native، وmtune=generic أكثر من مقبول.تأتي أكبر المكاسب (في هذا المعيار المثقل بالرياضيات) من استخدام SSE في الرياضيات، ولكن حتى هذه المكاسب يتم تدميرها عن طريق ضبط pentium4.

"الفرق بين التحسين الأسرع والأبطأ هو 21%.إن تأثير استخدام March بدلاً من mtune لا يكاد يذكر (لا يوجد فرق كافٍ لمعرفة ما إذا كان يساعد أم لا).

"(لقد قمت بتضمين k6 كمرجع فقط - أعلم أن Atom ليس لديه 3dnow)

"التحديث المتأخر:يؤدي ضبط k8 (مع SSE وO3) إلى الحصول على أفضل درجة أعلى قليلاً وهي 182."

i686 هو الأقرب.لا تذهب إلى core2.

GCC 4.1 -o3 -March = I686 GCC 4.3 -O3 -March = Native

GCC 4.1 -o4 -fast -math GCC 4.3 -o4 -fast -math

http://macles.blogspot.com/2008/09/intel-cc-compiler-gcc-and-intel-atom.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top