টিএল: ডিআর : যেহেতু ইন্টেল ভেবেছিল এসএসই / এভিএক্স এফপি যোগসূত্রটি থ্রুপুটের চেয়ে বেশি গুরুত্বপূর্ণ, তারা এটিকে হ্যাসওয়েল / ব্রডওয়েলে এফএমএ ইউনিটে চালিত না করা বেছে নিয়েছিল।
হাসওয়েল এফএমএ ( ফিউজড মাল্টিপ্লি-অ্যাড ) হিসাবে একই এক্সিকিউশন ইউনিটগুলিতে এফপি রান করে (সিমডি) এফপি গুণায় , যার মধ্যে এটি দুটি রয়েছে কারণ কিছু এফপি-নিবিড় কোড বেশিরভাগ এফএমএ ব্যবহার করতে পারে নির্দেশ অনুসারে 2 টি এফএলওপি করতে। এফএমএ হিসাবে একই একই 5 চক্রের mulps
বিলম্ব , এবং পূর্বের সিপিইউগুলিতে (স্যান্ডিব্রিজ / আইভিব্রিজ)। হাসওয়েল ২ টি এফএমএ ইউনিট চেয়েছিল, এবং কোনওটিই বহুগুণে চালিয়ে দেওয়ার কোনও অসুবিধা নেই কারণ তারা আগের সিপিইউগুলিতে উত্সর্গীকৃত গুণিতক ইউনিটের মতো একই বিলম্ব।
কিন্তু এটা আগের সিপিইউ থেকে ডেডিকেটেড SIMD FP অ্যাড ইউনিট রাখে এখনও চালানোর addps
/ addpd
3 চক্র লেটেন্সি সঙ্গে। আমি পড়েছি যে সম্ভাব্য যুক্তিটি কোডটি হতে পারে যা প্রচুর পরিমাণে এফপি যুক্ত করে তবে তার বিন্যাসে বাধা দেয় না থ্রুপুট। এটি কেবলমাত্র একজন (ভেক্টর) সঞ্চালক সহ একটি অ্যারের নিষ্পাপ যোগফলের পক্ষে অবশ্যই সত্য, যেমন আপনি প্রায়শই জিসিসি অটো-ভেক্টরাইজিং থেকে পান। তবে আমি জানি না যে ইন্টেল প্রকাশ্যে নিশ্চিত করেছিল যে এটি ছিল তাদের যুক্তি।
ব্রডওয়েল একই ( তবেmulps
mulpd
এফএমএ 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-াইকেল