কেন ইন্টেলের হাসওয়েল চিপ এফপি গুণকে সংখ্যার চেয়ে দ্বিগুণ গতিতে অনুমতি দেয়?


35

আমি স্ট্যাক ওভারফ্লোতে এই খুব আকর্ষণীয় প্রশ্নটি পড়ছিলাম:

একটি আধুনিক সিপিইউ-র সংযোজনের মতো একই গতিতে কি পূর্ণসংখ্যা গুণ করা যায়?

মন্তব্যগুলির মধ্যে একটি বলেছিল:

"হাসওলে এফপির যোগফলের তুলনায় এফপি মাল্টিপল থ্রুটপুট দ্বিগুণ হয়। এ কারণেই 0 এবং 1 উভয় বন্দরটি গুণনের জন্য ব্যবহার করা যেতে পারে, তবে কেবল পোর্ট 1 যোগের জন্য ব্যবহার করা যেতে পারে That বলেছে, আপনি ফিউজড দিয়ে প্রতারণা করতে পারবেন উভয় বন্দর সেগুলি করতে পারে বলে বহুগুণ যুক্ত করুন "

সংযোজনের তুলনায় তারা কেন দ্বিগুণ একসাথে বহু গুণকে অনুমতি দেবে?


3
আপনাকে ধন্যবাদ @ ডি কে এনগুইয়ান! তবে গুণটি সংযোজনের চেয়ে আরও বেশি পরিমাণে ইলেকট্রনিক্স জড়িত (আসলে সংযোজনটি চূড়ান্ত পদক্ষেপ, সুতরাং গুণণের জন্য যা কিছু সার্কিটরি প্রয়োজন তা যোগ করার জন্য যা কিছু প্রয়োজন তা অন্তর্ভুক্ত করবে), সুতরাং আমি কীভাবে এটি কম ডাই অঞ্চল গ্রহণ করতে পারি তা দেখছি না!
ব্যবহারকারী 1271772

5
এফপি গুণটি হ'ল সংযোজন। লগারিদম দেখুন।
জানকা

9
@ জাঙ্কা এফপি গুণায় এক্সপোনেন্ট যুক্ত করার প্রয়োজন থাকলেও ম্যান্টিসগুলিকে প্রকৃতপক্ষে গুণ করা এখনও প্রয়োজনীয়। সঞ্চিত ম্যান্টিসা কোনও লগারিদম নয়।
এলিয়ট অলডারসন

6
স্কাইলেকে এফডব্লিউআইডাব্লু "খাঁটি সংযোজন" থ্রুপুট দ্বিগুণ হয়েছিল তাই এটি হ্যাসওয়েল / ব্রডওয়েল যুগের কৌতূহল এবং কোনও রকম অন্তর্নিহিত জিনিস নয়।
হ্যারল্ড

4
@ ব্যবহারকারী 1271772 হ্যাঁ, তারা একই পোর্ট যদিও: 0 এবং 1 বন্দরগুলিতে যোগ করুন এবং 0 এবং 1 বন্দরগুলিতেও গুণক Before স্কাইলেকের আগে কেবল পোর্ট 1 শুদ্ধ সংযোজন পরিচালনা করতে পারে। এটি কিছু সংযোজন-মতো অপারেশনগুলিতেও প্রসারিত হয় যথা: মিনি / ম্যাক্স / আসল রূপান্তর করে এমন এক রূপান্তরের শীর্ষের তুলনা করুন (সেখানেও প্রায়শই কোনও রদবদল বা ভার থাকে is)
হেরোলেড

উত্তর:


37

এটি সম্ভবত প্রশ্নের শিরোনামের জবাব দেয়, শরীর না হলে:

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

ওপিতে যুক্ত করা হয়েছে: নোট করুন যে 2 মিলিমিটার এবং 2 কিলোমিটার দৈর্ঘ্য যোগ করা কোনও ইউনিটের 4 নয়। এটি যুক্ত হওয়ার আগে এক বা অন্য পরিমাপকে একই স্কেল বা ইউনিটের উপস্থাপনায় রূপান্তর করার প্রয়োজনের কারণেই। সেই রূপান্তরটির মূলত 10 টির শক্তি দ্বারা গুণন প্রয়োজন requires একই জিনিসটি সাধারণত ফ্লোটিং পয়েন্ট সংযোজন করার সময় ঘটে থাকে কারণ ভাসমান পয়েন্ট সংখ্যাগুলি ভেরিয়েবল স্কেলড ইন্টিজারের একটি রূপ (যেমন একটি ইউনিট বা স্কেল ফ্যাক্টর, একটি এক্সপোঞ্জার, এর সাথে যুক্ত) প্রতিটি সংখ্যা)। সুতরাং একই ইউনিট বা স্কেল উভয়কে উপস্থাপন করার জন্য আপনাকে কাঁচা ম্যান্টিসা বিট যুক্ত করার আগে 2 টির পাওয়ার দ্বারা একটি সংখ্যার স্কেল করতে হতে পারে। এই স্কেলিংটি মূলত ২. পাওয়ার দ্বারা গুণনের একটি সাধারণ রূপ form সুতরাং, ভাসমান পয়েন্ট সংযোজনকে গুণ করা প্রয়োজন(যা, 2 পাওয়ার হিসাবে, একটি ভেরিয়েবল বিট শিফট বা ব্যারেল শিফটার দিয়ে সম্পন্ন করা যেতে পারে, যার জন্য ট্রানজিস্টর আকারগুলির তুলনায় তুলনামূলকভাবে দীর্ঘ তারের প্রয়োজন হতে পারে, যা গভীর সাব-মাইক্রন-লিথোগ্রাফি সার্কিটগুলিতে তুলনামূলকভাবে ধীর হতে পারে))। যদি দুটি সংখ্যাটি বেশিরভাগ বাতিল হয় (কারণ একটি অন্যটির প্রায় নেতিবাচক) তবে তারপরে ফলাফলটি যথাযথভাবে ফর্ম্যাট করার জন্য সংযোজনটির ফলাফল পুনরুদ্ধার করার প্রয়োজন হতে পারে। সংখ্যার বিন্যাসের প্রকৃতির (আইইইই ভাসমান পয়েন্ট) প্রকৃতির কারণে সমতুল্য ইউনিট বা স্কেল উপস্থাপন করে কাঁচা স্থির (সসীম) সংখ্যার মাইন্টিসা বিটের বাইনারি সংযোজনকে ঘিরে 2 গুণ (পূর্বে এবং পোস্ট) পদক্ষেপের প্রয়োজন হলে সংযোজনটি ধীর হতে পারে )।

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


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে । পৌঁছে যাওয়া যে কোনও সিদ্ধান্তে আবার প্রশ্ন এবং / অথবা কোনও উত্তর (গুলি) এর মধ্যে সম্পাদনা করা উচিত।
ডেভ টুইট করেছেন

3
আমি বিএস কল করছি। অবশ্যই কোনও এফপি মাল্টিপল অপারেশনে আসল গুণটি দুটি ব্যারেল শিফ্টের চেয়ে শক্ত হতে পারে না।
ব্যবহারকারী 253751

5
"শক্ত", সম্ভাব্য দ্রুত এবং উন্নততর, প্রকল্পের সীমাবদ্ধতা এবং লক্ষ্যগুলি দেওয়া 4 টি আলাদা জিনিস।
hotpaw2

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

22

এফপি গুণায়, এক্সপোনেন্ট প্রসেসিংটি সাধারণ সংযোজন হিসাবে রূপান্তরিত হয় (ঠিক একই কারণে লগ ডোমেনে গুণটি কেবল সংযোজন)। আপনি লোগারিদম জুড়ে এসেছেন, আমি আশা করি।

এখন বিবেচনা করুন লোগারিথমিক আকারে দুটি সংখ্যা যুক্ত করা কতটা কঠিন ...

ফ্লোটিং পয়েন্ট উভয় দিকের সাথে লিনিয়ার এবং লগ ডোমেনগুলির মধ্যে একটি ধূসর অঞ্চল বাস করে। প্রতিটি এফপি সংখ্যায় একটি ম্যান্টিসা (যা লিনিয়ার) এবং একটি (লোগারিথমিক) এক্সপোনেন্ট থাকে। ম্যান্টিসার প্রতিটি বিটের অর্থ নির্ধারণ করতে, আপনাকে প্রথমে খাঁটিটি দেখতে হবে (যা কেবলমাত্র একটি স্কেল ফ্যাক্টর)।

এফপি সংযোজন, সাধারণ ক্ষেত্রে এক্সপোশন প্রক্রিয়াজাতকরণের জন্য, ব্যারেলটি দু'বার ম্যান্টিসা স্থানান্তরিত করতে হবে, যেখানে প্রতিটি ব্যারেল শিফট কার্যকরভাবে কিছুটা সরলিকৃত গুণকের একটি বিশেষ ক্ষেত্রে।

(প্রথম শিফট উভয় ইনপুটগুলিকে একই পাওয়ার 2 এর সাথে সামঞ্জস্য করে, যাতে একটি ম্যান্টিসার বিট প্রতিটি অপরেন্ডে একই বাইনারি ওজন ধারণ করে।

একটি দশমিক উদাহরণ যথেষ্ট হবে (যদিও বাইনারি স্পষ্টভাবে ব্যবহৃত হয়) ...

(3103)+ +(110-1)=(3103)+ +(0.0001103)

দ্বিতীয়টি আউটপুটটিকে আবার স্কেল করে ...

1100+ +(-0,999100)=0.001100=110-3

সুতরাং বিদ্বেষের সাথে, একটি এফপি সংযোজন দুটি গুনের মতো খুব কিছু জড়িত যা তাদের মধ্যে ম্যান্টিসার সংযোজন সহ ক্রমান্বয়ে সম্পাদন করতে হয়। সেই আলোকে, রিপোর্ট করা পারফরম্যান্স এত আশ্চর্যজনক নয়।


8
"লগারিদমিক আকারে দুটি সংখ্যা যুক্ত করা কতটা কঠিন তা বিবেচনা করুন" বেশ আলোকিত ছিল।
পিটার - মনিকা পুনরায় ইনস্টল করুন

1
যদিও ভাগ্যক্রমে, ভাসমান পয়েন্ট এক্সপোশনগুলি কেবল পূর্ণসংখ্যা হয়, সুতরাং আপনাকে 1.3 + 2.3 = 2.34 এর মতো কিছু যুক্ত করতে হবে না, এটি কেবল ম্যান্টিসাসের স্থানান্তর।
ইলকচাচু

1
প্রতি চক্রের জন্য দুটি গুণক করার কারণটি হ'ল দুটি গুণক একক রয়েছে, কারণ এটি নয় যে বহুগুণ ইউনিট সংযোজন ইউনিটের চেয়ে দ্রুত (পিজেসি 50 এর উত্তরে ডায়াগ্রাম দেখুন)। একটি অতিরিক্ত ইউনিট কেন একটি বহুগুণ ইউনিটের চেয়ে ধীর বলে আপনি ব্যাখ্যা করে আপনি এই প্রশ্নের উত্তর দিতে পারবেন না। তদ্ব্যতীত, অন্য উত্তরগুলি এখনও পর্যন্ত বলেছে যে সংযোজন ইউনিটের কম বিলম্ব রয়েছে, যা বোঝায় যে সংযোজনটি সহজ কাজ।
ব্যবহারকারী 253751

2
@ মিমিবিস: আপনার পর্যবেক্ষণটি সঠিক। তবে প্রশ্নটি "এটি কেন হয়? এমপিপির চেয়ে সংযোজন এত সহজ / সস্তা যে কেন দুটি সংযোজন ইউনিট নেই কেন?" এর ধারায় রয়েছে। " উত্তরের অংশটি হ'ল, "এফপিতে, এটি সত্যিই সহজ নয়" rest বাকী অর্থনীতির দিকে নেমে আসে: প্রকৃত ব্যয় এবং প্রত্যাশিত কাজের চাপের অনেক গবেষণা করে, দ্বিতীয় সংযোজনকারী তার স্থানটিকে ন্যায়সঙ্গত করেনি didn't সিলিকন। আমি অন্য উত্তরগুলি সেই অংশে প্রসারিত করতে রেখে দেব।
ব্রায়ান ড্রামমন্ড

কিছু কম্পিউটার বিজ্ঞানী (যেমন কাহান (আইইইই EE৫ এফপির স্থপতি) এবং নুথ যুক্তি দিয়েছেন যে "ম্যান্টিসা" ভুল শব্দ কারণ এটি লিনিয়ার ( লোগারিথমিক নয়)। পছন্দের আধুনিক শব্দটি তাত্পর্যপূর্ণ। en.wikedia.org/wiki/Significand#Use_of_%22mantissa%22 । যদিও "ম্যান্টিসা" হ'ল একটি শীতল চেহারার শব্দ, যদিও কম সিলেবল রয়েছে।
পিটার কর্ডেস

16

টিএল: ডিআর : যেহেতু ইন্টেল ভেবেছিল এসএসই / এভিএক্স এফপি যোগসূত্রটি থ্রুপুটের চেয়ে বেশি গুরুত্বপূর্ণ, তারা এটিকে হ্যাসওয়েল / ব্রডওয়েলে এফএমএ ইউনিটে চালিত না করা বেছে নিয়েছিল।


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

কিন্তু এটা আগের সিপিইউ থেকে ডেডিকেটেড SIMD FP অ্যাড ইউনিট রাখে এখনও চালানোর addps/ addpd3 চক্র লেটেন্সি সঙ্গে। আমি পড়েছি যে সম্ভাব্য যুক্তিটি কোডটি হতে পারে যা প্রচুর পরিমাণে এফপি যুক্ত করে তবে তার বিন্যাসে বাধা দেয় না থ্রুপুট। এটি কেবলমাত্র একজন (ভেক্টর) সঞ্চালক সহ একটি অ্যারের নিষ্পাপ যোগফলের পক্ষে অবশ্যই সত্য, যেমন আপনি প্রায়শই জিসিসি অটো-ভেক্টরাইজিং থেকে পান। তবে আমি জানি না যে ইন্টেল প্রকাশ্যে নিশ্চিত করেছিল যে এটি ছিল তাদের যুক্তি।

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

স্কাইলেকে সমস্ত কিছু এফপি (সংযোজন সহ) এফএমএ ইউনিটে 4 চক্রের বিলম্ব এবং 0.5c থ্রুটপুট সহ চলে, অবশ্যই ডিভ / স্কয়ার্ট এবং বিটওয়াইস বুলিয়ানগুলি (যেমন নিখুঁত মান বা প্রত্যাখ্যানের জন্য)। ইন্টেল স্পষ্টতই সিদ্ধান্ত নিয়েছে যে লোয়ার-লেটেন্সি এফপি যুক্ত করার জন্য এটি অতিরিক্ত সিলিকনের মূল্য নয় বা ভারসাম্যহীন addpsথ্রুপুট সমস্যাযুক্ত। এবং প্রমিতকরণকে প্রমিতকরণের ফলে লেখার পিছনে বিবাদগুলি এড়ানো (যখন 2 টি ফলাফল একই চক্রের জন্য প্রস্তুত থাকে) উওপ শিডিয়ুলিং এড়ানো সহজ করে তোলে। অর্থসূচী এবং / অথবা সমাপ্তি পোর্টগুলি সহজ করে।

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

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

এসকেএক্স 512-বিট উওসগুলি যখন ফ্লাইটে থাকে তখন 1 টি সিমডি ALU গুলি বন্দরটি বন্ধ করে দেয় তবে এটি vaddps xmm/ymm/zmmযে কোনও সময়ে কার্যকর করার জন্য একটি উপায় প্রয়োজন । এটি পোর্ট 1 এ একটি ডেডিকেটেড এফপি এডিডি ইউনিট তৈরি করতে সমস্যা তৈরি করেছে এবং বিদ্যমান কোডটির কার্য সম্পাদন থেকে পরিবর্তনের জন্য এটি একটি পৃথক প্রেরণা।

মজাদার ঘটনা: স্কাইলেক, কাবিলেক, কফি লেক এবং এমনকি ক্যাসকেড লেক থেকে শুরু করে সমস্ত কিছুই স্কাইলেকে মাইক্রোআরকিটেকচারালভাবে অভিন্ন ছিল, ক্যাসকেড লেক ব্যতীত কিছু নতুন এভিএক্স 512 নির্দেশনা যুক্ত করেছে। আইপিসি অন্যথায় পরিবর্তন হয়নি। যদিও নতুন সিপিইউতে আরও ভাল আইজিপিইউ রয়েছে। আইস লেক (সানি কোভ মাইক্রোর্কিটেকচার) বেশ কয়েক বছরে প্রথমবারের মতো আমরা একটি সত্যিকারের নতুন মাইক্রোআরকিটেকচার দেখেছি (কখনও প্রকাশিত-প্রকাশিত ক্যানন লেক বাদে)।


এফএমইউএল ইউনিট বনাম একটি এফএডিডি ইউনিটের জটিলতার উপর ভিত্তি করে যুক্তিগুলি আকর্ষণীয় তবে এই ক্ষেত্রে প্রাসঙ্গিক নয় । একটি এফএমএ ইউনিট এফএমএ 1 এর অংশ হিসাবে এফপি সংযোজন করতে সমস্ত প্রয়োজনীয় শিফটিং হার্ডওয়্যার অন্তর্ভুক্ত করে ।

দ্রষ্টব্য: আমি x87 fmulনির্দেশের অর্থ বোঝাতে চাইছি না , আমার অর্থ একটি এসএসই / এভিএক্স সিমডি / স্কেলার এফপি গুণিত ALU যা 32-বিট একক-নির্ভুলতা / floatএবং 64-বিট doubleনির্ভুলতা সমর্থন করে (53-বিট হিন্ফ্যান্ড এবং ওরফে মন্টিসা)। যেমন mulpsবা মত নির্দেশাবলী mulsd। আসল 80-বিট x87 fmulএখনও 0 পোর্টে হাসওলে কেবল 1 / ঘড়ি থ্রুটপুট।

আধুনিক সিপিইউগুলিতে এটির জন্য উপযুক্ত ট্রানজিস্টর ছাড়াও যথেষ্ট পরিমাণে ট্রানজিস্টর রয়েছে এবং যখন এটি শারীরিক-দূরত্ব প্রচারে বিলম্বের সমস্যা সৃষ্টি করে না। বিশেষত মৃত্যুদন্ডের ইউনিটগুলির জন্য যা কেবলমাত্র কিছু সময় সক্রিয় থাকে। দেখুন https://en.wikipedia.org/wiki/Dark_silicon এবং এই 2011 সম্মেলনে কাগজ: ডার্ক সিলিকন এবং মাল্টিকোর স্কেলিং সমাপ্তি। এটিই সিপিইউগুলির পক্ষে বিশাল এফপিইউ থ্রুটপুট, এবং বৃহত্তর পূর্ণসংখ্যার থ্রুটপুট তৈরি করা সম্ভব করে, তবে একই সাথে উভয়ই নয় (কারণ those বিভিন্ন নির্বাহী ইউনিট একই প্রেরণ পোর্টগুলিতে থাকে তাই তারা একে অপরের সাথে প্রতিযোগিতা করে)। অনেক সাবধানে-সুরযুক্ত কোড যা মেম ব্যান্ডউইদথের সাথে বাধা দেয় না, এটি ব্যাক-এন্ড এক্সিকিউশন ইউনিট নয় যা সীমাবদ্ধ ফ্যাক্টর, বরং পরিবর্তে সামনের দিকের নির্দেশনা থ্রুটপুট। ( প্রশস্ত কোর খুব ব্যয়বহুল )। Http://www.litterra.com/papers/modernmicroprocessors/ এও দেখুন ।


হাসওলের আগে

এইচএসডাব্লু এর আগে , নেহালেম এবং স্যান্ডিব্রিজের মতো ইন্টেল সিপিইউগুলিতে 0 পোর্টে সিমডি এফপি এবং 1 পোর্টে সিমডি এফপি যুক্ত ছিল। সুতরাং পৃথক এক্সিকিউশন ইউনিট ছিল এবং থ্রুপুট ভারসাম্যপূর্ণ ছিল। ( https://stackoverflow.com/questions/8389648/how-do-i-achieve-the-theoreical-maximum-of-4-flops-per-াইকেল

হাসওয়েল এন্টেল সিপিইউতে এফএমএ সমর্থন প্রবর্তন করেছে (এএমডি বুলডোজারে এফএমএ 4 চালু করার কয়েক বছর পরে, ইন্টেল এটিকে জনসাধারণ্যে জানাতে পারে যে তারা 3-অপারেন্ড এফএমএ বাস্তবায়ন করছে, 4-অপারেন্ড নয় -ডেসট্রাকটিভ-গন্তব্য এফএমএ 4)। মজার ঘটনা: এএমডি পাইলড্রাইভার এখনও জুন 2013 সালে হাসওয়ের এক বছর আগে এফএমএ 3 এর সাথে প্রথম x86 সিপিইউ ছিল

এর জন্য 3 টি ইনপুট সহ একটি একক উওপকে সমর্থন করতে ইন্টার্নালদের কিছু বড় হ্যাকিংয়ের প্রয়োজন ছিল। তবে যাইহোক, ইন্টেল সর্বদা প্রবেশ করল এবং সদা সঙ্কুচিত ট্রানজিস্টরের সুবিধা নিয়ে দুটি 256-বিট সিমড এফএমএ ইউনিট স্থাপন করেছিল, হাসওয়ালকে (এবং এর উত্তরসূরীদের) এফপি গণিতের জন্য জন্তু তৈরি করেছিল।

পারফরম্যান্স টার্গেট ইন্টেলের মনে থাকতে পারে এটি ছিল BLAS ঘন ম্যাটমুল এবং ভেক্টর ডট পণ্য product যারা উভয় বেশিরভাগই FMA ব্যবহার করতে পারেন হবে না এবং শুধু যোগ করুন।

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


পাদটীকা 1 : এবং এর গুণক সহ 1.0, এফএমএ আক্ষরিকভাবে সংযোজনের জন্য ব্যবহার করা যেতে পারে তবে কোনও addpsনির্দেশের চেয়ে আরও খারাপ লেটেন্সি সহ । এটি L1d ক্যাশে গরম এমন একটি অ্যারের সংশ্লেষের মতো কাজের চাপের জন্য সম্ভবত কার্যকর, যেখানে এফপি লেটেন্সি ছাড়াই থ্রুপুট বিষয়গুলি যুক্ত করে। এটি কেবল তখনই সহায়তা করে যদি আপনি একাধিক ভেক্টর আহরণকারীগুলিকে অবশ্যই প্রচ্ছন্নতা আড়াল করতে এবং এফপি এক্সিকিউশন ইউনিটগুলিতে 10 টি এফএমএ ক্রিয়াকলাপ চালিয়ে যান (5c ল্যাটেন্সি / 0.5c থ্রুটপুট = 10 অপারেশন ল্যাটেন্সি * ব্যান্ডউইথ পণ্য)। ভেক্টর ডট পণ্যটির জন্যও এফএমএ ব্যবহার করার সময় আপনাকে এটি করতে হবে

দেখুন ডেভিড Kanter এর Sandybridge microarchitecture আপ লেখার যা ব্লক ডায়াগ্রাম যার EUS NHM, SnB জন্য যা পোর্টে হয় আছে, এবং এএমডির বুলডোজার পরিবার। ( অ্যাগনার ফগের নির্দেশাবলী সারণী এবং এসএমএস অপ্টিমাইজেশন মাইক্রোয়ার্ক গাইড এবং এছাড়াও https://uops.info/ দেখুন যা ইনপেল মাইক্রোআরকিটেকচারের বহু প্রজন্মের প্রায় প্রতিটি নির্দেশের উওপস, বন্দর এবং লেটেন্সি / থ্রুপুট পরীক্ষামূলকভাবে পরীক্ষা করে)

এছাড়াও সম্পর্কিত: https://stackoverflow.com/questions/8389648/how-do-i-achieve-theoretical-maximum-of-4-flops-per-াইকেল


1
যদি আপনি কিনা এই আমার জন্য শব্দ গ্রহণ সম্পর্কে হতাশ করছেন যারা স্ট্যাক ওভারফ্লো উপর, আমি অন্তর্গত স্বর্ণ ব্যাজ আছে [cpu-architecture], [performance], [x86-64], [assembly], এবং [sse]হাতের লিখিত সমাবেশের চেয়ে কোলাটজ অনুমানটি দ্রুত পরীক্ষার জন্য আমি সি ++ কোডে একটি উত্তর লিখেছি - কেন? যা অনেক লোকই ভাল বলে মনে করে। এছাড়াও এটি OoO পাইপলাইনযুক্ত কার্যকর করা সম্পর্কে।
পিটার কর্ডস

"বিডিডাব্লু বেশিরভাগ পরিবর্তনগুলি নাবালক হওয়ায় বেশিরভাগ এইচএসডাব্লু ডাই-সঙ্কুচিত হয়" " এটিকে শব্দ করার মতো করে তোলে তারা সম্ভবত আর্থিক কারণে কোনও কারণে প্রথমে ঘুরে দেখে কিছু অপ্টিমাইজেশন পূর্বাবস্থায় ফিরে যায়।
jpaugh

2
@jpaugh: দেখুন en.wikipedia.org/wiki/Tick%E2%80%93tock_model - প্রায় 2006 থেকে ইন্টেলের পরিকল্পনা (যতক্ষণ না তারা 10nm একটি রোডব্লক-এ আঘাত) ছোটখাট অন্যান্য পরিবর্তন সহ একটি নতুন প্রক্রিয়া ডাই-সঙ্কুচিত ছিল, তারপরে নতুন স্থাপত্য ইতিমধ্যে পরীক্ষিত প্রক্রিয়া। মনে রাখবেন যে কয়েক বছরের জন্য ভবিষ্যতে বিমানের বহু ডিজাইনের বিকাশ পাইপলাইনে রয়েছে: পরেরটি শুরু করার আগে তারা একটিও শেষ করে না। স্ক্রাইলকে "টোক" দেওয়ার আগে ব্রডওয়েলের সর্বদা কেবল "টিক" হওয়ার ইচ্ছা ছিল যা তাদের 14nm উত্পাদন প্রক্রিয়াটির পুরো সুবিধা নিয়েছিল এবং প্রক্রিয়াটি ডিবাগ করার বিষয়ে চিন্তা করতে হবে না, কেবল নকশা
পিটার কর্ডেস

আমি লিঙ্কটি প্রশংসা করি। আপনি মূলত আমার অনুভূতি প্রতিধ্বনিত করেছেন, যদিও আমি জড়ো করতে পারিনি তার চেয়ে অনেক বেশি নির্ভুলতার সাথে।
jpaugh

8

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

কেন তারা সেভাবে এটি ডিজাইন করেছিল? উত্তরটি হ'ল চশমাগুলি নির্দিষ্ট লক্ষ্য পূরণে তৈরি করা হয়। এই লক্ষ্যগুলির মধ্যে রয়েছে কর্মক্ষমতা এবং ব্যয়। পারফরম্যান্স অপারেশনগুলির দিকে নয়, ক্রাইসিসে FLOPS বা FPS এর মতো একটি মানদণ্ড like
এই মানদণ্ডগুলিতে ফাংশনগুলির মিশ্রণ থাকবে, এর মধ্যে কিছুগুলির একই সময়ে প্রক্রিয়া করা যেতে পারে।
যদি ডিজাইনাররা যদি দেখেন যে উইজেটের বি এর দুটি ফাংশন থাকার ফলে এটি উইজেট বি এর দুটি ফাংশনের চেয়ে আরও দ্রুত করে তোলে, তবে তারা উইজেট এ নিয়ে যাবে এবং এ এর ​​দুটি এবং বি এর দুটি বাস্তবায়নের জন্য আরও বেশি ব্যয় হবে।

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


আরও প্রাসঙ্গিক পারফরম্যান্স লক্ষ্য হতে পারে BLAS ঘন ম্যাটমুল এবং ভেক্টর ডট পণ্য। এগুলির উভয়ই বেশিরভাগ এফএমএ ব্যবহার করতে পারে এবং কেবল অ্যাডের দরকার নেই।
পিটার কর্ডস

আমি কোনও পণ্যের বাক্সে BLAS ঘন ম্যাটমুল এবং ভেক্টর ডট পণ্যটি কখনও দেখিনি। বিজ্ঞাপনে এগুলি দেখা যায় না। এগুলি কোনও পণ্য পর্যালোচনায় দেখা যায় না। (নিশ্চিত যে সেগুলি গুরুত্বপূর্ণ, তবে প্রকৌশল পরিচালনা অনুসরণ করে, পরিচালনা বিপণন অনুসরণ করে, বিপণন বিক্রয় অনুসরণ করে
Sa বিক্রয়গুলি

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

6

ইন্টেলের এই চিত্রটি সাহায্য করতে পারে:

হাসওয়েল এক্সিকিউশন ইউনিট ওভারভিউ

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

প্রশ্নে কেন প্রসেসর benchmarks একটি সেট, প্রকৃত ব্যবহারের ক্ষেত্রে থেকে উদ্ভূত লক্ষ্য করে হবে: অভ্যন্তরীণ নকশা rationales ছাড়া অনেক উত্তর কঠিন, কিন্তু রক্তবর্ণ বক্স-এর লেখাটি আমাদেরকে "ডাবলস শিখর flops" সঙ্গে একটি ইঙ্গিত দেয়। এফএমএ এগুলিতে খুব জনপ্রিয় কারণ এটি ম্যাট্রিক্সের গুণনের প্রাথমিক একক। বিরল সংযোজন কম জনপ্রিয়।

আপনি যেমনটি উল্লেখ করেছেন, উভয় বন্দর ব্যবহার করতে পারেন একটি এফএমএ নির্দেশ দিয়ে যেখানে গুণক প্যারামিটারটি 1, কম্পিউটিং (A x 1) + বি। এটি একটি খালি সংযোজনের তুলনায় কিছুটা ধীর হবে।


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

আরও বিশদ সহ একটি উত্তর পোস্ট ।
পিটার কর্ডস

4

আসুন সময় গ্রহণকারী পদক্ষেপগুলি একবার দেখুন:

সংযোজন: ক্ষয়কারীদের সারিবদ্ধ করুন (একটি বিশাল শিফট অপারেশন হতে পারে)। এক 53 বিট সংযোজক। সাধারণকরণ (53 বিট পর্যন্ত)

গুণ: একটি বিশাল সংযোজনকারী নেটওয়ার্ক দুটি 106 বিট সংখ্যার যোগফলে 53 x 53 এক বিট পণ্য হ্রাস করতে। এক 106 বিট সংযোজক। নিয়মমাফিককরণ। আমি বলব বিট পণ্যগুলি দুটি সংখ্যায় হ্রাস করা চূড়ান্ত অ্যাড্রেয়ারের মতো দ্রুত করা যায়।

যদি আপনি গুণকে পরিবর্তনশীল সময় করতে পারেন তবে আপনার সুবিধা রয়েছে যে স্বাভাবিককরণ কেবলমাত্র বেশিরভাগ সময় এক বিট বদলে যায় এবং আপনি অন্যান্য কেসগুলি খুব তাড়াতাড়ি সনাক্ত করতে পারেন (অস্বীকৃত ইনপুট, বা এক্সপোশনগুলির পরিমাণ খুব ছোট)।

অতিরিক্ত হিসাবে, স্বাভাবিককরণের পদক্ষেপগুলির প্রয়োজন খুব সাধারণ (সমান আকারের নয় এমন সংখ্যার যোগ করা, সংখ্যার নিকটবর্তী বিয়োগ)। সুতরাং গুনের জন্য আপনি দ্রুত গতিতে পথ চালাতে এবং ধীর পথের জন্য প্রচুর আঘাত নিতে পারবেন; অতিরিক্ত জন্য আপনি পারবেন না।

গীত। মন্তব্যগুলি পড়া: এটি বোঝায় যে অস্বীকৃতিযুক্ত সংখ্যাগুলি যোগ করানো কোনও জরিমানার কারণ নয়: এটির অর্থ কেবলমাত্র বিটগুলির মধ্যে যেগুলি ক্ষতিকারকদের সারিবদ্ধ করার জন্য স্থানান্তরিত হয়, তাদের মধ্যে অনেকগুলি শূন্য হয়। এবং অস্বীকৃত ফলাফলের অর্থ হ'ল আপনি যদি জিরোগুলিকে খুব ছোট করে তোলে তবে নেতৃস্থানীয় জিরোগুলি সরিয়ে নিতে আপনি স্থানান্তর বন্ধ করবেন।


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

Agner এর দশকে microarch নির্দেশিকা তিনি সেখানে বলেছেন সবসময় একটি পেনাল্টি যখন স্বাভাবিক ইনপুট সঙ্গে অপারেশন একটি উপাভিলম্ব আউটপুট উত্পাদন। তবে একটি সাধারণ + সাবমনরমাল যুক্ত করার জন্য কোনও দণ্ড নেই। সুতরাং সংক্ষিপ্তসার পর্যালোচনাটি ভুল হতে পারে, বা এর দিক নির্দেশিকা ভুল। অগ্নার বলেছেন নাইটস ল্যান্ডিংয়ের (জিয়ন পিআই) মুল / অ্যাডের কোনও subnormals এর জন্য কোনও জরিমানা নেই, কেবল বিভাজন। তবে কেএনএলে মূলধারার হাসওয়েল (5 সি) / এসকেএল (4 সি) এর চেয়ে বেশি বিলম্বিত অ্যাড / মুল / এফএমএ (6 সি) রয়েছে। মজার বিষয় হল, এএমডি রাইজেনের বুলডোজার-পরিবারের পক্ষে কয়েকটি চক্রের বিপরীতে একটি বড় জরিমানা রয়েছে।
পিটার কর্ডেস

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