NVIDIA Fermi – процесор з трьох мільярдів транзисторів, Відеокарти, огляди

Введення

Осінь 2009 року принесла деяке пожвавлення на ринок графічних адаптерів. У вересні компанія AMD презентувала відеокарти ATI Radeon HD 5870 і ATI Radeon HD 5850 на основі процесорів RV870. Відразу ж стало зрозуміло, що до появи нового флагмана компанії NVIDIA саме ці відеокарти є самими продуктивними з усіх однопроцесорних графічних адаптерів. У порівнянні зі своїми попередниками – ATI Radeon HD 4870 (які самі є дуже вдалими продуктами компанії AMD) – відеокарти ATI Radeon HD 5870 володіють вдвічі вищою продуктивністю. Причина настільки вражаючого результату криється в двократному збільшенні числа основних обчислювальних блоків графічного процесора: потокових процесорів, текстурних модулів, блоків растеризації та ін Модернізація відеочіпів саме в цьому напрямі призвела до цілком очікуваного різкого збільшення і кількості транзисторів, з яких складаються інтегральні схеми – якщо конструкція процесора ATI Radeon HD 4870 передбачала використання 0956000000 транзисторів, то в разі ATI Radeon HD 5870 їх кількість склала вже 2,15 млрд. Але навіть ця астрономічна цифра меркне перед новим продуктом NVIDIA, анонсованого представниками компанії в ході конференції GPU Technologies Conference – графічним процесором NVIDIA Fermi.

Розробники з Каліфорнії грунтовно підійшли до створення графічного процесора нового покоління – мікрочіпи Fermi (до речі, їх «старе» кодове позначення – GT300) складаються з більш ніж трьох мільярдів транзисторів. Ця цифра відразу на 40% вище кількості транзисторів у процесора RV870, при тому, що вони є продуктами одного покоління і виготовляються по одному технологічному процесу – 40-нм на потужностях тайванської компанії TSMC. Якщо порівнювати процесори Fermi з рішеннями попереднього покоління GT200, то перевага в кількості транзисторів і зовсім дворазове – 1,4 млрд проти 3 млрд. Збільшення кількості транзисторів цілком передбачувано позначилося на характеристиках процесорів: у порівнянні з GT200 збільшено до 512 кількість обчислювальних блоків, збільшена до 384 біт розрядність інтерфейсу графічної пам’яті (шість 64-розрядних блоків), реалізована підтримка пам’яті стандарту GDDR5 максимальним обсягом аж до 6 Гб. Сподіваємося, що всі читачі пам’ятають про підтримку процесорами GT200 стандарту GDDR3, а значить, перехід на більш швидкісну графічну пам’ять дозволить помітно збільшити можливості відповідної підсистеми відеокарт. Очікувалася і апаратна підтримка DirectX 11, яка була реалізована розробниками. Але на цьому сюрпризи не закінчуються, адже додаткові транзистори «витрачені» не тільки на просте збільшення кількості виконавчих блоків, як зробили інженери AMD / ATI. На відміну від їхнього продукту, графічний процесор має помітно перероблену архітектуру, в якій реалізовано значну кількість цікавих та передових (для графічних процесорів як класу) нововведень.

На «верхньому» рівні архітектури графічних процесорів істотних якісних відмінностей не спостерігається. З цієї позиції Fermi можна розглядати лише як масштабированную версію графічних процесорів GT200. Але як тільки ми звертаємо свою увагу на «нижні» рівні архітектури, на її фундамент, то відразу ж з’являються суттєві нововведення інженерів NVIDIA. Перше на що необхідно звертати увагу – На графічні ядра, які раніше позначалися як потокові процесори (SP – Streaming Processor). Зараз розробники замість звичного терміна перейшли на використання терміну CUDA-ядер (CUDA Core). У разі графічних інтегральних мікросхем G80 і GT200 розробники об’єднували по вісім потокових процесорів в єдині групи – потокові мультипроцесорні SM-блоки (SM – Streaming Multiprocessor). Схожа організація збережена і для процесорів Fermi, за тим лише виключенням, що тепер в єдиний блок об’єднуються не вісім, а тридцять два ядра. В залежності від конкретної реалізації, в основу графічних процесорів NVIDIA Fermi будуть входити до шістнадцяти SM-блоків, що складаються з 32 CUDA-ядер, оптимізованих для роботи з обчисленнями загального призначення. В результаті і виходять 512 обчислювальних ядра, які і є базою для найвищої продуктивності процесорів.

На додаток до згаданих CUDA-ядер, до складу мультіпотокових блоків входять і додаткові обчислювальні елементи. Мова йде про блоках Special Function Unit (SFU), основна область застосування яких – Трансцендентальна математика і інтерполяція. Втім, блоки SFU складно назвати головними виконавчими елементами графічного процесора. На це вказує і той факт, що розробники вирішили лише подвоїти кількість цих компонентів для кожного з SM-блоків графічного процесора – до чотирьох штук.

На жаль, більш детальну інформацію про основні виконавчих компонентах архітектури NVIDIA Fermi розробники поки вважали за краще не розголошувати. В даному випадку за кадром залишилися такі елементи, як блоки растеризації, текстурної фільтрації, і багато іншого, що безпосередньо стосується можливостей процесорів з обробки тривимірної графіки. Тому поки що практично неможливо сказати, наскільки цікавіше архітектура Fermi стосовно комп’ютерних ігор у порівнянні зі своїми попередниками в особі GT200.

Крім виконавчих блоків, що відповідають безпосередньо за обробку інформації, кожен з SM-блоків графічного процесора на основі архітектури NVIDIA Fermi оснащується ще й блоками тимчасового зберігання даних – кеш-пам’ять. У разі відеочіпів попередніх поколінь розробники також оснащували SM-блоки кеш-пам’яті першого і другого рівнів фіксованим обсягом 24 Кб і 256 Кб відповідно. Але використовувалася вона лише для зберігання «текстурних» даних, до того ж, блок кеш-пам’яті рівня L1 розподілявся між трьома потоковими мультіпроцесорними блоками. Графічні процесори наступного покоління оснащені вже універсальної кеш-пам’яті, причому кожному SM-блоку відповідає власний блок кеш-пам’яті першого рівня. Але що найважливіше, ця пам’ять є конфігурується. Що це означає? Кожен SM-блок має доступ до 64 Кб пам’яті, яка може бути розділена безпосередньо на кеш-пам’ять першого рівня і поділювану пам’ять, причому розділена двома способами: 48 Кб/16 Кб, або 16 Кб/48 Кб. Такий підхід дозволяє вирішити відразу кілька завдань. По-перше, можливість різної конфігурації кеш і розділяється пам’яті означає повну сумісність з додатками, оптимізованими для роботи з графічними процесорами GT200 з їх пам’яттю об’ємом 16 Кб. По-друге, при виконанні обчислень загального призначення, спеціалізована традиційна «текстурна» кеш-пам’ять виявляється неефективною – ця проблема вирішена в разі Fermi з її універсальною кеш-пам’яті першого і другого рівнів. По-третє, можливість різної конфігурації кеш-пам’яті дозволяє з максимальною ефективністю організувати роботу програмного забезпечення, оптимізованого для роботи з великим об’ємом кеш-пам’яті – до 48 Кб. І останнє нововведення – збільшення обсягу універсальної кеш-пам’яті другого рівня до 768 Кб, яке дозволяє істотно підвищити продуктивність при роботі з так званими атомарними операціями, часто використовуваними при обчисленнях загального призначення. Згідно запевненнями розробників, ефективність роботи підвищується в порівнянні з GT200 в 4 – 20 разів (!).

Після короткого огляду апаратної складової архітектури графічних процесорів NVIDIA Fermi варто перейти до розмови про механізм роботи таких складних інтегральних мікросхем, що складаються з трьох мільярдів транзисторів. Кілька років тому головною тенденцією розвитку процесорів (не тільки графічних, але і центральних процесорів) було збільшення їх робочої частоти і спеціалізація на однопоточних обчисленнях. Тепер акценти змістилися в бік багатопоточних обчислень, що наклало свій відбиток на конструкцію самих інтегральних мікросхем – почався період збільшення процесорних ядер на єдиному кристалі. Справедливості заради варто відзначити, що цей процес у разі графічних процесорів почався значно раніше, ніж в індустрії центральних процесорів. Пояснюється це особливістю подання даних, які доводиться обробляти відеочіпа – обчислення легко паралелями, чим і скористалися розробники. Поступова еволюція графічних процесорів привела до того, що мікросхеми G80 могли обробляти до 12288 потоків одночасно. З приходом монструозних процесорів GT200 кількість оброблюваних в паралельному режимі потоків команд і даних збільшено до рекордних 30720 одиниць. Здавалося б, розвиток відеочіпів і далі піде за обраним раніше шляху, однак анонс NVIDIA Fermi показав, що це не так. Графічні процесори нового покоління можуть обробляти 24576 потоків одночасно. Але це аж ніяк не означає, що новинки в чомусь поступаються своїм попередникам. Аж ніяк. Як виявилося, і як нам повідомляють співробітники компанії NVIDIA, рекордні можливості інтегральних схем по многопоточной обробці даних ще не означають ефективну роботу всіх елементів процесора. Виявляється, значну роль в загальній продуктивності відеочіпа грає не многопоточность, а ефективний розподіл завдань між окремими блоками процесора і колективна пам’ять. У разі NVIDIA Fermi істотну роль відіграє наявність двох Warp-планувальників, які з більшою ефективністю розподіляють команди і дані для виконання.

Продовжуємо далі вивчати методи підвищення ефективності роботи графічного процесора NVIDIA Fermi. Тепер пропонуємо звернути свою увагу на можливості паралельного виконання відеочіпів програмних ядер (kernel). У середовищі програмування графічних процесорів програмним ядром називається не що інше, як функції і невеликі програми. Процесори GT200 були здатні працювати з ядрами тільки в послідовному режимі – поки не виконано ядро ​​з першим номером інші чекають своєї черги. Навіть в тому випадку, якщо апаратні можливості процесора дозволяють завантажувати і виконувати наступну функцію / програму (Kernel) паралельно з обробкою попередньої. У тому випадку, якщо йде робота тільки з графічними програми жодних проблем не виникає. Труднощі з’являються в разі роботи з обчисленнями загального призначення – Не всі функції і програми повністю завантажують апаратні ресурси графічного процесора, в результаті, ефективність використання відеочіпів падає. Зрозуміло, у разі архітектури NVIDIA Fermi така проблема вирішена – численні kernel можуть оброблятися в паралельному режимі, повністю завантажуючи роботою ресурси графічного процесора. Необхідність в такій модернізації архітектури більш ніж обгрунтована. По-перше, за задумом розробників графічні процесори NVIDIA Fermi повинні були знайти своє застосування не тільки в комп’ютерній графіці, але й не меншою мірою працювати з обчисленнями загального призначення. По-друге, розміри SM-блоків у разі NVIDIA Fermi значно збільшені, в порівнянні з відеочіпами попереднього покоління, а значить, їх простій обходиться значно дорожче, і було необхідно оптимізувати цей аспект їхньої роботи. За заявами розробників, такі зміни в архітектурі дозволяють на порядок підвищити продуктивність Fermi-процесорів, особливо це буде помітно при прорахунку фізики силами самого відеочіпа – ми вже майже забули про технологію PhysX. Тепер вона повертається, але вже в якості функції самого графічного процесора, а не окремого співпроцесора.

Найважливішою особливістю NVIDIA Fermi, яка, втім, не настільки цікава любителям комп’ютерних ігор, є підтримка коду корекції помилок. Така функціональність з’являється в індустрії графічних процесорів вперше – все на що були здатні сучасні відеочіпи, наприклад, AMD Radeon HD 5870, це реєстрація помилок, але не їх корекція. Але якщо ця функціональність виявляється практично даремною для геймерів, на кого розрахована підтримка ECC? У першу чергу, розробники компанії NVIDIA мали на меті привернути увагу до свого продукту з боку збирачів високопродуктивних обчислювальних систем, аж до суперкомп’ютерів. Справа в тому, що в цій сфері підтримка коду корекції помилок є обов’язковою. Тільки з цієї причини компанії NVIDIA не вдалося зробити популярним системи Tesla – Вони не володіли підтримкою ECC.

І останнє, що хотілося б відзначити в короткому огляді архітектури NVIDIA Fermi – уніфіковану 64-розрядну схему адресації пам’яті. Необхідність уніфікації пам’яті пояснюється бажанням реалізувати підтримку мови C + +, тоді як 64-розрядна адресація пам’яті дозволяє графічному процесору працювати зі значно бoльшим об’ємом пам’яті. На даний момент повідомляється, що архітектура NVIDIA Fermi дозволяє процесору працювати з адресним простором об’ємом до 1 Тб. Втім, унікальні особливості відеочіпів нового покоління можна розглядати лише як демонстрація унікальних можливостей архітектури – Відеокарти для споживачів протягом найближчих декількох років навряд чи зможуть повністю розкрити закладений в графічні процесори потенціал – навряд чи найближчим часом на ринку з’являться адаптери, оснащені пам’яттю об’ємом понад 4 Гб.

Розглянувши основні особливості новітньої архітектури NVIDIA Fermi, можна сказати наступне. Інженери при роботі над нею істотну увагу приділили розширенню продуктивності і функціональності графічних процесорів при роботі з обчисленнями загального призначення. Більше того, інформація про компоненти архітектури, які могли б сказати про її продуктивності при роботі з чисто графічними додатками, була офіційними джерелами опущена. Іншими словами, розробники поставили перед собою мету створення не просто ігрового рішення, але набагато більш універсального продукту. Перші кроки в тому ж напрямку вже робила компанія IBM, коли розробляла центральний процесор Cell, що знайшов своє застосування в цілому спектрі обчислювальних систем, від ігрових консолей Sony PS3, до потужних суперкомп’ютерів. По всій Мабуть, така доля чекає і графічні процесори на основі архітектури NVIDIA Fermi. По крайней мере, деякі виробники потужних обчислювальних систем вже оголосили про свій інтерес до новітньої архітектурі. При цьому потенціал архітектури настільки високий, що розробники суперкомп’ютерів поспішають заявити про можливість створення систем, продуктивність яких в рази перевищує продуктивність найкращих сучасних суперкомп’ютерів. Втім, і під час роботи в умовах сучасного персонального комп’ютера графічні процесори NVIDIA Fermi зможуть розкрити свій неабиякий потенціал – компанія обіцяє, що їх нове дітище виявиться куди потужніше свого конкурента AMD Radeon HD 5870, в тому числі і при роботі виключно з тривимірною графікою. А вже якщо задіяти і можливості процесора для обчислень загального призначення (наприклад, для обробки ігрової фізики), то рівних йому сьогодні просто не буде.

Сама NVIDIA розглядає Fermi, а також платформу для портативної електроніки Tegra в якості основних елементів для успішного ведення бізнесу в наступному році. З цієї причини в NVIDIA поки відмовляються розкривати додаткову інформацію про архітектуру Fermi, зокрема, нічого не відомо про продуктивність графічних процесорів при обробці тривимірної графіки. Повідомляється, що прийдешні новинки будуть продуктивніше своїх конкурентів, але наскільки значним виявиться відрив NVIDIA Fermi, поки не ясно – можна тільки робити припущення. Втім, це абсолютно не скасовує того факту, що архітектура NVIDIA Fermi володіє цілим спектром унікальних особливостей, які вже сьогодні привертають до неї увагу не тільки користувачів ПК, а й наукового співтовариства.

Замість резюме до всього вищесказаного пропонуємо читачам ще раз ознайомитися з основними перевагами архітектури NVIDIA Fermi в порівнянні зі своїми попередниками, і згадати, за рахунок чого новітні графічні процесори будуть завойовувати серця геймерів і, не меншою мірою, професійних користувачів, що працюють з серйозним і надзвичайно вимогливим до апаратних ресурсів програмним забезпеченням.

Порівняльні характеристики процесорів G80, GT200 і Fermi:

Процесор

G80

GT200

Fermi

Кількість транзисторів

681 млн

1400000000

3,0 млрд

Обчислення з плаваючою комою подвійної точності

Чи не підтримай-вають

30 FMA операцій за такт

256 FMA операцій за такт

Обчислення з плаваючою комою одинарної точності

128 MAD операцій за такт

240 MAD операцій за такт

512 MAD операцій за такт

Warp-планувальники (на один SM-блок)

1

1

2

Блок спеціалізованих функцій (на один SM-блок)

2

2

4

Колективна пам’ять (на один SM-блок)

16 Кб

16 Кб

З можливо-стю конфігу-рації 16 Кб або 48 Кб

Кеш-пам’ять першого рівня (на один SM-блок)

Немає

Немає

З можливо-стю конфігу-рації 16 Кб або 48 Кб

Кеш-пам’ять другого рівня

Немає

Немає

768 Кб

Підтримка коду корекції

Немає

Немає

Та

Паралельна обробка програмних ядер (kernels)

Немає

Немає

До 16

Адресація пам’яті

32 розрядна

32 розрядна

64 розрядна

Головні особливості архітектури NVIDIA Fermi:

Proteus

08/10.2009

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*