Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

TeraScale - это кодовое название семейства микроархитектур графических процессоров, разработанных ATI Technologies / AMD и их второй микроархитектурой, реализующей унифицированную шейдерную модель после Xenos . TeraScale заменил старые микроархитектуры с фиксированным конвейером и напрямую конкурировал с первой унифицированной шейдерной микроархитектурой Nvidia под названием Tesla . [1] [2]

TeraScale использовался в HD 2000, изготовленном с длиной волны 80 и 65 нм , HD 3000, изготовленном с длиной волны 65 и 55 нм, HD 4000, изготовленным с длиной волны 55 и 40 нм, HD 5000 и HD 6000, изготовленным с длиной волны 40 нм. TeraScale также использовался в блоках ускоренной обработки AMD под кодовыми названиями Brazos, Llano, Trinity и Richland. TeraScale даже можно найти в некоторых последующих брендах видеокарт.

TeraScale - это архитектура VLIW SIMD , а Tesla - это архитектура RISC SIMD , похожая на преемник TeraScale Graphics Core Next . TeraScale реализует HyperZ . [3]

Генератор кода LLVM (т.е. серверная часть компилятора) доступен для TeraScale [4], но, похоже, он отсутствует в матрице LLVM. [5] Например, Mesa 3D использует это.

TeraScale 1 [ править ]

На выставке SIGGRAPH 08 в декабре 2008 года сотрудник AMD Майк Хьюстон описал некоторые элементы микроархитектуры TeraScale. [6]

На FOSDEM09 Маттиас Хопф из технологического партнера AMD SUSE Linux представил слайд, посвященный программированию драйвера с открытым исходным кодом для R600. [7]

Унифицированные шейдеры [ править ]

Предыдущие архитектуры графических процессоров реализовывали фиксированные конвейеры, т. Е. Существовали отдельные шейдерные процессоры для каждого типа шейдера . TeraScale использует множество гибких шейдерных процессоров, которые можно запланировать для обработки различных типов шейдеров, тем самым значительно увеличивая пропускную способность графического процессора (в зависимости от сочетания инструкций приложения, как указано ниже). Ядро R600 обрабатывает вершинные, геометрические и пиксельные шейдеры в соответствии со спецификацией Direct3D 10.0 для Shader Model 4.0 в дополнение к полной поддержке OpenGL 3.0. [8]

Новая унифицированная функциональность шейдера основана на архитектуре с очень длинным командным словом (VLIW), в которой ядро ​​выполняет операции параллельно. [9]

Кластер шейдеров состоит из 5 блоков потоковой обработки. Каждый блок потоковой обработки может исключить законченную инструкцию MAD с плавающей запятой одинарной точности (или ADD или MUL) за такт, скалярное произведение (DP и специальный корпус путем объединения ALU) и целочисленное ADD. [10] Пятая единица более сложна и может дополнительно обрабатывать специальные трансцендентные функции, такие как синус и косинус . [10] Каждый шейдерный кластер может выполнять 6 инструкций за такт (пик), состоящий из 5 инструкций затенения плюс 1 ветвь. [10]

Примечательно, что архитектура VLIW несет с собой некоторые классические проблемы, присущие проектам VLIW, а именно задачу поддержания оптимального потока инструкций. [9] Кроме того, микросхема не может совместно выдавать инструкции, если одна зависит от результатов другой. Производительность графического процессора сильно зависит от сочетания инструкций, используемых приложением, и от того, насколько хорошо компилятор реального времени в драйвере может организовать указанные инструкции. [10]

Ядро R600 включает 64 шейдерных кластера, а ядра RV610 и RV630 имеют 8 и 24 шейдерных кластера соответственно.

Аппаратная тесселяция [ править ]

TeraScale включает несколько модулей, способных выполнять тесселяцию . Они похожи на программируемые блоки графического процессора Xenos, который используется в Xbox 360.

Тесселяция была официально указана в основных API только начиная с DirectX 11 и OpenGL 4, в то время как графические процессоры на базе TeraScale 1 и 2 (серии HD 2000, 3000 и 4000) совместимы только с Direct3D 10 и OpenGL 3.3. Графические процессоры на базе TeraScale 3 (начиная с серии Radeon HD 5000 ) были первыми, кто соответствовал как Direct3D 11, так и OpenGL 4.0, де-факто поддерживая функцию тесселяции.

Модули тесселяции TeraScale позволяют разработчикам взять простую полигональную сетку и разделить ее с помощью функции оценки криволинейной поверхности. Существуют различные формы тесселяции, такие как поверхности Безье с N-участками , B-сплайны и NURBS , а также некоторые методы подразделения поверхности, которые обычно включают карту смещения в виде текстуры. [11] По сути, это позволяет простой, низкополигональной модели значительно увеличить плотность полигонов в реальном времени с очень небольшим влиянием на производительность. Скотт Уоссон из Tech Report отметил во время демонстрации AMD, что получившаяся модель была настолько плотной с миллионами полигонов, что казалась твердой. [9]

Тесселятор TeraScale напоминает ATI TruForm , торговую марку ранней единицы аппаратной тесселяции, первоначально использовавшейся в Radeon 8500 . [12]

Хотя это оборудование тесселяции не входило в требования OpenGL 3.3 или Direct3D 10.0, а у конкурентов, таких как серия GeForce 8, не было аналогичного оборудования, Microsoft добавила функцию тесселяции в свои планы на будущее DirectX 10.1. [13]

ATI TruForm получила мало внимания со стороны разработчиков программного обеспечения. Некоторые игры (такие как Madden NFL 2004 , Serious Sam , Unreal Tournament 2003 и 2004 и неофициально Morrowind ) поддерживали технологию тесселяции от ATI. Такая медленная адаптация связана с тем фактом, что эта функция не использовалась совместно с графическими процессорами NVIDIA, поскольку они реализовали конкурирующее решение тесселяции с использованием патчей Quintic-RT, которые получили еще меньшую поддержку со стороны основных разработчиков игр. [14]Поскольку графический процессор Xbox 360 основан на архитектуре ATI, Microsoft рассматривала аппаратную тесселяцию поверхности как одну из основных функций графического процессора. Пару лет спустя функция тесселяции стала обязательной с выпуском DirectX 11 в 2009 году. [11] [13]

Геометрический процессор GCN - это самое актуальное решение AMD (которая приобрела бизнес графических процессоров ATI) для выполнения тесселяции с использованием графического процессора.

Ультра-поточный диспетчерский процессор [ править ]

Несмотря на то, что R600 значительно отличается от предыдущих разработок, он по-прежнему разделяет многие функции со своим предшественником, Radeon R520 . [9] Ультра-Каскадная Отправка Процессор является одним из основных компонентов архитектурных ядра R600, так же , как это было с X1000 графическими процессорами Radeon. Этот процессор управляет большим количеством потоков на лету трех различных типов (вершинные, геометрические и пиксельные шейдеры) и переключается между ними по мере необходимости. [9]При одновременном управлении большим количеством потоков можно реорганизовать порядок потоков для оптимального использования шейдеров. Другими словами, диспетчерский процессор оценивает, что происходит в других частях R600, и пытается поддерживать эффективность обработки на максимально высоком уровне. Есть и более низкие уровни управления; каждый SIMD-массив из 80 потоковых процессоров имеет свой собственный секвенсор и арбитр. Арбитр решает, какой поток обрабатывать следующим, в то время как секвенсор пытается переупорядочить инструкции для наилучшей производительности в каждом потоке. [9]

Текстурирование и сглаживание [ править ]

Текстурирование и окончательный вывод на ядре R600 аналогичны, но также отличаются от R580. R600 оснащен 4 текстурными блоками, которые отделены (независимы) от шейдерного ядра, как в графических процессорах R520 и R580. [9] Модули вывода рендеринга (ROP) серии Radeon HD 2000 теперь выполняют задачу сглаживания множественной выборки (MSAA) с программируемыми сетками выборок и максимум 8 точками выборки вместо использования пиксельных шейдеров, как в серии Radeon X1000 . Также новинкой является возможность фильтровать текстуры FP16, популярные при освещении HDR , на полной скорости. ROP также может выполнять трилинейную и анизотропную фильтрацию.на всех форматах текстур. На R600 это составляет 16 пикселей за такт для текстур FP16, в то время как текстуры FP32 более высокой точности фильтруют с половинной скоростью (8 пикселей за такт). [9]

Возможности сглаживания на R600 более надежны, чем на серии R520. В дополнение к возможности выполнять 8 × MSAA, по сравнению с 6 × MSAA на R300 до R580, R600 имеет новый режим настраиваемого сглаживания фильтра (CFAA). CFAA относится к реализации фильтров без рамки, которые смотрят на пиксели вокруг конкретного обрабатываемого пикселя, чтобы вычислить окончательный цвет и сглаживать изображение. [10] CFAA выполняется шейдером, а не ROP. Это значительно расширяет возможности программирования, поскольку фильтры можно настраивать, но также может вызвать потенциальные проблемы с производительностью из-за использования ресурсов шейдера. Начиная с выпуска R600, CFAA использует широкие и узкие тентовые фильтры. С их помощью линейно взвешиваются сэмплы за пределами обрабатываемого пикселя.на основе их расстояния от центроида этого пикселя, с линейной функцией, настроенной на основе выбранного широкого или узкого фильтра. [10]

Контроллеры памяти [ править ]

Контроллеры памяти подключаются через внутреннюю двунаправленную кольцевую шину, обернутую вокруг процессора. В Radeon HD 2900 это 1024-битная двунаправленная кольцевая шина (512-битное чтение и 512-битная запись) с 8 64-битными каналами памяти для общей ширины шины 512 бит на 2900 XT; [9] в Radeon HD 3800 это 512-битная кольцевая шина; в Radeon HD 2600 и HD 3600 это 256-битная кольцевая шина; В Radeon HD 2400 и HD 3400 кольцевой шины нет.

Обновление половинного поколения [ править ]

В серии было обновлено половину поколения с вариантами усадки матрицы (55 нм): RV670, RV635 и RV620. Все варианты поддерживают PCI Express 2.0, DirectX 10.1 с функциями Shader Model 4.1, выделенный ATI Unified Video Decoder (UVD) для всех моделей [15] и технологию PowerPlay для настольных видеокарт. [16]

За исключением серии Radeon HD 3800, все варианты поддерживали 2 встроенных выхода DisplayPort, поддерживающих 24- и 30-битные дисплеи с разрешением до 2560 × 1600. Каждый выход включал 1, 2 или 4 полосы на выход со скоростью передачи данных до 2,7 Гбит / с на полосу.

ATI заявила, что поддержка DirectX 10.1 может повысить производительность и эффективность обработки с уменьшенной ошибкой округления (0,5  ULP по сравнению со средней ошибкой 1,0 ULP как допустимая ошибка), улучшенными деталями и качеством изображения, глобальным освещением (метод, используемый в анимационных фильмах, и больше улучшений потребительских игровых систем, что дает более реалистичный игровой процесс. [17] )

Видеокарты [ править ]

  • Radeon HD 2000 серии
  • Radeon HD 3000 серии
  • Radeon HD 4000 серии

(см. список фишек на этих страницах)

TeraScale 2 "Evergreen" -семейство [ править ]

TeraScale 2 (VLIW5) был представлен с графическими процессорами серии Radeon HD 5000, получившими название Evergreen.

На HPG10 Марк Фаулер представил «Evergreen» и заявил, что, например, 5870 (Cypress), 5770 (Juniper) и 5670 (Redwood) поддерживают максимальное разрешение 6 раз 2560 × 1600 пикселей, а 5470 (Cedar) поддерживает 4 раза 2560 × 1600 пикселей, что важно для поддержки нескольких мониторов AMD Eyefinity . [18]

С выпуском Cypress архитектура графического движка Terascale была модернизирована и увеличила вдвое количество потоковых ядер, текстурных блоков и блоков ROP по сравнению с RV770. Архитектура потоковых ядер практически не изменилась, но добавлена ​​поддержка возможностей DirectX 11 / DirectCompute 11 с новыми инструкциями. [19] Также как и в RV770, четыре текстурных блока привязаны к 16 потоковым ядрам (каждый имеет пять элементов обработки, что в сумме составляет 80 элементов обработки). Эта комбинация называется ядром SIMD .

В отличие от предшественника Radeon R700 , поскольку DirectX 11 предусматривает полный контроль разработчика над интерполяцией, выделенные интерполяторы были удалены, вместо этого полагаясь на ядра SIMD. Ядра потоков могут обрабатывать инструкцию объединенного умножения-сложения с более высокой точностью округления (FMA) как с одинарной, так и с двойной точностью, что увеличивает точность по сравнению с умножением-сложением (MAD) и соответствует стандарту IEEE 754-2008 . [20] Инструкция сумма абсолютных разностей(SAD) был изначально добавлен в процессоры. Эту инструкцию можно использовать для значительного повышения производительности некоторых процессов, таких как кодирование и перекодирование видео в 3D-движке. Каждое ядро ​​SIMD оснащено 32-килобайтным локальным общим ресурсом данных и 8-ми килобайтным кешем L1 [19], в то время как все ядра SIMD совместно используют 64-килобайтный глобальный общий ресурс данных.

Контроллер памяти [ править ]

Каждый контроллер памяти связан с двумя четырьмя ROP , по одному на 64-битный канал, и выделенным кэшем L2 объемом 512 КБ. [19] Redwood имеет один четырехкратный ROP на 256-битный канал.

Энергосбережение [ править ]

AMD PowerPlay поддерживается, см. Там.

Чипсы [ править ]

  • Вечнозеленые чипсы:
    • Кедр RV810
    • Редвуд RV830
    • Можжевельник RV840
    • Кипарисовый RV870
    • Hemlock R800
    • Турки RV930
    • Бартс RV940
    • Caïcos RV910
  • APU, включающий TeraScale 2 IGP:
    • Онтарио
    • Закате
    • Llano

TeraScale 3 "Северные острова" - семейство [ править ]

TeraScale 3 (VLIW4) заменяет предыдущие 5-канальные конструкции VLIW на 4-канальные конструкции VLIW. Новый дизайн также включает дополнительный блок тесселяции для повышения производительности Direct3D 11.

TeraScale 3 реализован в видеокартах марки Radeon HD 6900, а также в APU Trinity и Richland . Чипы окрестили семьей «Северные острова».

Энергосбережение [ править ]

Архитектура новой версии PowerTune, представленной с использованием микросхем GCN1.1.

AMD PowerTune, динамическое масштабирование частоты для графических процессоров, было представлено с Radeon HD 6900 15 декабря 2010 года и с тех пор подвергалось дальнейшему развитию, как и пара обзоров в документе AnandTech . [21] [22] [23] [24]

Чипсы [ править ]

  • Фишки Северных островов:
    • Каймановы острова RV970
    • Антильские острова R900
    • Trinity и Richland включают TeraScale 3 IGP

Преемник [ править ]

На HPG11 в августе 2011 года сотрудники AMD Майкл Мантор (старший научный сотрудник) и Майк Хьюстон (научный сотрудник) представили Graphics Core Next , микроархитектуру, пришедшую на смену TeraScale. [25]

Ссылки [ править ]

  1. Кевин Пэрриш (9 марта 2011 г.). «Архитектура TeraScale 3 HD 6990» . Оборудование Тома . Проверено 8 апреля 2015 .
  2. ^ «Анатомия графического ядра AMD TeraScale» (PDF) . Проверено 8 апреля 2015 .
  3. ^ «Матрица характеристик бесплатного драйвера графического устройства Radeon с открытым исходным кодом» . Проверено 9 июля 2014 .
  4. ^ «[LLVMdev] RFC: R600, новый бэкэнд для графических процессоров AMD» .
  5. ^ Заметки о реализации для конкретных целей: Матрица целевых функций // Генератор кода, не зависящий от целей LLVM, сайт LLVM.
  6. ^ «Анатомия микроархитектуры AMD TeraScale» (pdf) . 2008-12-12.
  7. ^ http://www.vis.uni-stuttgart.de/~hopf/pub/Fosdem_2009_r600demo_Slides.pdf
  8. ^ Выпуск драйвера AMD OpenGL 3.0 от 28 января 2009 г.
  9. ^ a b c d e f g h я Уоссон, Скотт. Графический процессор AMD Radeon HD 2900 XT: раскрытие R600 , технический отчет, 14 мая 2007 г.
  10. ^ a b c d e f Обзор Beyond3D: архитектура AMD R600 и анализ графического процессора , получено 2 июня 2007 г.
  11. ^ a b Обзор ExtremeTech
  12. ^ Witheiler, Мэтью (2001-05-29). «ATI TruForm - движущая сила Radeon следующего поколения» . AnandTech . Проверено 30 января 2016 .
  13. ^ a b Будущее DirectX. Архивировано 16 июня 2013 г. на презентации Wayback Machine , слайд 24-29.
  14. ^ Белая книга nVidia GeForce3 SDK
  15. ^ «Раскрыты карты и спецификации RV670» . VR-зона. 22 августа 2007 г.
  16. ^ (на испанском) Обложка MadboxPC. Архивировано 18 октября 2012 г. на Wayback Machine , получено 10 ноября 2007 г.
  17. ^ Технический документ ATI DirectX 10.1 Архивировано 07 марта 2010 г.на Wayback Machine , получено 7 декабря 2007 г.
  18. ^ «Представляем Radeon HD 5000» (PDF) .
  19. ^ a b c DirectX 11 в открытом доступе: обзор ATI Radeon HD 5870, заархивированный 27 сентября 2009 г. на Wayback Machine
  20. ^ Отчет: AMD Radeon HD 5870 и 5850
  21. ^ «Переосмысление TDP с помощью PowerTune» . AnandTech. 2010-12-15 . Проверено 30 апреля 2015 .
  22. ^ «Представляем технологию PowerTune с ускорением» . AnandTech. 2012-06-22 . Проверено 30 апреля 2015 .
  23. ^ «Новый PowerTune: добавление дополнительных состояний» . AnandTech. 2013-03-22 . Проверено 30 апреля 2015 .
  24. ^ «PowerTune: улучшенная гибкость и регулирование скорости вращения вентилятора» . AnandTech. 2014-10-23 . Проверено 30 апреля 2015 .
  25. ^ "AMD" Graphic Core Next ": маломощная высокопроизводительная графика и параллельный компьютер" (PDF) . 2011-08-05 . Проверено 6 июля 2014 .