Прискорення (комп'ютерна архітектура)
У комп'ютерній архітектурі, прискорення це процес для збільшення продуктивності між двома системами що працюють над однією проблемою. Технічно це підвищення швидкості виконання завдання на двох однакових архітектурах з різними ресурсами. Поняття прискорення побудоване на законі Амдала, який був зосереджений на паралельних обчисленнях. Проте, прискорення може бути використане у більш загальному плані, щоб показати вплив на продуктивність після будь-якого збільшення ресурсів.
Визначення
Прискорення може бути визначене для двох типів величин: очікування та пропускної здатності.[1]
Очікування архітектури є обернено пропорційним швидкості виконання поставленого завдання:
- де
- v - це швидкість виконання завдання;
- T — це час виконання завдання;
- W — це виконання робочого навантаження завданням.
Пропускна здатність такої архітектури є швидкість виконання завдання:
де
- ρ — це щільність виконання;
- A — це потужність виконання(тобто, кількість процесорів для паралельної архітектури)[1]
Затримка часто вимірюється у секундах на одиницю виконання робочого навантаження. Пропускна здатність часто вимірюється в секундах на одиницю виконання робочого навантаження. Іншою часто використовуваною одиницею вимірювання пропускної здатності є кількість інструкцій за такт. Його обернена пропорційність, кількість тактів за інструкцію, є ще одним частим блоком затримки.
Прискорення є безрозмірним і визначається по різному для кожного типу величини, таким чином воно є послідовною метрикою.
Прискорення в затримці
Прискорення у затримці визначається за такою формулою:[2]
де
- Slatency — це прискорення в затримці архітектури 2 по відношенню до архітектури 1;
- L1 — це затримка в архітектурі 1 ;
- L2 — це затримка в архітектурі 2.
Прискорення в затримці може бути передбачене за законом Амдаля або законом Густафсона.
Прискорення у пропускній здатності
Прискорення у пропускній здатності визначається за такою формулою:[3]
де
- Sthroughput — це прискорення у пропускній здатності архітектури 2 по відношенню до архітектури 1;
- Q1 — це пропускна здатність архітектури 1;
- Q2 — це пропускна здатність архітектури 2.
Приклади
Використання часу виконання
Ми тестуємо ефективність гілки прогнозування під час виконання програми. Спочатку, ми виконуємо програму з стандартною гілкою прогнозування в процесорі, що виконується 2,25 секунд. Далі, ми виконаємо програму з нашою модифікованою (та сподіваємося покращеною) гілкою прогнозування на тому самому процесорі, який показав час виконання 1,50 секунди. В обох випадках навантаження виконання таке саме. Використовуючи нашу формулу прискорення ми знаємо що:
Наша нова гілка прогнозування надала 1,5х прискорення порівняно з оригіналом.
Використання тактів за інструкцію та інструкцій за такт
Ми також можемо використовувати прискорення у тактах за інструкцію, яке є затримкою. Спочатку, ми виконаємо програму із стандартною гілкою прогнозування, що дає 3 такти за інструкцію. Далі, ми виконаємо програму з нашою модифікованою гілкою прогнозування, яка дає 2 такти за інструкцію. В обох випадках навантаження виконання однакове та обидві архітектури не паралельні одна одній. Використовуючи формулу прискорення маємо:
Також ми можемо виміряти прискорення в інструкції за такт, яка є пропускною здатністю та обернено пропорційна такту за інструкцію. Використовуючи формулу прискорення маємо:
Ми досягли того ж прискорення 1,5х хоча вимірювали різні величини.
Додаткові деталі
Нехай S буде прискоренням виконання завдання та s прискорення виконання тієї частини програми, що корисна для покращення ресурсів архітектури. Лінійне прискорення або ідеальне прискорення виходить при S=s.Коли задача виконується з лінійним прискоренням, то локальне прискорення збільшує вдвічі загальне прискорення. Як ідеальний варіант, це вважається дуже хорошою масштабованістю.
Ефективність як метрика використання ресурсів модифікованої системи визначається як:
Його величина зазвичай становить від 0 до 1. Програми з лінійним прискоренням та програми що працюють з одним процесором мають ККД 1, у той час як багато важких до розпаралелення програм мають ККД 1/ln(s), що наближено до 0, якщо кількість процесорів A=s збільшується.[1]
В технічних умовах,криві ефективності частіше використовуються для графів,ніж криві прискорення,так як
- всі області графу корисні(коли в кривих прискорення половина місця витрачається даремно);
- Легше побачити як добре працює вдосконалення системи;
- Не має необхідності будувати криву "ідеального прискорення";
В маркетинговому контексті,криві прискорення використовуються частіше,в основному тому що вони йдуть вгору та вправо і, таким чином, є краще до менш інформованого.
Примітки
- Martin, Milo. Performance and Benchmarking. Процитовано 5 червня 2014.
- Hennessy, John L.; David A., Patterson (2012). Computer Architecture: A Quantitive Approach. Waltham, MA: Morgan Kaufmann. с. 46–47. ISBN 978-0-12-383872-8.
- Baer, Jean-Loup (2010). Microprocessor Architecture: From Simple Pipelines to Chip Multiprocessors. New York: Cambridge University Press. с. 10. ISBN 978-0-521-76992-1.