Сегодня доступно поговорим о последних архитектурах карточек NVIDIA и постараемся понять, над чем смеялся усатый хохотун в этом видео:
Краткий экскурс в историю
Эпоха «современных» видеокарт начинается с трёх важных изменений в архитектуре ПК.
Во-первых, устаревшую шину AGP, по которой подключалась видеокарта долгое время, сменила PCI Express X16 первого поколения.
Во-вторых, Microsoft выпустила Windows Vista с поддержкой новых API DirectX версии 10.0, которые включали в себя важную штуку: Direct3D 10, одной из фич которого являлся доступ для видеокарты к обычной оперативной памяти ПК нативными средствами.
В-третьих, производители видеоадаптеров отошли от концепции раздельных вершинных и пиксельных шейдерных1 процессоров и разработали универсальный вариант, который умел обрабатывать и те и другие. Эти изменения, вкупе с ростом аппаратных возможностей производителей железа создали условия для взрывного роста и развития графических ускорителей.
1 — Ше?йдер (англ. Shader; схема затемнения, программа построения теней) — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя описание поглощения и рассеяния света произвольной сложности, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки. Википедия.
Переход от AGP к PCI-e произошёл чуть раньше, чем два следующих за ним нововведения, поэтому оценить «чистый» прирост достаточно сложно — межу эпохами «старых» и «новых» видокарт лежит поколение ускорителей, сочетающих новый интерфейс (PCI-e) и «старый» подход к организации GPU: раздельные шейдерные процессоры и отсутствие поддержики D3D 10. Тем не менее, новые возможности позволили железкам «современного» поколения на высоких разрешениях просто уничтожать результаты железа прошлого поколения, имеющего только PCI-e в качестве бонуса:
На графике наглядно видно превосходство 8800GTX над двумя флагманами прошлого поколения, трудящимися совместно (в режиме SLI).
С этого момента подходы ATI (которая в последствии будет куплена AMD) и NVIDIA в видеокартостроении несколько расходятся. О том пути, который выбрали красно-белые поговорим как-нибудь в другой раз, а сегодня речь пойдёт об актуальных архитектурах чёрно-зелёных и разных интересностях внутри их продуктовых линеек.
NVIDIA со времён 8800 по наши дни
Возможности новых ускорителей на фоне их предков вы уже видели на графике чуть выше. С того момента прошло уже почти десять лет, компания NVIDIA успела сменить несколько архитектур:
G80 — дебютировала на видеокартах 8000-й серии, принесла поддержку DirectX 10, OpenCL и Shader Model 4.0, плюс добавила одну интересную особенность — программирование общего назначения на видеоускорителях (GPGPU), реализованную через фирменные API NVIDIA CUDA.
G90 — усовершенствованная архитектура, применялась в 9000-й серии. Ничего ключевого не принесла, а была закономерным развитием G80 — тоньше техпроцесс, холоднее чип, выше частоты, больше шейдерных процессоров.
G200 — это поколение принесло в производственные процессы NVIDIA важную особенность, которая и сыграла одну из ключевых ролей в «особенностях» работы GTX970.
Разумеется, были улучшения и общего характера, но главное — вот что: если раньше каждый из видеочипов создавался под конкретную модель, то в поколении видеокарт GeForce 200 модели 280 и 260 производятся на одном и том же чипе.
После производства все чипы GPU проходят тест на полное соответствие спецификации GTX280, и, если проблем никаких нет, используются в флагманских вдиеокартах. Те же, что не прошли проверку
GF100 (Fermi) — ещё одно поколение, сильно изменившее общий уровень производительности видеоускорителей NVIDIA. Ключевые изменения: работа по схеме Multiple Instructions Multiple Data, поддержка ECC, переход на 64-разрядные регистры видеопамяти, поддержка технологий DirectCompute, OpenCL, позволяющих проводить вычисления на GPU (аналоги NVIDIA CUDA, способные работать на любом GPU, поддерживающим соответствующий набор инструкций).
Именно в этом поколении появились «чёткие средняки» — видеокарты серий GTX 460 и GTX 560, обеспечивающие достаточно высокую производительность по очень и очень интересной цене для конечного покупателя. Они были не так интересны энтузиастам и фанатам самого крутого и передового железа, но, неосмненно, стали одними из самых массовых и популярных видеоускорителей своего времени: производительности хватало, чтобы играть во что угодно на «высоких» (но не «максимальных») настройках графики с разрешением 1920х1080, они не были требовательны к блоку питания и процессору ПК (о влиянии CPU на работу видеокарты — как-нибудь в другой раз), а главное — стоили в районе $200.
GK100 (Kepler) — Ничем примечательным не отличался, но именно в этом поколении началась работа по улучшению энергоэффективности видеоускорителей NVIDIA. Технически, это был всё тот же Fermi, но переведённый на новый техпроцесс и использующий новые транзисторы с низкими токами утечки и высокой скоростью переключения. Снижение энергопотребления привело к уменьшению нагрева, а это означает, что в рамках того же теплопакета производитель мог поднять тактовые частоты, тем самым увеличив производительность видеокарты. Собственно, это и произошло: новые GPU были быстрее и холоднее. Разумеется, кое-что изменилось и на более глубоком уровне, и но к ключевым отличиям это не относится.
Применялся в видеокартах 600-й и 700-й серии, на момент написания статьи является «королём» потребительской графики для энтузиастов: видеокарты GTX 780Ti с заводским разгоном и продвинутой системой охлаждения, пока что, быстрее, чем флагманы 900-й серии (GTX 980Ti просто ещё не существует, а обычная GTX980 несколько медленнее по разным причинам).
GM100 / GM200 (Maxwell) — текущее поколение видеочипов NVIDIA, отличается ещё более глубокой работой над энергоэффективностью, чем GK100. Модульная архитектура GPU, собственный ARM-сопроцессор, улучшения техпроцесса — вот неполный список ключевых особенностей новой архитектуре. По ней вообще можно целый трактат написать, но мы остановимся на самом важном.
GM100 и GM200 Maxwell
Чипы Maxwell существуют аж в двух поколениях. Так как ключевая ставка в новых GPU была сделана на энергоэффективность, первое из них — чипы GM107 и GM108 — как тест самой архитектуры — достались бюджетным карточкам GTX745, 750/750 ti и мобильным решениями GTX 830, 840, 850 и 860M.
Ключевые изменения, относящиеся к трёхмерной графике:
- Увеличение суммарного объёма кэш-памяти второго уровня с 256 КБ до 2 МБ (в флагманских моделях), позволило уменьшить ширину шины памяти и не страдать от «бутылочного горлышка» между памятью и процессором видеокарты;
- Уменьшение шины памяти с 192 бит до 128 бит — следствие из предыдущего изменения — позволило упростить архитектуру, разводку платы и уменьшить количество потребляемой энергии;
- Новый дизайн потоковых процессоров, названный SMM. Вдаваться с технические подробности изменений мы не будем, но суть изменения вот в чём: новая архитектура позволила экономнее расходовать вычислительные ресурсы и лучше распределять нагрузку между процессорными ядрами. По заявлениям NVIDIA, только заменой «устаревшей» архитектуры SMX на SMM удалось достичь 35% прироста производительности по сравнению с архитектурой Kepler.
Второе поколение чипов Maxwell (GM20x) относилось к десктопному сегменту. Именно на этой архитектуре разработан текущий флагман GTX 980 и ставшая известной GTX 970 с 3.5 гигабайтами памяти.
Особенности SMM и архитектура GM200
Помните, я говорил, что с архитектуры G200 пошла практика «обрезания» неудачных чипов флагманского уровня до «нефлагманских»? Вот отсюда и идут особенности чипа, использующегося в видеокартах GTX 980 и GTX 970.
В соответствии с архитектурой Maxwell, шина памяти (и сама память) у чипа GM204 не общая, а разделена между блоками на несколько (в данном случае — 16) сегментов. Суммарная пропускная способность памяти — 256 бит за такт на частоте 7000 МГц. Суммарное количество кеш-памяти — 2048 МБ. Всё это дело общается через общую шину CROSSBAR:
У видеочипов, которые используются в GTX 970 отключено часть вычислительных блоков (3 светло-серых квадрата в верхней части картинки), которые содержат в себе унифицированные шейдерные процессоры (NVIDIA называет их «ядра CUDA», но технически — это просто шейдерные процессоры) и блоки выборки текстур; кроме того, как вы видите на иллюстрации, отключен один из блоков L2-кеш памяти.
Но и это ещё не всё. Обратите внимание, что между контроллерами памяти (MC) в первых трёх крупных блоках нет никакой связи, а в четвёртом — «ущербном» — связь имеется. На картинке не изображены так называемые ROP’ы — блоки растеризации, отвечающие за превращение всей той магии, что видеокарта вам насчитала в простой двухмерный кадр для вывода на монитор. Их у GTX 970 тоже меньше, чем у «полноценной» GTX 980.
Вот полная таблица с характеристиками «оригинального» чипа GM204, используемого в GTX 980 и «урезанного» — из GTX 970:
GM204 GTX 980 |
GM204 GTX 970 |
|
Количество вычислительных блоков |
16 |
13 |
Ядра CUDA |
2048 |
1164 |
Блоки выборки текстур |
128 |
106 |
Блоки растеризации |
64 |
56 |
Кеш-память L2 |
2048 КБ |
1792 КБ |
Частота ядра |
1126 МГц |
1050 МГц |
Объём памяти |
4 ГБ |
4 ГБ |
Шина памяти |
256 Бит |
2562 Бит |
Частота памяти |
7000 МГц |
7000 Мгц |
Пропускная способность памяти |
224 ГБ/с |
2243 ГБ/с |
Вычислительная мощность |
4600 ГФлопс |
3500 Гфлопс |
2 — Для первых 3.5 ГБ видеопамяти;
3 — Теоретическая, на практике — меньше.
В принципе, ни к какому из этих «сокращений» по отдельности претензий не возникает: вы платите меньше, получаете менее производительное решение, производитель экономит на «отбракованных» чипах, превращая их в пригодные к эксплуатации. Все в выигрыше, если бы не одно «но».
У GTX 970 заявлено 4 ГБ видеопамяти, но реальные тесты показывают, что получить полноценный и высокоскоростной доступ можно только к «первым» 3.5 ГБ, оставшиеся 512 МБ памяти подключены через «урезанный» блок.
Доступ к «основной» памяти осуществляется через полноценные блоки: их контроллеры памяти имеют доступ к своим банкам видеопамяти, своему кусочку L2-кеша и когда видеокарте требуется очередная порция данных, драйвер обращается к контроллеру памяти – тот достаёт необходимую информацию из связанных с ним банков и перекладывает в высокоскоростной кеш, к которому могут обращаться вычислительные блоки.
Если же игра или программа использует больше 3.5 ГБ видеопамяти, часть данных упадёт в «проклятый» сегмент, который не имеет своего кеша и может общаться с вычислительными модулями исключительно через кеш-память своего соседа. Реальная пропускная способность распределяется следующим образом:
«Быстрые» 3.5 ГБ |
«Медленные» 512 МБ |
Доступ к RAM через PCI-e |
192 ГБ/сек |
28 ГБ/сек |
164 ГБ/сек |
4 — Теоретический максимум, зависит от скорости оперативной памяти, занятого объёма, других задач, получающих доступ к данным в данный момент.
Таким образом, не смотря на «ущербность» оставшейся памяти, она всё ещё остаётся быстрее, чем доступ к «оперативке». Модульная архитектура Maxwell позволила выключить только маленький кусочек GPU, не сильно влияющий на производительность системы в целом. Если бы использовалась архитектура прошлого поколения (Kepler), ущерб от «деффективности» был бы намного выше: скорее всего, производителям пришлось бы выключить целый блок контроллера памяти, и без полноскоростного доступа остались бы не 512, а 1024 МБ, либо видеокарта вовсе вышла бы в 3ГБ-версии и серьёзно проигрывала как конкурентам, так и флагманской GTX 980.
GTX 970 — 4 ГБ или 3.5?
Технически, ни маркетологи, ни инженеры нам не соврали: у видеокарты действительно 4 ГБ памяти, использовать она может все 4 гигабайта, пусть и с некоторыми ограничениями. Конечно, более «щедрой» и «не обманывающей пользователей» компания выглядела бы, если бы завялала 3.5 ГБ видеопамяти, а на деле ставила 4, пусть и не самых полноценных, но что имеем, то имеем.
На что влияют «медленные» 512 МБ памяти?
Современные игрушки, конечно, разжирели, но такой большой объём памяти (>3.5 ГБ) требуется только в том случае, если вы планируете играть на мониторе с разрешением 2560х1440 или 3820х2160 точек. Пока что таких экранов в проценте от общей массы не очень много, а если говорить про 4к2к, то они дороги, не всегда отличаются хорошими характеристиками и в целом только начинают завоёвывать рынок.
Что касается игровых движков, то пару лет назад производители особо не заморачивались даже на тему 2560х1440 и оптимизирвоали все движки под работу с разрешением 1920х1080 и 1920х1200 точек, оставляя любителей высоких разрешений с просадками FPS, микрофризами или просто без нормального user expirience’а. Что уж говорить про бедных пользователей ноутбуков с Retina-дисплеями и куда менее мощными мобильными видеокартами.
На этом с теорией мы закончим, а всю практику отложим до понедельника: посмотрим, как влияет разрешение на потребляемую память, с чем это связано, как справляется GTX 970 и чем ещё хороша новая архитектура Maxwell.
Хороших вам выходных!
Обзоры:
» Подключаем оригинальные геймпады к ПК
» Razer Abyssus: самый доступный Razer
» Nikon 1 S2: однокнопочная беззеркалка
» Обзор Lenovo Miix 3-1030
» Разбираемся в арт-хаосе компании Wacom
» ASUS ZenFone 5, LG L90, HTC Desire 601 — двухсимочная война за потребителя, часть 1
» ASUS Transformer Pad
» Гарнитуры Razer Kraken
Цикл PC Buyer’s Guide:
» PC Buyer's guide: выбор видеокарты
» PC Buyer's Guide: выбор блока питания
» PC Buyer's Guide: охлаждение
» PC Buyer's Guide 2015: Материнские платы, чипсеты и сокеты
» Кручу-верчу, запутать хочу. Разбираемся в линейках HDD
Комментарии (49)
ragequit
04.04.2015 09:36-14Скажите, чем таким можно напрягать видеокарты? Мой 660Ti 192bit стабильно вытягивал на ультрах все игры 2012-13 годов, ну сейчас будет на высоких. Что я делаю не так?
kalbas
04.04.2015 11:38+1Разрешение монитора какое? Я когда сменил 1600х1050 на 1920х1200 пришлось и видеокарту менять впоследствии.
ragequit
04.04.2015 11:41-16Вы меня за идиота держите? :) 1920х1080 офк. А у вас какой-то монитор нестандартный. 16:10?
kalbas
04.04.2015 11:44+3За идиота я никого не держу, просто когда указывают видюху и настройки, неплохо указывать разрешение. 16:10 более для работы.
ragequit
04.04.2015 11:49-12Я думаю, если у меня машина, которая
стабильно вытягивал на ультрах все игры 2012-13 годов
То тут само собой подразумевается 1920, а не 800х600. В работу с графикой не лезу, да думаю для нее не ширпотребные геймерские карты нужны.Shirixae Автор
04.04.2015 13:15+7Давайте вы предоставите пруф Crysis 3, Far Cry последнего, Assasins Creed и Batman бенчмарков. И Unigine на всякий случай. :) И тогда к вам не будет вопросов. Чтобы ультра, 1920х1080, сглаживание х4 и анизотропная фильтрация х16.
rauch
04.04.2015 12:58-1Поиграйте в WorldOfTanks
//я серьезно, кучу вопросов снимитеragequit
04.04.2015 13:05+3WoT — отдельная тема для разговоров, там проблема в древнем BigWorld, эпично-долгой разработке и кривой оптимизации больше, чем игре как таковой.
//И да, не понаслышке знаю о проблемах WoT, отработал 1.5 года в тех. саппорте ВГrauch
04.04.2015 13:26-2Лолчто? Вы сейчас с кем разговариваете?
Мой ответ был примером к вашему восклицанию:
> «стабильно вытягивал на ультрах все игры 2012-13 годов»
Это неправда!
Конкретно у WoT много проблем, там не только в процессор все упирается.ragequit
04.04.2015 13:31Как не удивительно, но тот же WoT у меня летал, просадки ФПС на ультрах были максимум до 45 FPS. В свое время, не знаю как сейчас, была засада с работой на топовых картах, пониманию новых версий драйверов (особенно дров NVidia), не пахал SLI и так далее.
WoT — плохой пример, у него много болезней конкретно из-за его движка и весьма, гхм, специфичного процесса разработки.
Shirixae Автор
04.04.2015 13:17+2WoT нужен максимально быстрый проц и упирается он в первую очередь в него. А ещё над выкинуть движок, собранный из палок и говна. Поиграйте в WarThunder. Сравните производительность и графику. Сделайте выводы.
ragequit
04.04.2015 13:29А ещё над выкинуть движок, собранный из палок и говна.
Ну, ВГ еще в 2013 купили BigWorld (компанию), но на вторую версию движка так игру и не перебросили, предпочли дальше грызть кактус костылей-велосипедов.Shirixae Автор
04.04.2015 13:36Видимо, количество велосипедов из костылей уже настолько велико, что проще сделать WoT2 на новом двигле, чем переносить старый. Ну и разумеется с переносом начнётся «верните как было, теперь не торт».
ragequit
04.04.2015 13:40Вы не поверите, подобные идеи стали появляться еще, в уже далеком, 2012 году во многих умах :)
prizzrak
Как же тогда дела обстоят с 960? Там еще меньше высокоскоростной памяти?
Shirixae Автор
А там просто стоят 2 GB всего. Причём на 128-битной шине. И за эти деньги я бы взял R9 280/280X. Она куда интересней по железу.
prizzrak
Radeon, увы, не для linux =(
Shirixae Автор
Не верю, что он настолько хуже будет работать, что не покроет разницу в производительности. Хотя, признаться, под линуксами не сижу.
pacaya
Под Mac OS X на многих (по крайней мере среднего уровня) платах AMD 3d ускорение в два раза медленнее, чем на этом же железе под Windows 7 (проверено на Unigine Heaven с одинаковыми настройками). Для сравнения, у той же NVidia разница в скорость только 20% в среднем…
Shirixae Автор
У OS X просто OpenGL стэк говно. На нёй и Diablo 3 работает медленнее (имеется макбук с Nvidia 650M), и фотошоп, чем под виндой на том же буке. Так что эт не косяк AMD, а просто хреновая реализация OpenGL.
pacaya
Я не случайно привел сравнение с NVidia, где разница в скорости с Windows 7 всего 20 процентов. Это не к тому, что OpenGL стек хороший, а к тому, что от AMD тоже многое зависит. При том же стеке NVidia справляется лучше.
Lsh
Так получается что лучшая графика на винде? Какой кошмар!
Shirixae Автор
Таки получается. OS X вообще в плане 3D не самый передовой продукт, и во всяких Pixar'ах и прочих Disney'ях сидят на HP и Dell.
beeruser
А какая связь между Mac и Linux дровами? Драйверы под Мак пишет Яблоко, а не AMD или линуксоиды.
pacaya
Драйверы под Mac пишет производитель оборудования (NVidia/AMD соответственно)
Black_Shadow
Впрочем, как и под Linux.
beeruser
Смотря какие
www.mesa3d.org/sourcetree.html
Black_Shadow
Речь про NVIDIA и AMD
beeruser
www.linkedin.com/jobs2/view/40868075?trk=job_view_similar_jobs&trk=job_view_similar_jobs
Responsibilities span from low-level GPU driver and compiler development to implementing APIs such as OpenGL and OpenCL.
Но это под iOS/PowerVR
Под GCN, похоже ядро таки пишет AMD.
www.simplyhired.com/job/software-engineer-job/amd-seamicro/gz42he24co?cid=gdxctmbxydqrslxbuddgauuiyuxioned
Nomad1
Это не так. И как раз Unigine Heaven не показатель, если вы не выставите одинаковый по возможностям OpenGL режим. По-умолчанию Heaven на Windows 7-8 запускается в Direct X 11 и всегда будет быстрее OpenGL версии на Windows (процентов на 20-30), и на OS X (до 50% с HDR и AO). А вот если поставить на это же железо полноценный линукс (предположим, что он станет и заработает как надо), то OpenGL производительность приятно удивит.
Причин этому достаточно, думаю тов. binstream получше может объяснить, но в целом комментарий ниже точно описывает ситуацию.
prizzrak
Вот тесты. Если в кратце, то R9 290 дает производительность сравнимую с GTX 760.
RZK333
кажется, у вас мало опыта.
HD6950, linux mint cinnamon, последние драйвера Omega от AMD — multihead конфигурация не сохраняется — с ней не стартует Cinnamon; VDPAU не работает; в CS:GO 45-50 fps + постоянные фризы; если много раз переключить терминал с иксового вывода на консоль и обратно, в определенный момент всё зависает насмерть; и самый финиш — фликеринг OpenGL на втором мониторе, например, окон Chrome.
та же самая машина и набор софта, но видео GTX960 с последними драйверами NVIDIA — единственная проблема это VDPAU, которое не умеет в некоторые криво закодированные файлы (всякая экзотика в духе 10bit video), но это не проблема VDPAU. Все остальные проблемы ушли.
Meklon
У меня 6970 и все неплохо. Kubuntu 14.10, драйвера flgrx
Lsh
А нет какого-нибудь мануала, что делать если нужен линукс и радеон уже куплен? =)
Проприетарные дрова просто попа! То фриз происходит во время загрузки, то монитор не выходит из энергосбережения.
Видюху сдавать в магазин уже поздно.
r9 270x, kubuntu 14.10.
ArtKun
Одно из двух: всегда юзать самый распоследний Catalyst, устанавливая вручную (если никогда не пробовали — лучше не лезть), или же выпилить его и сидеть на стандартных. Я за второй вариант: свободные далеко не такие быстрые, но в 99% случаев стабильны как скала.
Shirixae Автор
Мне вот интересно, почему с дровами под Linux такая чехарда всегда. Под него сложнее писать? Или просто никому не впёрлось из-за мизерной доли рынка?
ArtKun
Отчасти — из-за самих линуксоидов. Многие из них противятся использовать несвободный софт, поэтому хороший, качественный драйвер (NVIDIA) поливают как могут, а альтернативы почти нет. Открытый же NVIDIA сделать не может — патенты и прочее.
У AMD еще веселее — там целых две разных команды разработчиков для свободного драйвера и Catalyst. Catalyst (как и NVIDIA) делит большую часть кодовой базы с Windows, поэтому работает быстро, но нестабильно. Свободный же пишут с нуля, строго следуя всемозможным спецификациям и стандартам. При этом внутри самой AMD свои же разработчики борятся с руководством, чтобы выбить у них документацию и прочее, т.к. все под NDA.
Добавляет то, что эти самые стандарты расплывчаты — у NVIDIA они одни, у AMD — другие, а официальны — третьи. И разработчики, собственно, софта, не знают, на что ориентироваться.
Таким образом, есть NVIDIA, у которой драйвер вроде и работает, но неправославен и слегка на костылях, и есть AMD, у которой целых два — один на костылях и работает только в половине случаев, а второй православен и работает, но отстает на пару лет по развитию.
beeruser
>> При этом внутри самой AMD свои же разработчики борятся с руководством, чтобы выбить у них документацию и прочее, т.к. все под NDA.
Да что вы говорите. А вот это что?
developer.amd.com/resources/documentation-articles/developer-guides-manuals/
Некоторая информация скрыта, но она относится к нюансам реализации.
ArtKun
Лишь знаю, что это упоминал один из разработчиков на форумах Phoronix около года назад.
beeruser
Good luck этому разработчику получить хоть какую-нибудь информацию о любом другом чипе, кроме разве что VideoCore.
Лично мне вполне хватает документации по Radeon, доступной в открытом доступе, для низкоуровнего программирования.
ArtKun
Вы меня, кажется, не совсем правильно поняли. Я говорил о разработчиках свободного драйвера radeon, а не прикладного софта.
beeruser
Я работаю на уровне железа.
Lsh
Забыл написать что свободные радуют артефактами с OpenGL композитными менеджерами.
ArtKun
Тогда можно просто проапгрейдиться до 15.04. Релиз уже через месяц, да и проблема с драйвером наверняка пофикшена.
Lsh
=) Забавно, но на ней я успел побывать, ужаснулся проблемам с графикой и решил что они как раз из-за не вышедшей версии дистриба. Но, оказалось что это дрова.
isden
Еще стоит добавить, что на ноутбуках со свободными начинается жесть по энергопотреблению (и соотв. перегреву).