Jump to content

AMD RV770 არქიტექტურა


Recommended Posts

AMD-ს ”პატარა კრისტალის” სტრატეგია

GT200 განხილვისას GT200 არქიტექტურა ჩვენ ვნახეთ რომ NVIDIA-მ ააგო ძალიან დიდი ბრძანებების პარალელურ რეჟიმში შემსრულებელი პროცესორი. 1.4 მილიარდი ტრანზისტორით კრისტალის ზომით 576 მმ2.

AMD-ს RV770 ჩიპი მეინსტრიმ სეგმენტისთვის არის გათვლილი ($199 - $299) და არ არის ისეთი დიდი. სულ 956 მილიონი ტრანზისტორი თუმცა RV770 აქვს 44%-ით მეტი ტრანზისტრი ვიდრე RV670 და NVIDIA-ს GT200 ტრანზისტორების რაოდენობის მხოლოდ 68%. შედარებისთვის კრისტალების ზომები ასე გამოიყურება.

391e7b34c785.jpg

ჩიპი რა თქმა უნდა იწარმოება TSMC-ს მიერ და 55 ნანომეტრული ტექნოლოგიითა დამაზადებული.

RV770 არქიტექტურა

აქაც გავყვეთ იგივე გზას რაც NVIDIA-ს GT200 შემთვევაში და ვნახოთ Stream Processing Unit (SPU)

cca9bcf9ddec.jpg

AMD-ს SP ძალიან გავს NVIDIA-ს SP-ს G80/G92/GT200 ბირთვებში. მსაგვსება იმდენად დიდია რომ ფაქტიურად ერთი და იგივე ნახატია. სინამდვილეში არქიტექტურა ბევრად რთულია ვიდრე ასე მარტივად დახატული სამი ALU (იდეაში შემადგენლობა ასეთია FP MUL + ADD ერთეული). AMD-ს პროცესორის ბლოკში აქვს ოთხი SP და მათ უწოდებენ x, y, z ან w ერთეულებს.

არის მეხუთე ერთეული რომლსაც t-unit ეწოდება (t ნიშნავს რომ ერთეული განკუთვნილია ტრიგონომეტრიული გამოთვლებისთვის)

79d860e68b7f.jpg

t ერთეული აკეთებს ყველაფერს რასაც x,y,z ან w ერთეულები, პლუს ტრიგონომეტრიული გამოთვლები (სქემატურად წარმოდგენილია SFU ბლოკის სურათში). AMD უწოდებს თითეულ მათგანს (x,y,z,w და t) გამომთვლელ ერთეულს და RV770 აქვს 800 ასეთი ერთეული (RV670-ს ქონდა 320).

AMD აერთიანებს ამ ერთულებს (x,y,z,w და t) t ერთეულთან ერთად რასაც ჩვენ დავარქმევთ Streaming Processor-ს (SP):

584ae5fedf1a.jpg

წითლად შემოხაზული არეალი არის ფაქტიურად SP მაგრამ NVIDIA-ს SP-სგან განსხვავებით AMD-ს შეუძლია 5 ინსტრუქცია შეასრულოს ერთდოულად, ერთადერთი შეზღუდვა ის არის რომ ხუთივე ერთეული მხოლოდ ერთ ნაკადზე მუშაობენ.

AMD აჯგუფებს 16 ასეთ SP-ს და უწოდებს მას SIMD ბირთვს (single program multiple data)

afc72c59985d.jpg

მსგავსება სახეზეა თუმცა არის სხვაობაც:

1) მეტი SP AMD-ს SIMD ბირთვში (16 vs 8)

2) თვითონ SP უფრო ფართოა და შეუძლია 5-ჯერ მეტი ინსტრუქციის შესრულება ვიდრე NVIDIA-ს SP-ს

3) ინსტრუქციბის და კონსტანტების ქეში არ არის ჩართული SIMD ბირთვში ხოლო AMD მათ ათავსებს ციკლის შემდეგ საფეხურზე.

4) AMD აჯგუფებს ტექსტურების ერთეულს და ტექსტურების ქეშს SIMD ბირთვის დონეზე მაშინ როცა NVIDIA ამას ციკლის მომდევნო საფეხურზე აკეთებს.

5) NVIDIA-ს აქვს ორი ცალი SFU (Special Function Units) ბლოკში, ასევე AMD-ც ათავსებს თავის ბლოკში SFU-ს თუმცა უცნობია რომელი გადაწყვეტაა უფრო სწრაფი და რა ინსტრუქციბი და გამტარებლობითი შესაძლებლობა აქვს რომელიმეს SFU-ს.

შესამჩნევია რომ RV770 მნიშვნელოვნად არ განსხვავდება RV670 (HD 3870) ჩიპისგან. შემდეგ ეტაპზე ორი კომპანიის ნაწარმი კიდევ უფრო განსხვავებული ხდება. NVIDIA-ს ქონდა სამი SM გაერთიანებული Texture/Processing Cluster -ში (TPC) და შემდეგ 10 TPC-ს აერთიანებდა ჩიპზე. AMD უბრალოდ აერთიანებს 10 ცალ SIMD ბლოკს.

a0427d034fda.jpg

ab5dc2ac960c.jpg

NVIDIA-ს GT200 Streaming Processor Array (SPA) ბლოკი, ნაკლები გამომთვლელი ერთეულით თუმცა მეტი დამხმარე ელემენტებით მათ გარშემო, აქ აქცენტი გაკეთებულია ნაკადების სწორ მენეჯმენტზე.

10 ცალი SIMD ბირთვით RV770-ს აქვს 2.5-ჯერ მეტი გამომთვლელი ერთეული ვიდრე RV670, უფრო მეტიც, მას თეორიულად მეტი გამოთვლითი უნარი აქვს ვიდრე NVIDIA-ს GT200 ბირთვს ! რომ შევადაროთ RV770-ს აქვს 800 გამოთვლითი ერთეული ხოლო GT200-ს 240 (+60 SFU) სხვაობა საკმაოდ დიდია.

e82f886dc151.jpg

ჩვენ ვნახავთ რომ რეალურად RV770 შესაძლოა იყოს NVIDIA-ს არქიტექტურაზე სწრაფიც და იმავდროულად ზოგჯერ ნელიც, რაც დამოკიდებულია ინსტრუქციების ნაკადის ტიპზე. NVIDIA-ს არქიტექტურას ურჩევნია ტონობით მარტივი ბრძანებების შესრულება (ერთი ბრძანება SP-ზე) მაშინ როცა AMD-ს ურჩევნია ინსტრუქციებით დატვირთული ნაკადის შესრულება (რადგან მას შეუძლია ერთროულად 5 ინსტრუქციის შესრულება მხოლოდ ერთი ნაკადიდან)

24d06d8e44f9.jpg

NVIDIA's GeForce GTX 280

f7f218e6ef00.jpg

AMD's Radeon HD 4870

სრულად GPU საკმაოდ შთამბეჭდავია:

1) დააკვირდით AMD-ს ბირთვში ზევით ინსტრუქციების და კონსტანტების ქეშებია (Instruction Cache, Constant Cache) NVIDIA ათავსებს მათ თითოულ SM-ში. AMD კიდევ ათავსებს მათ SIMD ბირთვების კლასტერის გარეთ.

2) RV770 აქვს მხოლოდ 4 ცალი 64 ბიტიანი მეხსირების კონტროლერი ხოლო GT200-ში ის 8 ცალია.

3) Programmable Tessellator შემორჩენილია Xbox 360-ის GPU არქიტექტურიდან (R600/RV670), სამწუხაროდ უმეტესობა დეველოპერებისა ამ ელემენტს არ იყენებს და მას არა აქვს DirectX-ის მხარდაჭერა.

4) AMD-ს აქვს ჰარდის ატრიბუტების ინტერპოლატორი (interpolator) ბირთვში, რაშიც NVIDIA-ს ჰარდი იყენებს SFU ერთეულებს.

მოკლედ ეს ორი არქიტექტურა საკმაოდ გავს ერთმანეთს. ორივე მწარმოებელი იღებს წინა მოდელს და ზრდის მას ზომაში. NVIDIA-მ გაზარდა G80/G92 ბირთვები ზომაში, ხოლო AMD-მ აიღო RV670 და 2.5-ჯერ გაზარდა მისი მოცულობა. ბევრად დიდი სხვაობით ვიდრე NVIDIA-მ თავისი GT200 განასხვავა G80/G92 ბირთვებისაგან.

გამოთვლა:ტექსტურების თანაფარდობა

GT200 ბირთვში NVIDIA-მ გამომთვლელი ბირთვი თითქმის 90%-ით გაზარდა ხოლო ტექსტურების ბირთვი მხოლოდ 25%-ით.

44141310947c.jpg

ყოველ TPC რომლებიც ჯამში 10-ია შეიცავს 8 მისამართების და 8 ფილტრაციის ერთეულს, ეხლა შევხედოთ RV770-ს

4223f5e3b3ba.jpg

4 მისამართების და 4 ფილტრაციის ერთეული თანფარდობა აქაც 1:1, ხოლო ჯამში RV770 compute-to-texture (160SP:40adress/filter) თანაფარდობა მნიშვნელოვნად მეტია

055a5289c49e.jpg

ამ ცხრილში ჩანს რომ NVIDIA-მ გაზარდა compute to texture თანაფარდობა 2:1-დან 3:1-მდე, AMD უკვე მანამდე გაცდა თანფარდობით RV670-ში უკვე 4:1 იყოს ეს სხვაობა. AMD სტრატეგია კვლავ მიმართულია გამომთვლელი ერთეულების რაოდენობის გაზრდისკენ. აქედან გამომდინარე იდეაში NVIDIA-ს კარტები უკეთეს წარმადობას აჩვენებს ტექსტურებით დატვირთულ თამაშებში ხოლო RV770 უკეთესი იქნება გამოთვლებით დატვირთულ თამაშებში

*აქ არ დაიბნეთ 160 ცალია თითო შეიცავს 5 ცალ SP-ს ანუ ჯამში 800 უბრალოდ ერთდროულად 5 ცალი მარტო ერთი ნაკადიდან ასრულებს ბრძანებებს NVIDIA-ს შემთვევაში ყველა SP-ს შეუძლია სხვადასხვა ნაკადის ბრძანებების შერულება.

AMD-აც გაუმჯობესა ტექსტურების ბლოკი. ”რაღაცეების” შეცვლით რასაც არ ამბობენ ზუსტად მათ გაზარდეს წარმადობა მმ2-ზე 70%-ით. ტექსტურების ქეშის გამტარობაც გაორმაგდა და 480 GB/s გახდა, ხოლო L1 ქეშს და L2 მეხსიერებას შორის გამტარობა 384 GB/s შეადგენს. L2 დონის ქეშები აღჭურვილია მეხსირების არხებით რომლებიც ჯამში 4 ცალი საერთო არხია (სულ 8 ცალი L2 დონის ქეში).

ისევ ტექნიკა ანუ ქსოვა და ტალღბი და SPMD

GT200 მიმოხილვიდან ჩვენ ვნახეთ როგორ ხდება ბრძანებათა ნაკადების ორგანიზაცი და შესრულება NVIDIA-ს კარტებზე. AMD-სთან საუბარში გაირკვა რომ მსგავსი მიდგომაა ამ შემთვევაშიც. AMD-ც ნაკადებს ასრულებს ჯგუფებად. RV770-ს აქვს 16 ცალი 5ერთეულის შემცველი SP. AMD ალაგებს 64 ნაკადად ბრძანებებს რომლებიც პარალელურ რეჟიმში სრულდება (NVIDIA ნაკადების ამ კრებულს ეძახდა Warp-ს ხოლო AMD ეძახის Wavefront-ს), GT200-ის შემთხვევაში შემდგომში ბრძანებების ნაკადი ბლოკებად ერთიანდება და AMD-ს შემთვევაშიც შემდგომში ბრძანებების შესრულების კიდევ ორი დონეა.

რომ შევადაროთ ეს ორი არქიტექტურა მივიღებთ SM / SIMD ბლოკების შესაძლებლობების ასეთ ცხრილს

41767a19aec9.jpg

ინფორმაცია კიდევ უფრო დეტალურიც იყო თუმცა ეს დეტალები უფრო პროგრამისტებისთვის იქნება საინტერესო თუ როგორ დაწერონ ამ ჰარდისთვის პროგრამები და როგორ მოახდინონ ოპტიმიზაცია.

მიხვდით?

დიახ ბატონო სწორედ ამ ინფორმაციას აწვდიან დეველოპერებს და შემდეგ ისინიც თამაშებს წერენ ან ბრძანებებით დატვირთულ რამოდენიმე ნაკადად (AMD-სთვის) ან ბრძანებებით ნაკლებად დატვირთულს და უფრო ბევრ ნაკადად (NVIDIA-სთვის).

ILP სწრაფი მიმოხილვა

თუკი NVIDIA-მ ფანჯრიდან მოისროლა ILP (instruction level parallelism) AMD პირიქით მას მიაწვა.

ILP პარალელიზმია რომელიც შეიძლება მივიღოთ ინსტრუქციების ერთი ნაკადის შესრულებისას. მაგალითად თუ მე ბევრი გამოთვლა მაქვს ჩასატარებელი და ეს გამოთვლები წინა გამოთვლებზე დამოკიდებული არ არის მაშინ ჯობია გამოთვლები პარალელურ რეჟიმში შევასრულო.

მაგალითისთვის წარმოვიდგინოთ ინსტრუქციების ასეთი კრებული:

LineNumber INSTRUCTION dest-reg, source-reg-1, source-reg-2

ეს არის შედგენილი კოდი სადაც 8 ციფრი დაჯამდება. (i.e. A = B + C + D + E + F + G + H + I;)

1 ADD r2,r0,r1

2 ADD r5,r3,r4

3 ADD r8,r6,r7

4 ADD r11,r9,r10

5 ADD r12,r2,r5

6 ADD r13,r8,r11

7 ADD r14,r12,r13

8 [რამე სრულად დამოუკიდებელი ინსტრუქცია]

...

1,2,3 და მე 4 ბრძანებები შესაძლებელია ერთდოულად შესრულდეს. მე5 ინსტრუქცია უნდა დაელოდოს 1 და მე2-ს შესრულებას, მე6 უნდა დაელოდოს მე3 და მე4 ინსტრუქციების შესრულებას ხოლო 7 ვერ გამოითვლება სანამ ყველა წინა ბრძანება არ შერულდება. მე8 ბრძანება ნებისმიერ დროს შეიძლება შერსულდეს.

ზემოთ მოყვანილი ბრძანებების ოპტიმალურად სწრაფად შესრულება შეუძლია 2 გამოთვლით ერთეულიან პროცესორს. თუ შევხედავთ AMD-ს 5 ერთეულიან SP-ს კუთხით ვნახავთ რომ, 5 ბრძანება შესაძლოა შერსულდეს ერთდოულად 1,2,3,4 და 8. შემდეგ ჯერზე უკვე მარტო ორი ოპერაცია შესრულდება ერთდოულად 5 და 6 (ანუ SP-ში სამი ერთეული უმოქმედოდ რჩება) ხოლო ბოლოს უკვე მარტო ერთი ინსტრუქცია მე7 სრულდება (ამჯერად 4 ერთეული ისვენებს).

ILP-ს დროს ინსტრუქციების პარალელურად შესრულება ლიმიტირებულია თვითონ პროგრამით, ჰარდის შესაძლებლობებით, კომპიალტორით (რამდენად მოახერხებს კომპილატორი მიღებული შედეგების გამოტანას ILP-დან) და შესრულებით (რამდენად შესწევს ჰარდ უნარი წაიკითხოს და შეასრულოს დამოუკიდებელი ინსტრუქციები ერთდოულად)

ILP-ზე მუშაობა თანამედროვე კომპიუტერული სამყაროს ერთ-ერთი პრობლემაა და CPU-ებშიც სწორედ ეს პრობლემა იყო სანამ მულტიბირთვული ჰარდი არ დაინერგა. თუმცა პრობლემა კვლავ რჩება

(ამაზე ადრეც ვილაპარაკე მარა მცირედით აქაც გადავუხვევ საკითხს, პროგრამა უნდა იყოს დაწერილი შესაბამის რეჟიმში ანუ ბრძანებები რამოდენიმე ნაკადად უნდა იყოს დაწერილი რომ პროცესორმაც რამოდენიმე ნაკადად შეასრულოს ბრძანებები ანუ თუ სიტყვაზე პროგრამა დაწერილია 4 ნაკადად 2 ბირთვიანი პროცესორი შეასრულებს ამ პროგრამას 2X დროში

4 ბირთვიანი შეასრულებს 2ჯერ სწრაფად ანუ X დროში მარა 8 ბირთვიანი ისევ X დროში შეასრულებს (4 ბირთვი ისვენებს).

ან სიტყვაზე 4 ბირთვიანი პროცესორი 1 ნაკადად დაწერილ პროგრამას იგივე დროში შეასრულებს როგორც 2 ბირთვიანი, სხვაობა არ იქნება მიუხედავდა 2ჯერ მეტი ბირთვების რაოდენობისა. სხვაობა იქნება ერთდროულად 4 პროგრამის შესრულებისას, მარტო მაშინ აჯობებს ეს 4 ბირთვიანი. ალგორითმი ვერ მოიგონეს ისეთი რომ სიტყვაზე 4 ბირთვმა დაინაწილონ ბრძანებები და უფრო სწრაფად შეასრულონ. მაგიტომ არის მაგალითად 3D მარკ 01-ში ტაქტურ სიხშირეს მეტი მნიშვნელობა აქვს და ერთი ბირთვის სიხშირეს აქვს დიდი მნიშვნელობა რეკორდებისთვის მაშინ როცა 06-ში ან ვანტაჯში ბევრ ბირთვიანი პროცესორები უფრო მეტ ქულას იღებენ ახალი 3დ მარკებში ბრძანებები რამოდენიმე ნაკადად არის დაწერილი 01-ში კიდევ ერთ ნაკადად.)

db96677d4570.jpg

აგერ სურათზე ინსტრუქციების ნაკადი გაეგზავნა AMD და NVIDIA-ს SP-ს შესარულებლად. საუკეთესო შემთვევაში AMD-ს SP-მ უნდა შეასრულოს ეს ბრძანებები იმ დროის 1/5-ში რასაც მოანდომებს NVIDIA-ს SP რადგან 5-ჯერ მეტი გამომთვლელ ერთეულს შეიცავს. თუმცა როგორც ვხედავთ AMD ამ საქმეს იგივე დროის ნახევარზე მეტს ანდომებს რასაც NVIDIA-ს SP. რაც უფრო მეტ პარალელიზმს მიაღწევს AMD ინსტრუქციების შესრულებისას მით უფრო უკეთესი იქნება მისი წარმადობა.

მოკლედ AMD-ს RV770-ს (და ასევე R6xx) სჭირდება ისნტრუქციების 5 ნაკადი თითო ტაქტურ ციკლზე რათა საუკეთესო წარმადობა აჩვენოს, რაც საკმაოდ დიდი თავსატეხია კომპილაციისთავის და ინსტრუქციების შესრულებისათვის, მაშინ როცა NVIDIA ასეთ პრობლემებს არ აწყდება და ჩვენ ვნახავთ რატომ.

ინსტრუქციების შესრულების ლიმიტები და ILP TLP-ს წინააღმდეგ

გრაფიკული ბირთვები ახდენენ მოქმედებას ვექტორებზე, როგორიც არის vertex კოორდინატები (x,y,c,w) ან ფერებზე (r,g,b,a), მოკლედ ბევრი რამე ხდება პარალელურ რეჟიმში. მაგრამ საქმე საქმეზე როცა მიდგება ჰარდის წინ დიდი თავსატეხი დგება როგორ მიიღოს პარალელიზმისაგან მაქსიმალური შედეგი (და პლუს ამას უნდა მოხდეს ყველა სცენის და ნახატი ფორმირება - რენდერი, სანამ მოხდება გამოსახულების ეკრანზე გამოტანა). რა თქმა უნდა მარტო GPU-ს აგება არ გადაწყვიტავს პარალელიზმის პრობლემებს. AMD-ც და NVIDIA-ც უნდა ფიქრობდნენ ისეთ პრობლემებზე როგორიც არის წარმადობა კრისტალის ყოველ კვადრატულ მილიმეტრზე, წარმადობა ყოველ ვატზე და პროგრამული კოდის თავსებადობაზე რომელზეც ეს ჩიპი იმუშავებს.

NVIDIA სრულად დამოკიდებულია TLP-ზე (thread level parallelism ანუ ნაკადების პარალელიზმზე) ხოლო AMD ცდილობს იხეიროს როგორც TLP-სგან ასევე ILP-სგან (ანუ თითოულ ნაკადში ბრძანებების პარალელურად შესრულებისგან). TLP შესრულება ბევრად ადვილი საქმეა ვიდრე ILP რადგან TLP-ს დროს ერთადერთი რაზეც უნდა იდარდო ეს არის ნაკადებს შორის მონაცემების გაცვლაზე რაც საკმაოდ იშვიათად ხდება მაშინ როცა ერთ ნაკადში ყველა ინსტრუქცია გადაჯაჭვულია და ხშირად პარალელურ რეჟიმში მათ შესრულებას ხელს უშლის ის უბრალო მიზეზი რომ მომდევნო ბრძანება ვერაფრით შესრულდება თუ არ გაიგო წინა ბრძანების შედეგი. გრაფიკულ არქიტექტურაში პირდაპირ ჩადებულია რომ ერთდროულად რაომდენიმე ნაკადი უნდა სრულდებოდეს და აქედან გამომდინარე NVIDIA-ს ერთადერთი პრობლემა იმ ”სიფართის” ჰარდის შექმნაა რომელიც მაქსიმალურად გამოიყენებს TLP შესაძლებლობებს და მაქსიმალური რაოდენობის ნაკადებად შეასრულებს ბრძანებებს.

თუმცა არის გზები საიდანაც AMD-ს არქიტექტურასაც შეუძლია იხეიროს. AMD-ს შეუძლია გამოიყენოს ILP და ნაკლებად მგრძნობიარეა ისნტრუქციბის ნაკადების სიმცირეზე ვიდრე NVIDIA (თუმცა ორივე ჰარდი მნიშვნელოვნად არის დამოკიდებული ნაკადების დიდ რიცხვზე რათა შენიღბონ ლატენტურობა). ჩვენ ვიცით რომ NVIDIA-მ რომ დაფაროს ლატენტურობა მინიუმუმ 6 ნაკადი (ე.წ. warp) უნდა შეასრულოს G80-ის ბირთვის SM-მა (ზუსტი რიცხვი არ ვიცით GT200 ბირთვისთვის) რაც საშუალოდ 3 k ნაკადია საშუალოდ რათა ჩიპის სრულად იყოს დატვირთული. AMD-სგან ასეთი დეტალები ცნობილი არ არის. თუმცა თუ შეიდერული პროგრამა საკმაოდ გრძელია AMD-ს შეუძლია სერიებად ამოკრიფოს კოდი მისგან და პარალელურ რეჟიმში შეასრულოს NVIDIA-ს ანალოგიურის გაკეთება და შესაბამისად ლატენტობის დამალვა არ შეუძლია. AMD-ს ჰარდს შეუძლია უფრო მოქნილი იყოს და გარკვეულ სიტუაციებში უპირატესობაც მოიპოვოს NVIDIA-სთან შედარებით.

ILP სრულად იგნორირებულია NVIDIA-ს GT200 არქიტექტურის მიერ, რადგან სრულდება ნაკადში მხოლოდ ერთი ინსტრუქცია თუმცა როგორც ავღნიშნეთ გრაფიკული პროგრამები საკმაოდ დატვირთულია ნაკადებით (შეიძლება ერთდროულად რაომდენიმე ათასი ხაზები, მილიონობით პიქსელები იყოს შესასრულებელი თითო კადრზე, და წამში რამოდენიმე კადრის შესრულება, მოკლედ საქმე თავზე საყრელად ექნებათ NVIDIA-ს კარტებსაც). აქედან გამომდინარე შეგვიძლია დავასკვანთ რომ მხოლოდ TLP-ზე ორიენტაცია სულაც არ არის უაზრო იდეა.

თუ შევხედავთ პარალელიზმის კუთხით NVIDIA-ს არქიტექტურა უფრო ”ელეგანტური” ჩანს. და მაინც რატომ? თუ შევადარებით რეალურს და პიკურ თეორიულ წარმადობას. მართალია Radeon HD 4870-ს აქვს 1.2 TFLOPS გამოთვლითი პოტენციალი (800 გამომთვლელი ერთეული*2 flops/unit (გამრავლება-მიამტებისთვის)*750 MHz), ახალ შევხედოთ NVIDIA-ს GeForce GTX 280-ს 933.12 GFLOPS ((240SP*2 flops/unit(გამრავლება-მიამტებისთვის)+60SFU*4 flops/unit)*1296 MHz) უკეთეს წარმადობას გვაჩვენებს პრაქტიკაში.

თუმცა ეს არ ნიშნავს რომ NVIDIA-ს არქიტექტურა უკეთესია. კიდევ ბევრი საქმეა გასაკეთებელი და კიდევ შეიძლება მისი გაუმჯობესება.

AMD-ს RV770 vs. NVIDIA-ს GT200: მაინც რომელია უფრო ეფექტური?

ერთი საკითხია მაღალი თეორიული წარმადობა და მეორე პრაქტიკაში როგორ მუშაობს ეს ყველაფერი. ფაქტია AMD-ს არქიტექტურა უფრო ეფექტურად გამოიყურება NVIDIA-სთან შედარებით

მოდი შევხედოთ ეფექტურობას პიკური თეორიული წარმადობის გადასხედიდან ანუ GFLOPS/mm2 (წარმადობა კრისტალის მოცულობაზე) ეს მხოლოდ თანფარდობაა და გთხოვთ არ მკითხოთ რას ნიშნავს სინამდვილეში ინსტრუქცია/წ-ში*მმ*მმ :)

9ffb33242352.jpg

ამ ცხრილს თუ დავუჯერებთ NVIDIA-ს არქიტექტურით ორჯერ დიდი კრისტალია საჭირო იგივე თეორიულ წარმადობას რომ მიაღწიოს რაც AMD-ს შემთვევაში. თუცმა ეს თეორიული წარმადობაა. ვნახოთ პრაქტიკულად როგორ არის საქმე და შევადაროთ წარმადობა Bioshock, Crysis, და Oblivion თამაშებში. ეს თამაშები იმიტომ შეირჩა რომ Bioshock-ში RV770-ს უეკთესად უჭირავს თავი ხოლო Oblivion-ში GT200-ს უკეთესი წარმადობა აქვს (იდეაში RV770 ჯობნის bioshock-ში მაშინ როცა Oblivion-ში ანადგურებს GT200) ხოლო Crysis საკმაოდ პოპულარულია კარტების შედარებისთვის და დაახლოებით ერთნაირად უჭირავს ორივე კარტას თავი ამ თამაშში.

ეს ციფრები გვაჩვენებს წარმადობას სმ2-ზე, ისევ და ისევ ეს არ იძლევა სრულ წარმოდგენას უბრალოდ გარკვეული თანფარდობაა რათა შევადაროთ ორი არქიტექტურა

6aeeb2da5a76.jpg

აქაც ჩანს რომ AMD-ს მეტი ეფექტურობა აქვს, თუმცა ეს შედარებაც არ იძლევა სრულ წარმოდგენას პროცენტული სხვაობა წამში გამრავლებული მილიმეტრზე და ისევ მილიმეტრზე რეალურ წარმოდგენას არ იძლევა :D უბრალოდ AMD კრისტალის მოცულობაზე უფრო ეფექტურია თუმცა ჩვენთვის მთავარია წარმადობა თამაშებში და არა მიკრობენჩებში.

შეგვიძლია ვილაპარაკოთ ასევე ეფეტურობის სხვა კუთხეზე. კერძოდ ენერგოეფექტურობაზე. საშუალო ჯოული/კადრზე (joules / frames) და შევხედოთ ჩვენს თამაშებში შედეგებს

e48139ef6e05.jpg

აქ უკვე სხვა სურათია Bioshock-ში RV770 მოიხმარს ნაკლებ ენერგიას ზოლო Oblivion-ში და Crysis-ში NVIDIA უფრო ნაკლებ ენერგიას მოიხმარს კადრის რენდერზე.

ეს ტესტები ორივე კარტის პოტენციალზე წარმოდგენას გვაძლევენ და ფაქტია ორივე კარტის დრაივერებს დასჭირდებათ ოპტიმიზაცია.

არქიტექტურის და ეფექტურობის საბოლოო განხილვა

თქვენც დაიღალეთ, მეც დავიღალე თუ ვინმე ამ აბზაცამდე მოვა დასტურად პოსტის ბოლოში დაწეროს სიტყვა სკამი და მე მივხვდები რომ წაიკითხეთ. როგორც ვნახეთ ბევრი საერთო აქვთ NVIDIA-ს და AMD-ს არქიტექტურას. ორივე უნდა ასრულებდეს ნაკადების უამრავ რიცხვს მეხსიერების და ინსტრუქციების ლატენტობის შესანიღბად. ორივე უმკლავდება ისნტრუქციების უამრავ ნაკადს და ბლოკებად ასრულებენ მათ. რათა სრულად დაკავდეს ყველა გამომთვლელი ელემენტი ჩიპზე. ორივე ჩიპზე ინსტრუქციების შესრულების ციკლი გავს ერთმანეთს. თუმცა GT200 და RV770-ის გული SPA (Steaming Processor Array) და DPP (Data Parallel Processing) ბლოკი საკმაოდ განსხვავდება. NVIDIA ასრულებს ერთ ოპერაციას ნაკადში მაშინ როცა AMD-ს შეუძლია 5-ის შესრულება. ორივე SIMD-ია (single program multiple data) თავისი ბუნებით თუმცა NVIDIA უფრო S(operation)MD ხოლო AMD უფრო S(VLIW)MD

d4d40b8aae65.jpg

AMD-ს მომხიბვლელი RV770

გამომთვლელი ერთეულებით შევსებული ჩიპების შეჯიბრი, თუმცა NVIDIA უფრო თანმიმდევრული ჩანს, ხოლო AMD უფრო მაღალი ეფექტურობით გამოირჩევა, RV770 აშკარად ჯობნის GTX 280 არა მარტო წარმადობის ეფექტურობაში ასევე ენერგო მოხმარების ეფექტურობაში, ასევე მოცულობა/ეფექტურობაში AMD ლიდერია, რაც მიუთითებს რომ AMD -ს უფრო ნაკლები თვითღირებულება აქვს რადგან მცირე ზომის ჩიპები უფრო იაფი ჯდება.

87842004dc0a.jpg

NVIDIA-ს GT200 თავსბრუ დამხვევი წარმატება

ორივე ჩიპი საკმაოდ დამოკიდებულია ნაკადების სიმრავლეზე და თუმცა RV770 შეუძლაი შედარებით გრძელი პროგრამული კოდების შესრულებისას ILP-სგან ხეირი მიიღოს, ორივე აქტიურად იყენებს TLP ტექნოლოგიას და ლატენტობის შესანიღბად ორივეს ესაჭიროება ერთროულად რამოდენიმე ინსტრუქციების ნაკადი, რათა მაქსიმალურად მოხდეს ჩიპზე გამომთვლელი ერთეულების დატვირთვა და ეფექტურად გამოყენება.

დიახ, ძალიან კარგი ჩიპი გამოვიდა თეორიულად RV770 რაც არაერთხელ ავღნიშნე ამ სტატიაში თუმცა ფაქტია GT200 ბირთვი ნებისმიერ თამაშში ჯაბნის მას (ფურცელზე რა წერი სულ სხვა და პრაქტიკულად რა გავქვს სულ სხვა).

საკმაოდ ვრცელი სტატია გამომივიდა მაგრამ საკმაოდ საინტერესო ჩემის აზრით და გირჩევთ წაიკითხოთ ბევრ საინტერესოს გაიგებთ.

ვაპირებ ფერმის და HD 5000 სერიის მიმოხლივასაც ოღონდ ზეგე :)

  • Upvote 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.