درود:
خوب سعادت از بنده نبوده كه شمارو بشناسيم
اول از همه شما بحث قدرت محاسباتي fp رو وسط كشيديد و اونهارو با هم مقايسه كرديد .بحث shader op جداست و اصلا به نحوه محاسبه قدرت محاسباتي fp ربطي نداره
و اين نشون ميده كه متاسفانه براي توجيح از يك شاخه به شاخه ديگه اي پريديد(اونجا زنوس به وضوح قوي تره و شما بنا به سياستت اصلا بحث shader ops ةارو وسط نكشيدي :دي).شما از اول بنا رو بر محاسبه نقاط شناور گذاشتي.اميدوارم در ادامه بحث ديگه جاده خاكي نريد و روي مسير مستقيم بحث رو ادامه بديد.من از اين شاخه به اون شاخه پردين متنفرم. :دي
اما توضيحاتي در مورد alu/sfu ها:
.دقت كنيد در ارايش 5wide vector ما در هر processor برابر 5 تا alu32bit داريم كه هركدوم ميتونن تا دو دستورالعمل رو در هر سيكل انجام بدن به وضوح در اينجا گفته:
processors is composed of a 5-wide vector unit (total 5 FP32 ALUs) that can serially execute up to two instructions per cycle
پس ميبينيد تا اينجا بين 5 ALU موجود تفاوتي نيست (بعدا در مورد تفاوت خدمتتون ميگم كه چرا يكي از ALU ها در انجام عمليات Shader operation دخيل نيست :دي)
دقت كنيد اينجا هنوز حرفي از انجام عمليات هايي كه توسط FFU ها به هسته ها ارجاع ميشه زده نشده(مثل انجام عمليات هاي shader operation كه بايد توسط ffu مربوط به اون به core ها ارسال بشه) اما توان خام محاسباتي GPU رو بايد در نظر بگيريم كه به اين صورت محاسبه ميشه:
48processor *10ops/cycle * 500mhz=240gflops
اين فرمول حتي براي جديد ترين محصولات AMD هم به همين صورته:
طبق فرمول بالا برای 4870 داریم: 4870 از 800 واحد SP تشکیل شده وبرای بدست اوردن SIMD باید بر تعداد ALU/SFU که برای SIMD های VLIW5 برابر 5 تا هست ما 160 هسته 5wide vector بدست میاریم:
محاسبه:
750mhz * 160 * 10 = 1200 Gflops
پس دیدیم برای 4870 ما 1.2Tera flops بدست اوردیم.
حالا بیاید برای 5870 هم محاسبه کنیم
محاسبه قدرت پردازشی hd 5870
در 5870 یا همون cypress ما 1600 واحد پردازشی sp یا ALU/SFU هارو داریم.پس با تقسیم بر 5 عدد 320 واحد SIMD رو بدست میاریم.فرکانس هسته هم 850 هست و طبق متد VLIW5 مثل 4870 در هر سیکل 10 عمل fp ضرب یا جمع رو انجام میده.(5 عمل MAD 32 bit رو انجام میده که هر MAD خود از ADD+MUL یعنی 2 عمل ضرب و جمع تشکیل شده پس ضرب در 2 میشود)
طبق فرمول گفته شده:
Stream Cores number * ops * frequncy = GFLOPS
320 * 10 * 850 = 2.72 Tflops
این قدرت 5870 در محاسبه single precision یعنی fp 32 اما برای fp 64 داریم:
320 * 2 * 850 = 544 Gflops
اين يك تز نيست بلكه يك يك حقيقت درمورد توان محاسباتي تراشه هاي amd هست.
اما در مورد shader operation :
پسر issue كجاست؟اصلا اعمال ffu ربطي به EU ها يا Execution unit h ها ندارن :دي
اين فرض كاملا غلطه دوست من واحد هاي ISSUE اصلا در FFU قرار دارن و ربطي به واحد هاي محاسباتي ALU ندارن.براتون بيشتر توضيح ميدم
دوست من همونطور كه خدمتتون گفتم اون alu هم دقيقا مثل alu هاي ديگر توان محاسباتي مشابهي داره(بالا بهش اشاره شد) دقيقا كار اونها رو انجام ميده + عمليات محاسبات خاص كه به اونها special function ميگن و اين alu ها كه بهشون SFU هم ميگن از XENOS تا همين نسل CYPRESS يعني 5870 هم به كار ميرفتن:
براي اينكه بيشتر اشنا بشيد و بدونيد SFU ها چي هستن به شكل زير كه نحوه قرار گيري alu ها درون processor يا stream core رو نشون ميده دقت كنيد:
SFU دقيقا براي انجام محاسبات خاص هست و در كنار ALU ها علاوه بر انجام 32BIT FP كه براي محاسبه توان محاسباتي به كار ميرفت ميتونه توابع خاص مثل SIN و logaritm و .. انجام بده.
اما چرا sfu در محاسبات shader opeartion شركت نميكنه؟ATI اون زمان در زمان طراحي هميشه يك SFU رو براي انجام عمليات هاي غير جبر در كنار ديگر ALU ها در نظر ميگره كه كار انجام SIN, COS, LOG, etc رو انجام بدن به همين خاطر در بخش FFU خط لوله هاي ارجاع SHADER OPS تنها به 4 ALU عادي سپرده ميشدن.
تفاوت كلي sfu با alu در اضافه بودن يك sfu در كنار fp/int processor هست:براي درك بهتر:
اين شكل كلي يك ALU براي براي AMD هست:
اينم براي sfu :
در واقع SFU ميتواند تمام اعمال ALU هارو انجام بده + transcendental ops ها به همين خاطر amd اين واحد رو به ffp مربوط به shader ops متصل نكرده براي همين هست كه 3 تا pipline مربوط به ffu براي انجام shader ops به 4 تا alu ميسپرده و براي transcendental ها هم SFU رو كنار ميگذاره.
خوب اميدوارم متوجه شده باشيد كه SFU ها دقيقا همون ALU ها هستن كه توانايي انجام Special function ها و transcendental ops هارو دارن اما به طور مستقيم به FFP هايي مثل Shader pipline براي انجام shader ops ها متصل نيست.
درمورد issue هم بايد بگم اين واحد در بخش ffu ها هست و اصلا ربطي به alu نداره براي allocating data براي alu ها هست مثل
اين براي gt200b :دي
خوب ديديد كه كاملا اشتباه هست و اصلا ربطي به پخش كننده نداره اون پخش كننده اصلا در بخش ffu هستن و ربطي به ندارن execution unit ها ندارن دوست گلم.
اينم از اين.
اما نكته جالب
اينه كه شما ابتدا تراشه هارو بر اساس قدرت محاسباتي fp خامشون با هم مقايسه كردي
مثلا 240gflpos رو در برابر 400gflops براي RSX مقايسه كردي(اونجوري بايد 240 alu رو مد نظر قرار ميداديم) . اما حالا كه بحث Shader ops هارو وسط اوردي ميدوني كه قدرت shader ops زنوس بالاتر از RSX هست اگر ميخواستي از اول RSX رو قوي تر جلو بدي نبايد بحث Shader ops رو وسط ميكشديد.(يه جورايي ... :دي )
xenos:
96 billion shader operations per second
RSX:
74.8 billion shader operations per second
نحوه محاسبشون هم اسونه و در ويكي موجوده
هرچند هيچ يك از اين المان ها در برتري كلي gpu ها تاثير مستقيم نداره و عوامل متعددي مثل حد occupation هسته ها و ميزان dependency limited دستورات اون نرم افزار يا موتور گرافيكي و ... خيلي چيز هاي ديگر عوامل موثر تري هستن.
--------------------------------------------
يك مشكل كه اينجا هست اينه كه اينجا انجمن تخصصي سخت افزار نيست و هركس هر تزي بخواد ميتونه بده و
كسي اصلا متوجه نميشه.اگر اينجا همه به سخت افزار اشنايي ميداشتن بحث جالب ميشد و كسايي كه بحث رو دنبال ميكردن ميفهميدن كه قضيه در بحث ها از چه قراره.
موفق باشيد