На головну

Доповнення. Паралелізм і нова архітектура NVIDIA Fermi

  1.  NVIDIA CUDA
  2.  Quot; Орден Іллі "і нова парадигма змови
  3.  Апаратна архітектура Фон-Нейманом
  4.  архітектура
  5.  архітектура
  6.  архітектура
  7.  архітектура

Пам'ятаєте приказку - «Одна голова добре, а дві краще». Так ось, тут як раз можна, так і сказати. При цьому, чим більше голів тим швидше народжується ідея і який то продукт. На ілюстрації представлені як CPU, так і GPU. Як можна уявити з відповіді Юрія. GPU являє собою масив з окремих обчислювальних ядер. При цьому, кеш звичайно присутня, але не такий великий у порівнянні з кешем CPU.

Приклад пристрою CPU і відміну GPU. Як видно з ілюстрації в GPU використовується набагато більше ALU ніж в CPU.

За рахунок збільшення кількості обчислювальних ядер (ALU) досягається продуктивність системи в розрахунках.

На GTC 2009 було презентовано нову архітектура - NVIDIA Fermi. Про неї я і хочу поговорити в цьому додатку. Почнемо з того, що тепер в нових чіпах більше 3х мільярдів транзисторів це звичайно стало можливим завдяки переходу на 40 нм техпроцес. Так само на частку обчислень надано 512 так званих CUDA ядер. На замітку в попередньому чипі (G200) було 240 ядер, а в G80 їх всього 128.

Архітектура Fermi. Тепер, як ви бачите, використовується досить ємний кеш 2-го рівня.

Тепер чіп складається з 16-ти потокових мультипроцессоров, які містять по 32 шейдерних ядра. Що в сукупності і дає нам 512 CUDA ядер. Блоки розташовані навколо загальної кеш-пам'яті другого рівня. Кожен з блоків складається з планувальника і організатора, виконавчих модулів і файлів регістрів і кеш-пам'яті першого рівня.

Детальна архітектура мультипроцессора.

Інша досить привабливу рішення, яке реалізовано в Fermi - підтримка корекції помилок пам'яті (ЕСС). Що звичайно позначиться на продуктивності в кращу сторону. А якщо враховувати те, що дана архітектура більше спрямована і зорієнтована на обчислення, то це дозволить використовувати продукти наступного покоління Tesla або Quadro в ще більш складних завданнях і вимагають тривалих обчислень з великими обсягами даних.

Одне з ядер мультипроцессора.

Так само слід зазначити підтримку максимального обсягу пам'яті - 6 Гб, чіп оснащується шістьма 64-розрядними контролерами пам'яті GDDR5, що дає 384-бітну шину пам'яті. Для прискорення математичних обчислень і виконання інших функцій призначена технологія NVIDIA Parallel DataCache. На завершення скажу, що також Fermi підтримує апаратно такі кошти програмування як C, C ++, FORTRAN, і багато інших функцій - такі як Open CL і Direct Compute.

Dimson3d | У демонстраційних матеріалах ви часто показуєте, діаграму продуктивності GPU у порівнянні з CPU. Чи є межа на даний момент продуктивності GPU? Центральні процесори все одно впираються в певний стелю.

Межа? (Посміхаючись, перепитав Юрій) Хороше питання. Напевно, межа є, просто ми живемо в фізичному світі. Питання можна поставити так: «Де ця межа знаходиться?» - Наскільки ця стеля великий. Зараз насправді межею як я уявляю, є так званий power wall. Ми підходимо до того моменту, коли високопродуктивним кластерам неможливо далі нарощувати продуктивність через те, що кількість енергії, яке потрібно для підживлення машин дуже велика. У цьому сенсі якраз GPU, і взагалі паралельні машини пропонують більш ефективне рішення. Один параметр, яким ми зазвичай хвалимося - Performance per Watt. Це відсоток продуктивності на Ват спожитої енергії або скільки GFlop споживає енергії. Чому це так? Якщо повернемося до архітектури виникає така ситуація завдяки тому, що ми використовуємо площу кристала на самі обчислювачі. Ми намагаємося дуже ефективно використовувати доступну площу і доступний бюджет при споживаної енергії. Замість того, щоб кешувати дані, наш механізм виконання базується на зовсім інших припущеннях. Традиційні процесори змушені будувати великі масивні кеші і якщо програма використовує набір даних, який не поміщається в кеш, продуктивність процесорів сильно падає. Відповідно, чим вище ми хочемо отримати фінальну продуктивність тим, більше нам потрібно будувати кеш, а кеш - структура досить неефективна в плані споживаної потужності і кеш сам по собі це не обчислювальний модуль. Ті транзистори, які ви витрачаєте на кеш це просто зайнята площа, що не виконує обчислень.

Графік продуктивності GPU у порівнянні з CPU.

Dark | Як йдуть справи з комунікаційними витратами?

Абсолютно вірно, комунікаційні витрати - тут ключовим моментом є те, що ми не будуємо великі масивні кеші, а використовуємо площа кристала і енергетичні ресурси для додавання нових паралельних модулів - дозволяє нам перебувати на кривої зростання продуктивності. Нарощувати паралелізм, нарощувати кількість «маленьких обчислювачів» значно простіше, ніж збільшувати тактову частоту. Центральні процесори не можуть дозволити собі таке зростання саме через те, що не можуть нарощувати паралелізм такими ж темпами. Оскільки вони змушені добре виконувати традиційні додатки - OS, прикладні програми (Word, Excel наприклад) і вони просто не можуть собі дозволити зменшити обчислювальне ядро. Вони не можуть деградувати продуктивність всіх цих додатків.

Dark | А чи є якийсь межа кількості процесорів, після якого продуктивність просто падає?

Напевно це залежить від способу використання технологій. Якщо у нас гіпотетично додаток, яке використовує максимально паралелізм, який не має на увазі ні яку комунікацію між потоками виконання, ви можете в принципі масштабироваться нескінченно. Проблеми накладних витрат виникають тоді, коли потрібно, яке, то взаємодія між паралельно-що виконуються потоками. У зв'язку з законом Даля, який говорить, що якщо у вас програма складається з паралельних і послідовних ділянок коду, то максимальна масштабованість продуктивності буде обмежена відсотком часу, який ви проводите в послідовному ділянці коли. Якщо таких ділянок коду мало, то в принципі будь-яка паралельна машина буде прискорювати. І чим більше у вас процесорів працює паралельно, тим ви будете швидше працювати.

Dimson3d | У лінійці вашої продукції для обчислень за допомогою CUDA, представлені рішення GPU GeForce, Quadro FX і Tesla. Всі ці графічні процесори і системи можуть використовуватися для паралельних розрахунків. Розкажіть, будь ласка, про NVIDIA Tesla - її основні відмінності, що дозволяє її виділити серед інших.

В першу чергу я скажу, що GeForce, Quadro і Tesla - просто назви продуктів. Це продукти, які орієнтовані на той чи інший ринок, всі вони використовують одну й ту ж саму базову архітектуру. Базова архітектура, закладена, в ці продукти підтримує NVIDIA CUDA і в принципі використовують одну й ту ж саму технологію. Скажімо, відмінності починаються на більш високому рівні, в плані того, що ми намагаємося орієнтувати продукт на конкретний ринок. GeForce - продукти для Consumer напрямки - геймерів, використання в стандартних комп'ютерах. Quadro має орієнтацію на більш професійний ринок - візуалізація, CAD, робочі станції (workstations). Tesla - продукт, який орієнтований на обчислення в кластерах, якщо ви хочете побудувати кластер на основі GPU, то ви будете використовувати Tesla. Якщо говорити про відмінності між цими продуктами, то Tesla зокрема відрізняється тим, що чіпи проходять найбільш жорстке тестування. Якість пам'яті, яка встановлюється на плату значно вище, ніж у GeForce. Оскільки ми самі випускаємо Tesla, ми даємо гарантію, що вона буде працювати у вас 24 години на добу 7 днів на тиждень. Це залежить від способу застосування даного конкретного продукту. GeForce - скоріше за все ви включите комп'ютер, зробите все необхідне, пограєте і вимкніть його, і чи зможе він пропрацювати цілий тиждень з постійним навантаженням 24/7? Якщо у вас сервер, ви проводите, які складні наукові розрахунки, то вам важливо, що б він був доступний постійно. Це продукти, які орієнтовані на різні способи застосування.

 




 Передача потокового обробка на GPU |  Доповнення. OptiX, iray, RealityServer |  Корпорація Nvidia презентувала швидку однопроцесорних відеокарту |

© um.co.ua - учбові матеріали та реферати