Графический процессор

Графический процессор (англ. graphics processing unit, GPU) — специализированная электронная схема, предназначенная для цифровой обработки изображений и ускорения вывода компьютерной графики. Графические процессоры могут быть как компонентом дискретной видеокарты, так и встроенными в материнские платы, мобильные телефоны, персональные компьютеры, рабочие станции и игровые приставки. Позднее было обнаружено, что GPU полезны и для не связанных с графикой вычислений, особенно при решении задач, хорошо поддающихся параллелизации, благодаря их параллельной архитектуре. Высокая производительность GPU при выполнении большого количества вычислений позволила их применению в ряде областей, включая искусственный интеллект, где они превосходят по эффективности при работе с большими объёмами данных и ресурсоёмкими задачами. К другим внеграфическим применениям относятся обучение нейронных сетей и майнинг криптовалют.

Компоненты графического процессора

История

1970-е годы

Специализированные графические схемы начали применяться на игровых автоматах с 1970-х годов. Оперативная память для кадровых буферов в раннем оборудовании была дорогой, поэтому видеочипы собирали изображение в процессе вывода на монитор[1].

Специализированная схема barrel shifter помогала ЦП анимировать графику в буфере кадров для ряда игр 1970-х годов (например, Gun Fight (1975), Sea Wolf (1976) и Space Invaders (1978))[2]. Аппаратная платформа Namco Galaxian в 1979 году использовала специализированное графическое оборудование, поддерживающее RGB-цвета, многоцветные спрайты и фоновые тайлы[3]. Графика Galaxian использовалась рядом компаний в «золотой эре» игровых автоматов, включая Namco, Centuri, Gremlin, Irem, Konami, Midway, Nichibutsu, Sega и Taito[4].

undefined

Atari 2600 (1977) применяла видеошифер Television Interface Adaptor[5]. Atari 8-bit (1979) получила видеопроцессор ANTIC, интерпретировавший специальные инструкции «display list», задающие режимы, отображаемые на каждой строке[6]. ANTIC позволял реализовывать плавную вертикальную и горизонтальную прокрутку без участия центрального процессора[7].

undefined

1980-е годы

NEC μPD7220 стал первой реализацией процессора графического вывода для персональных компьютеров на одном кристалле LSI; он лёг в основу ряда высокопроизводительных видеокарт. Это был первый полностью интегрированный VLSI графический процессор для ПК, поддерживающий разрешения до 1024×1024[8]. Его клоны создавались другими компаниями, включая Intel 82720[9].

undefined

Процессоры-блиттеры для ускорения графики применялись в автоматах Williams Electronics и других компаниях[10].[11].

Hitachi ARTC HD63484 (1984) стал первым массовым CMOS-графическим процессором для ПК, а Amiga (1985) получила кастомный чип с поддержкой блиттера и сопроцессора для работы с видеорегистрами[12].

Texas Instruments TMS34010 (1986) — первый полностью программируемый графический процессор[13].

IBM 8514 — одна из первых видеоадаптеров для ПК с аппаратной поддержкой примитивов. Sharp X68000, FM Towns и другие японские ПК конца 1980-х демонстрировали расширенные графические возможности[14].

Первое специализированное оборудование для полигональной 3D-графики появилось в аркадных автоматах Namco System 21 и Taito Air System (1988)[15].[16].

IBM представила свой графический стандарт VGA в 1987 году. В 1988 году создан консорциум VESA для развития стандарта Super VGA[17].

1990-е годы

В 1991 году S3 Graphics представила ускоритель S3 86C911, за которым последовали массовые 2D-ускорители других производителей[18].

В начале 1990-х ускорение реального времени 3D-графики становится востребованным, что привело к появлению специализированных 3D-чипов в игровых автоматах и домашних консолях (Sega Saturn, PlayStation, Nintendo 64). Аппаратное ускорение T&L появилось в Nintendo 64 Reality Coprocessor (1996) и видеокартах FireGL 4000[19].

Термин «GPU» (graphics processing unit) впервые официально использовала компания Sony для обозначения процессора своей приставки PlayStation (1994)[20].

2000-е годы

В 2002 году ATI Radeon 9700 стал первым ускорителем Direct3D 9.0, с поддержкой сложных шейдеров и операций с плавающей точкой[21].

В 2006—2007 годы появляются универсальные вычисления на GPU (GPGPU), платформы CUDA (Nvidia), OpenCL (Khronos Group), DirectCompute. Графические процессоры стали применять для машинного обучения[22], анализа изображений, линейной алгебры, статистики, 3D-восстановления, ценообразования опционов[23].

2010-е годы

В 2010 году Nvidia начала применять Tegra GPU для автомобильных мультимедийных систем (Audi)[24].

Рынок видеокарт пережил технический прорыв: AMD Radeon HD 6000, Nvidia GeForce серий Kepler, Maxwell, Pascal (28-16 нм), а также внедрение аппаратного трассирования лучей (Nvidia RTX 20, AMD Radeon RX 6000)[25].

Sony PlayStation 4 и Microsoft Xbox One (2013), PlayStation 5 и Xbox Series X/S (2020) используют графические процессоры архитектур семейства AMD Radeon.

2020-е годы

В 2020-х GPU активно используются для массовых параллельных вычислений, в частности для обучения нейронных сетей и языковые модели в искусственном интеллекте. В рабочих станциях появились тензорные ядра для глубокого обучения, достигнув производительности до сотен TFLOPS[26].

Компании-производители графических процессоров

Крупнейшими производителями GPU в XXI веке являются Intel, Nvidia и AMD/ATI Technologies; к ним также относятся Matrox, Jingjia Micro и ряд других (например, китайские производители)[27].

Технические особенности

Производительность GPU определяется топологией соединений, тактовой частотой, количеством и размером кэш-памяти, а также числом вычислительных блоков — потоковых мультипроцессоров (SM) у Nvidia, вычислительных блоков (CU) у AMD, Xe-ядра у Intel. Основной показатель — FLOPS, современные модели достигают производительности в десятки терафлопс[28].

2D-API

Ранние GPU поддерживали низкоуровневые API для ускорения 2D-графики: GDI, DirectDraw и др[29].

Формы графических процессоров

Терминология

Изначально термин «GPU» (graphics processor unit) обозначал самостоятельный программируемый процессор, отвечающий за обработку и вывод графики[30][31] После 1994 года термин прочно закрепился за специализированными микросхемами от Sony, Nvidia, AMD и др[20]. ATI использовала альтернативный термин VPU («визуальный процессор»).

В ПК различают два основных типа GPU[32]:

  • Дискретные (dedicated/discrete) графические процессоры;
  • Интегрированные (integrated/shared, IGP/UMA) решения.

Дискретный графический процессор

Используют выделенную память специального типа (чаще всего GDDR). В многопроцессорных системах (SLI, CrossFire, NVLink) несколько GPU совместно формируют изображение на одном экране, однако подобные конфигурации постепенно утрачивают популярность из-за высокой стоимости и поддержки далеко не всеми играми[33][34][35].

Тем не менее, многографические конфигурации востребованы на суперкомпьютерах (Summit), рабочих станциях для работы с видео и визуальными эффектами, также они находят применение в GPGPU-задачах, рендеринге и ИИ-обучении[36][37][38].

Встроенный графический процессор (интегрированная графика)

Интегрированные графические процессоры (IGP/UMA) используют часть системной памяти ПК либо выделенную область на материнской плате. Чаще всего встроены в чипсет (northbridge) или в одно кристалле вместе с ЦП (AMD APU, Intel HD Graphics). Интегрированные GPU в большинстве ПК (данные на 2007 год — около 90 % всех поставок)[39].

Исторически IGP не поддерживали современные игры, но современные интегрированные решения AMD и Intel справляются с 2D и некоторой 3D-графикой. Ограничения таких GPU связаны с меньшей пропускной способностью общей памяти по сравнению с выделенной памятью видеокарт[40].

Ужиная архитектура памяти (UMA) включает совместное использование ЦП и GPU общей памяти и адресного пространства (например, современные процессоры AMD, Intel, Apple, PS5, Xbox Series)[41][42].

Универсальные вычисления на GPU (GPGPU, Stream processing)

Современные GPU применяются не только для графики, но и как stream/openCL-процессоры для запуска вычислительных ядер (kernels), где при большом числе векторных операций достигается ускорение на порядки по сравнению с ЦП. Как AMD, так и Nvidia активно развивают это направление, в том числе для распределённых проектов (например, Folding@home)[43].

GPU также ускоряют высокопроизводительные вычисления — три из десяти самых мощных суперкомпьютеров мира применяют GPU-ускорители[44].

Внешние GPU (eGPU)

Для повышения графической производительности ноутбуков используются внешние корпуса (eGPU), подключаемые по шине PCI Express через специальные порты (ExpressCard, Thunderbolt, OCuLink). Внешние GPU требуют собственного блока питания[45][46].

Энергоэффективность

См. статью Производительность на ватт.

Статистика продаж

В 2013 году было отгружено 438 миллионов GPU, прогноз на 2014—414 миллионов; к третьему кварталу 2022 года поставки составили около 75,5 миллиона, что меньше на 19 % по сравнению с годом ранее[47][48].

См. также

Литература

Примечания

  1. Hague, James Why Do Dedicated Game Consoles Exist? Programming in the 21st Century (10 сентября 2013). Дата обращения: 11 января 2023. Архивировано 4 мая 2015 года.
  2. mame/8080bw.c at master · mamedev/mame · GitHub. GitHub. Архивировано 21 ноября 2014 года.
  3. mame/galaxian.c at master · mamedev/mame · GitHub. GitHub. Архивировано 21 ноября 2014 года.
  4. mame/galaxian.c at master · mamedev/mame · GitHub. GitHub. Архивировано 21 ноября 2014 года.
  5. Springmann, Alessondra. Atari 2600 Teardown: What's Inside Your Old Console?. Архивировано 14 июля 2015 года. Дата обращения: 14 июля 2015.
  6. What are the 6502, ANTIC, CTIA/GTIA, POKEY, and FREDDIE chips? Atari8.com. Архивировано 5 марта 2016 года.
  7. Wiegers, Karl E. (декабрь 1985). “Atari Fine Scrolling”. Compute! (67): 110. Архивировано из оригинала 2006-02-16. Используется устаревший параметр |url-status= (справка); Проверьте дату в |date= (справка на английском)
  8. Advances in Computer Graphics II / Hopgood ; Hubbold ; Duce. — Springer, 1986. — P. 169. — «Perhaps the best known one is the NEC 7220.». — ISBN 9783540169109.
  9. Anderson, Marian Famous Graphics Chips: NEC μPD7220 Graphics Display Controller (амер. англ.). IEEE Computer Society (18 июля 2018). Дата обращения: 17 октября 2023.
  10. Riddle, Sean Blitter Information. Архивировано 22 декабря 2015 года.
  11. Wolf, Mark J. P. Before the Crash: Early Video Game History : []. — Wayne State University Press, июнь 2012. — P. 185. — ISBN 978-0814337226.
  12. Anderson, Marian GPU History: Hitachi ARTC HD63484 (амер. англ.). IEEE Computer Society (7 октября 2018). Дата обращения: 17 октября 2023.
  13. Famous Graphics Chips: TI TMS34010 and VRAM. The first programmable graphics processor chip (10 января 2019).
  14. Hardcore Gaming 101: Retro Japanese Computers: Gaming's Final Frontier. hardcoregaming101.net. Архивировано 13 января 2011 года.
  15. System 16 – Namco System 21 Hardware (Namco). system16.com. Архивировано 18 мая 2015 года.
  16. System 16 – Taito Air System Hardware (Taito). system16.com. Архивировано 16 марта 2015 года.
  17. Brownstein, Mark. NEC Forms Video Standards Group, InfoWorld (14 ноября 1988), С. 3. Дата обращения: 27 мая 2016.
  18. “S3 Video Boards”. InfoWorld. 14 (20): 62. 18 мая 1992. Архивировано из оригинала 22 ноября 2017. Дата обращения 2015-07-13. Используется устаревший параметр |url-status= (справка)
  19. Fujitsu Develops World's First Three Dimensional Geometry Processor. fujitsu.com. Архивировано 12 сентября 2014 года.
  20. 1 2 Is it Time to Rename the GPU? (17 июля 2018).
  21. Dreijer, Søren Bump Mapping Using CG (3rd Edition). Дата обращения: 30 мая 2007. Архивировано 20 января 2010 года.
  22. Raina, Rajat. Large-scale deep unsupervised learning using graphics processors // Proceedings of the 26th Annual International Conference on Machine Learning – ICML '09 / Rajat Raina, Anand Madhavan, Andrew Y. Ng. — Dl.acm.org, 14 июня 2009. — P. 1–8. — doi:10.1145/1553374.1553486.
  23. Liepe (2010). “ABC-SysBio—approximate Bayesian computation in Python with GPU support”. Bioinformatics. 26 (14): 1797—1799. DOI:10.1093/bioinformatics/btq278. PMC 2894518. PMID 20591907. Архивировано из оригинала 2015-11-05. Используется устаревший параметр |url-status= (справка); |access-date= требует |url= (справка)
  24. Teglet, Traian NVIDIA Tegra Inside Every Audi 2010 Vehicle (8 января 2010). Дата обращения: 3 августа 2016. Архивировано 4 октября 2016 года.
  25. Nvidia's monstrous Pascal GPU is packed with cutting-edge tech and 15 billion transistors (5 апреля 2016). Дата обращения: 3 августа 2016. Архивировано 31 июля 2016 года.
  26. Smith, Ryan NVIDIA Volta Unveiled: GV100 GPU and Tesla V100 Accelerator Announced. AnandTech. Дата обращения: 16 августа 2018. Архивировано 11 мая 2017 года.
  27. Pan, Che Blacklisted Jingjia Micro to develop GPUs in Wuxi in latest chip self sufficiency move (англ.). South China Morning Post (31 июля 2023). Дата обращения: 20 января 2025.
  28. Hruska, Joel How Do Graphics Cards Work? Extreme Tech (10 февраля 2021). Дата обращения: 17 июля 2021.
  29. CL-GD5446 64-bit VisualMedia Accelerator Preliminary Data Book, Cirrus Logic, ноябрь 1996, <https://theretroweb.com/chip/documentation/cl-gd5446-smol-645654db1ae03286068933.pdf>. Проверено 30 января 2024. 
  30. Barron, E. T. A micro controlled peripheral processor // Conference record of the 6th annual workshop on Microprogramming – MICRO 6 / E. T. Barron, R. M. Glorioso. — сентябрь 1973. — P. 122–128. — ISBN 9781450377836. — doi:10.1145/800203.806247.
  31. Levine, Ken (август 1978). “Core standard graphic package for the VGI 3400”. ACM SIGGRAPH Computer Graphics. 12 (3): 298—300. DOI:10.1145/965139.807405. Проверьте дату в |date= (справка на английском)
  32. Help Me Choose: Video Cards. Dell. Дата обращения: 17 сентября 2016. Архивировано 9 сентября 2016 года.
  33. Abazovic, F. Crossfire and SLI market is just 300.000 units. fudzilla (3 июля 2015). Дата обращения: 24 декабря 2023.
  34. Is Multi-GPU Dead? (7 января 2018).
  35. Nvidia SLI and AMD CrossFire is dead – but should we mourn multi-GPU gaming? (24 августа 2019).
  36. NVIDIA FFmpeg Transcoding Guide (24 июля 2019).
  37. V-Ray for Nuke — Ray Traced Rendering for Compositors. Дата обращения: 24 декабря 2023.
  38. What about multi-GPU support? – Folding@home.
  39. Key. AnandTech – μATX Part 2: Intel G33 Performance Review. anandtech.com. Архивировано 31 мая 2008 года.
  40. Coelho, Rafael Does dual-channel memory make difference on integrated video performance? Hardware Secrets (18 января 2016). Дата обращения: 4 января 2019.
  41. Shimpi, Anand Lal AMD Outlines HSA Roadmap: Unified Memory for CPU/GPU in 2013, HSA GPUs in 2014. www.anandtech.com. Дата обращения: 8 января 2024. Архивировано 4 февраля 2012 года.
  42. Lake, Adam T. Getting the Most from OpenCL™ 1.2: How to Increase Performance by... (англ.). Intel. Дата обращения: 8 января 2024.
  43. Murph. Stanford University tailors Folding@home to GPUs (29 сентября 2006). Дата обращения: 4 октября 2007. Архивировано 12 октября 2007 года.
  44. Top500 List – June 2012. Top500.org. Дата обращения: 21 января 2014. Архивировано 13 января 2014 года.
  45. Mohr. How to make an external laptop graphics adaptor. TechRadar. Архивировано 26 июня 2017 года.
  46. Best External Graphics Card 2020 (EGPU) — The Complete Guide (16 марта 2020).
  47. GPU Q3'22 biggest quarter-to-quarter drop since the 2009 recession (амер. англ.). Jon Peddie Research (20 ноября 2022). Дата обращения: 6 июня 2023.
  48. Graphics chips market is showing some life. TG Daily (20 августа 2014). Дата обращения: 22 августа 2014. Архивировано 26 августа 2014 года.