আমার কোডটি সংকলক দ্বারা ভেক্টরাইজড হচ্ছে কিনা আমি কীভাবে জানতে পারি?


9

জেদ ব্রাউন এর দৃষ্টিকোণ ব্যয়ের হিসাবের ব্যয়ের হিসাবের জবাব দিয়ে উদাহরণস্বরূপ , ভেক্টরাইজ বনাম নন-ভেক্টরাইজড ফ্লোটিং পয়েন্ট অপারেশনগুলি আরও দ্রুত কোডের ফলাফল হিসাবে ব্যবহার করে। অনেক আধুনিক সংকলক দাবি করেন যে তারা স্বয়ংক্রিয় ভেক্টরাইজেশন সম্পাদন করতে পারে। আমি কীভাবে আমার কোডের কোন অংশগুলি সফলভাবে ভেক্টরাইজড হয়ে যাচ্ছি?

উত্তর:


10

যে কোনও আধুনিক মদ এর इंटেল সংকলক সহ -O3 -vec-report3,। অপ্টিমাইজেশন স্তর তিনটি গ্যারান্টি দেয় যে এটি ভেক্টরাইজ করার চেষ্টা করছে এবং ভেক্টর রিপোর্ট আপনাকে বলবে যে এটি কী করছে।

ভেক্টরাইজেশনের জিএনইউ পৃষ্ঠাটি বলে যে এটি ডিফল্টরূপে অপ্টিমাইজেশন স্তর 3 এ রয়েছে, তবে আমি ভিসি-রিপোর্টের সমতুল্য খুঁজে পাই না।


দ্রুত সাড়া দেওয়ার জন্য ধন্যবাদ। -ভেস-রিপোর্ট 3 সম্পর্কে আমি জানতাম না। যখন এই ধরণের জিনিস (স্বয়ংক্রিয় ভেক্টরাইজেশন) আসে তখন আপনার কি সংকলক পছন্দ থাকে?
ম্যাথু এমমেট

ইন্টেল সংকলক সত্যই ভাল, কিন্তু শুধুমাত্র ইন্টেল চিপ জন্য। আপনাকে কেবলমাত্র সমস্ত সঠিক প্রাগমাস যুক্ত করতে হবে (# প্রগমা আইভিডপ সবচেয়ে সহজ) জিসিসি 4.7 অনেক ভাল অর্জন করেছে তবে কোনও সহকর্মীর সাথে কিছু কোড সন্ধান করা হয়েছে এতে এখনও বাগ রয়েছে (ওপেনপ্যাম প্রাগমাসের মধ্যে কোনও ভেক্টরাইজেশন যেমন নেই)।
অটারেল

1
আমি এএমডি চিপসে ভেক্টরাইজেশন সহ কীভাবে ইন্টেল সংকলকটি ডাবল চেক করার পরামর্শ দেব। আমি 100% নিশ্চিত নই যে পুরানো সমস্যাগুলি এখনও আছে।
বিল বার্থ

2
@ বিলবার্থ হ্যাঁ, এখনও একটি বিষয়। অপ্টিমাইজেশন নোটিশটি দেখুন (অনেক জায়গায়, উদাহরণস্বরূপ সফটওয়্যার । এএমডি আদালতের যুদ্ধে জিতেছিল যে ইনটেলকে প্রকাশ করা যে তারা প্রতিদ্বন্দ্বী, তাদের সত্ত্বেও তা থামাতে নয়। en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler#Criticism সমাধান নীচে উপস্থিত উপর Agner কুয়াশা: agner.org/optimize/blog/read.php?i=49
জেড ব্রাউন

@ জেডব্রাউন, নিশ্চিত যে এসএসই এখনও অদ্ভুত, তবে এভিএক্সের সাথে গল্পটি কী? এই লিঙ্কগুলি নির্দেশ করে যে জিনিসগুলি ভাল হওয়া উচিত (যেহেতু উভয় সংস্থা AVX প্রয়োগ করে) তবে আমি এটি বুলডোজার মেশিনে পরীক্ষা করে দেখিনি।
বিল বার্থ


5

জিএনইউ সংকলকগুলির সাহায্যে সংযোজনকারী উত্সর্গ -Wa,-ahl=asm.sকোডটি ডাম্প করবে asm.s

ইন্টেল সংকলকগুলির সাথে, যুক্ত করা -fcode-asm -Faasm.sউত্পন্ন কোডটি ডাম্প করবে asm.s

তারপরে আপনি অ্যাসেম্বলি কোডটি পরিদর্শন করতে পারেন এবং ভেক্টর ফ্লোট পয়েন্ট অপারেশনগুলি সন্ধান করতে পারেন।


আমি সম্পূর্ণরূপে সম্মত হই যে কোডটি ভেক্টরাইজড কিনা তা নির্ধারণের একমাত্র নির্ভরযোগ্য সমাবেশের আউটপুট পরীক্ষা করা। কোডের ভেক্টরাইজ করার জন্য তাদের দাবির বিষয়ে সতর্ক হওয়ার জন্য কম্পাইলারদের প্রয়োজন নেই এমন কিছুই নেই।
জেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.