সি কোড লুপ পারফরম্যান্স [অব্যাহত]


83

এই প্রশ্নটি এখানে আমার প্রশ্নের উপর অব্যাহত রয়েছে (রহস্যের পরামর্শে):

সি কোড লুপ পারফরম্যান্স


আমার প্রশ্ন অব্যাহত রেখে, যখন আমি স্কেলারের নির্দেশাবলীর পরিবর্তে প্যাকড নির্দেশাবলী ব্যবহার করি তখন ইন্টার্নিক্স ব্যবহার করে কোডটি দেখতে খুব মিল দেখাবে:

এই কর্নেলের পরিমাপকৃত পারফরম্যান্স প্রতি চক্রের প্রায় 5.6 এফপি অপারেশন, যদিও আমি আশা করি এটি স্কেলার সংস্করণটির কার্যকারিতা 4x অবশ্যই হবে, অর্থাত্ চক্র প্রতি 4.1,6 = 6,4 এফপি অপ্সের।

ওজন ফ্যাক্টরটিকে অ্যাকাউন্টে নিয়ে যাওয়া (এটি নির্দেশ করার জন্য ধন্যবাদ), সময়সূচীটি দেখে মনে হচ্ছে:

সময়সূচী

দেখে মনে হচ্ছে সময়সূচী পরিবর্তন হয় না, যদিও এর পরে অতিরিক্ত নির্দেশ রয়েছে movss অপারেশনের যা স্কেলারের ওজনের মানটিকে এক্সএমএম রেজিস্টারে নিয়ে যায় এবং তারপরে shufpsপুরো ভেক্টরে এই স্কেলারের মানটি অনুলিপি করতে ব্যবহার করে। দেখে মনে হচ্ছে ওজন ভেক্টরটি mulpsলোড থেকে ভাসমান পয়েন্ট ডোমেনে অ্যাকাউন্টে স্যুইচিং ল্যাটেন্সিকে গ্রহণ করার জন্য সময়ের জন্য ব্যবহারের জন্য প্রস্তুত , তাই এটি কোনও অতিরিক্ত বিলম্বিত হওয়া উচিত নয় should

movaps(প্রান্তিককৃত, যা বস্তাবন্দী পদক্ষেপ),addps & mulpsতাই এই কোন অতিরিক্ত লেটেন্সি পারেন বহন করা উচিত নয় নির্দেশাবলী এই কার্নেল ব্যবহার করা হয় (সমাবেশ কোড সহ চেক করা), একই লেটেন্সি & তাদের স্কালে সংস্করণ হিসাবে থ্রুপুট আছে।

এই কার্নেলটি যে সর্বাধিক পারফরম্যান্স পেতে পারে তা চক্রের জন্য 6.4 এফপি অপারেশন এবং এটি চক্র প্রতি 5.6 এফপি অপারেটে চলছে, এমন ধারণা ধরে নিয়ে কারও কারও ধারণা আছে যে যেখানে 8 টি চক্রের অতিরিক্ত এই চক্রটি ব্যয় করা হয়েছে?


এখানে আসল সমাবেশটি দেখতে কেমন তা এখানে রয়েছে:


সুতরাং আমি এখন প্রশ্নটি অনুমান করি: " shufpsনির্দেশনা কেন প্রতি 1.6 পুনরাবৃত্তিতে 1 টি চক্র যুক্ত করে?" এটি একটি শক্ত ...
রহস্যময়

আমি আশা করব যে এটির কোনও ওভারহেড থাকবে না যেহেতু উভয় এফপি ডোমেনটি অপ্টের আউটপুট shufpsসরাসরি পাওয়া উচিতmultps
রিকি

খুঁজে বের করা সহজ। নিশ্চিত করুন যে ওজন ভেক্টরটিতে কোনও অস্বীকৃত মান মান নেই। এলোমেলো নির্দেশ ছাড়াই লুপটি ব্যবহার করে দেখুন। এটি কোনও কার্যকর ফলাফল আনবে না, তবে হতে পারে যে কোনও নির্দেশনা আপনাকে অতিরিক্ত চক্রের জন্য ব্যয় করতে পারে তা আবিষ্কার করুন (অবশ্যই আমি এই পরিবর্তনকে সন্দেহ করি)।
গুন্থার পাইজ

@ মিস্টিকাল: আমি দেখছি প্রতি লুপ পুনরাবৃত্তির পরিমাণ 0.75 চক্র যুক্ত হয়েছে। (এটি কি 4 এর পরিবর্তে 5 টি চক্র ব্যবহার করার বিষয়ে আমার মন্তব্য ছিল না যা আপনাকে সেখানে আপনার উত্তরের দিকে নিয়ে যায় ... :-))
গুন্থার পাইজ

4
একটির জন্য, এখন আপনি 4x ক্যাশে ব্যান্ডউইদথ দাবি করছেন। তথ্য আকার কত বড়? তারা কি L1 ক্যাশে ফিট করে?
রহস্যময়

উত্তর:


3

ভিটুনে ইমন প্রোফাইলিং, বা কোনও সমতুল্য সরঞ্জাম যেমন আফ্রোফ ব্যবহার করে দেখুন

ইমন (ইভেন্ট মনিটরিং) প্রোফাইলিং => সময় ভিত্তিক সরঞ্জামের মতো, তবে এটি আপনাকে বলতে পারে কোন পারফরম্যান্স ইভেন্টটি সমস্যার সৃষ্টি করছে। যদিও, আপনার প্রথমে টাইম ভিত্তিক প্রোফাইলটি শুরু করা উচিত, কোনও নির্দিষ্ট নির্দেশ যে লাফিয়ে চলেছে তা দেখার জন্য। (এবং সম্ভবত সম্পর্কিত ইভেন্টগুলি যা আপনাকে জানায় যে আইপিটিতে কতবার অবসর গ্রহণের স্টল ছিল))

ইমন প্রোফাইলিং ব্যবহার করতে আপনাকে অবশ্যই "সাধারণ সন্দেহভাজন" থেকে শুরু করে ... ইভেন্টের তালিকার মধ্য দিয়ে চলতে হবে ...

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

এটিও সম্ভব হতে পারে এটি একটি সামনের প্রান্ত, নির্দেশিকা আনা, স্টল। যাইহোক, এই নির্দেশাবলী মধ্যে কত বাইট আছে? এটির জন্য ইমন ইভেন্টগুলিও রয়েছে।


নেহালেম ভিটিউন এল 3 ইভেন্টগুলি দেখতে পারে না: এমন মন্তব্যের জবাবে এটি সত্য নয়। আমি মন্তব্য করতে যোগ করা হয়েছে স্টাফ এখানে, কিন্তু মাপসই করা হয়নি:

আসলে, এখানে এলএল 3 / এল 3 so / তথাকথিত আনকোরের জন্য পারফরম্যান্স কাউন্টার রয়েছে। আমি ভীষণ অবাক হব যদি ভিটিউন তাদের সমর্থন না করে। দেখাHttp://software.intel.com/sites/products/collateral/hpc/vtune/performance_analysis_guide.pdfভিটিউন এবং অন্যান্য সরঞ্জাম যেমন পিটিইউতে নির্দেশ করে। আসলে, এমনকি এলএল 3 ইভেন্ট ব্যতীত, যেমন ডেভিড লেভিন্থাল বলেছেন: "ইন্টেল কোর ™ i7 প্রসেসরের একটি" লেটেন্সি ইভেন্ট "রয়েছে যা ইটানিয়াম ® প্রসেসরের ফ্যামিলি ডেটা ইয়ার ইভেন্টের সাথে খুব মিল This এই ইভেন্টের নমুনা লোড করে, সংখ্যার রেকর্ডিং করে নির্দেশের বাস্তবায়ন এবং ডেটা প্রকৃত বিতরণের মধ্যে চক্র MS যদি পরিমাপ করা লেটেন্সিটি এমএসআর 0x3f6 এ প্রোগ্রাম করা ন্যূনতম বিলম্বের চেয়ে বড় হয়, তবে বিট 15: 0 হয়, তবে কাউন্টারটি ওভারফ্লো পিইবিএস প্রক্রিয়াটিকে অস্ত্রোপচার করে এবং পরবর্তীটিতে ইভেন্টটি বিলম্বিত প্রান্তিকতা, পরিমাপের ল্যাটেন্সি, ভার্চুয়াল বা রৈখিক ঠিকানা এবং ডেটা উত্সকে সন্তুষ্ট করে পিইবিএস বাফারটিতে 3 টি অতিরিক্ত রেজিস্টারে অনুলিপি করা হয়েছে Because কারণ ভার্চুয়াল ঠিকানাটি একটি পরিচিত স্থানে ধরা পড়েছে, স্যাম্পলিং ড্রাইভারটি একটি ভার্চুয়ালকে শারীরিক অনুবাদ এবং শারীরিক ঠিকানা ক্যাপচার করতে পারে। শারীরিক ঠিকানাটি NUMA বাড়ির অবস্থান চিহ্নিত করে এবং নীতিগতভাবে ক্যাশে দখলগুলির বিশদ বিশ্লেষণের অনুমতি দেয় "" তিনি পৃষ্ঠা 35-তে, ভি 3 টি ইভেন্ট যেমন L3 CACHE_HIT_UNCORE_HIT এবং L3 CACHE_MISS_REMOTE_DRAM এর দিকেও নির্দেশ করেছেন Sometimes কখনও কখনও আপনাকে সংখ্যাটি সন্ধান করতে হবে কোডগুলি এবং সেগুলিকে ভিটিউনের নিম্ন স্তরের ইন্টারফেসে প্রোগ্রাম করে তবে আমি মনে করি এই ক্ষেত্রে এটি সুন্দর ব্যবহারকারীর ইন্টারফেসে দৃশ্যমান।


ঠিক আছে, http://software.intel.com/en-us/forums/showthread.php?t=77700&o=d&s=lr এ রাশিয়ার একটি ভিটিউন প্রোগ্রামার (আমার মনে হয়) "ব্যাখ্যা করে" যে আপনি আনকোরারে নমুনা দিতে পারবেন না ইভেন্ট।

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

তবে দেখে মনে হচ্ছে এটি সাধারণ হিসাবে, এটি করার জন্য আপনাকে আর ভিউ টিউনকে কাজ করতে হবে, এটির সাথে নয়।

প্রথমে বিলম্বের প্রোফাইলিং চেষ্টা করুন। এটি পুরোপুরি সিপিইউর অভ্যন্তরে, এবং ভিটিউন লোকেরা এটি খুব বেশি গণ্ডগোল করেছে বলে সম্ভাবনা নেই।

এবং, আমি আবার বলছি, সম্ভাবনা হ'ল আপনার সমস্যাটি এল 3 তে নয়, মূল অবস্থানে রয়েছে। সুতরাং ভিটিউন এটি পরিচালনা করতে সক্ষম হওয়া উচিত।


লেভিনথাল প্রতি "সাইকেল অ্যাকাউন্টিং" চেষ্টা করুন।


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

আসলে, এখানে এলএল 3 / এল 3 $ / তথাকথিত আনকোরের জন্য পারফরম্যান্স কাউন্টার রয়েছে। আমি ভীষণ অবাক হব যদি ভিটিউন তাদের সমর্থন না করে। সফটওয়্যার.ইন.টেল.সাইটস
প্রোডাক্টস /collateral/hpc/vtune/…

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

এবং সামগ্রিকভাবে আমি সন্দেহ করি যে আপনার সমস্যা L3 ক্যাশে মিস করে না। সম্ভবত সামনের শেষ ইভেন্ট।
ক্রেজি গ্লিউ

@ ক্রজিগ্লিউ: আপনার অনুমান ঠিক আছে, তিনি রাশিয়ান ফেডারেশনের একজন রাশিয়ান লোক। এখানে লিঙ্কডইন প্রোফাইল হয় - linkedin.com/in/vtsymbal
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.