Kepler — астрономический GPU

Введение

Что достоверно известно, так это то, что новая архитектура получила название в честь выдающегося немецкого астронома Иоганна Кеплера, жившего в эпоху Первой научной революции XVII века. Конечно, не случайно NVIDIA дает имена своим GPU в честь выдающихся ученых — Ферми, Тесла, Максвелла — большая часть нововведений затрагивает именно вычислительные возможности GPU. И бывшие видеоускорители твердо нацелились совершить революцию в секторе научных вычислений.

Выпуск каждого нового процессора, или видеокарты, или монитора, или вообще чего угодно, напоминает взрыв или рождение звезды в далеком космосе. В том плане, что звезда уже вспыхнула, а её свету нужны тысячи или миллионы лет, чтобы достичь Земли. Только по прошествии этого времени мы сможем увидеть происшедшее событие. Так и в случае новой компьютерной архитектуры, она уже разработана, её создатели уже вовсю работают над последующей, а пользователи ждут, пока на заводе по производству микросхем наладят изготовление устройств на её основе, напечатают достаточное количество чипов, упакуют их и доставят на прилавки магазинов.

Архитектура Kepler была полностью готова уже весной и сейчас, на TSMC занимаются отладкой техпроцесса и оборудования для производства карт по предоставленной NVIDIA схеме. В худшем случае, при проблемах с производством, архитектура будет немного доработана, как это случилось с Fermi. Но ничего принципиально другого не будет.

Да, эта статья будет мажорным продолжением минорной саги о задержке выпуска видеокарт на основе архитектуры Fermi.

Отсутствие информации об уже спроектированных чипах вызывает смешанную реакцию. Делать предположения об особенностях уже готовых архитектур, которые просто скрывают от общественности, немного неловко. Ведь кто-то из имеющих доступ к информации людей может прочитать материал и посмеяться. В принципе непонятно, кого они хотят обмануть своим молчанием? Неужели кто-то думает, что может что-то скрыть от конкурентов? Над проектами работает множество людей, специалисты переходят из фирмы в фирму, большинство вместе учились. Да для любого, самого никудышного промышленного шпиона разузнать то, о чем гадают люди на форумах, будет самой простейшей задачей. Это даже не государственная тайна, лишь бы было что-то важное — любая минимально приличная сумма денег сделает свое дело.

Может быть, просто боятся сглазить. Нарисуют, Бог знает что, а выход годных кристаллов будет 1%, ибо техпроцесс не тянет фантазии чип-мейкеров. Невыполненные обещания фирм, общественность имеет свойство рассматривать, как провал. Даже если то, что они сделали по факту, самое прогрессивное в отрасли. Так, например, было в свое время с фирмой Intel, обещания всех перевести на Itanium, процессоры частотой 20 GHz и так далее. А в итоге, процессоры по-прежнему x86 и частота где-то 2-3 GHz, как и раньше.

А были бы преимущества, будь спецификации известны заранее. Пользователи могли бы осмысленно планировать апгрейд и время покупки системы, компьютерные фирмы могли бы предлагать планы по апгрейду. Неужели производители боятся, что «крутые» спецификации новых продуктов отпугнут пользователей от покупки уже имеющихся в продаже? Так, NVIDIA всюду и всегда, говорит о невероятных перспективах и росте мощности GPU, а им никто не верит, говорят, завышают. Так можно вечно ждать и расчёт, скорее всего, на состоятельных людей.

Наверное, неудобно при заключении крупных контрактов на поставку текущих чипов. Чтобы было меньше вопросов к менеджерам по закупке, почему купили этот, а не тот. А того ещё вроде как нет. Хотя он, на самом деле есть, как летящий к нам свет ещё невидимой звезды.

А вот разработчикам программ для CUDA, было бы полезно знать заранее важные параметры будущих процессоров, иначе разнообразные оптимизации будут лишними для новой архитектуры и станут бессмысленным вложением средств. Впрочем, самые важные key applications пишутся приближенными к NVIDIA софтверными фирмами, которые могут иметь (и наверняка имеют) информацию для внутреннего пользования.

Так или иначе, спецификации неизвестны, но будет познавательно их спрогнозировать и в будущем сравнить, насколько NVIDIA оправдала наши ожидания. Тем более что многое можно просто понять из известных параметров нового технического процесса, на котором будет производиться чип.

Мультизадачность и виртуальная память

Пусть параметры чипа ещё покрыты тайной, об этих двух функциях NVIDIA говорила достаточно уверено на прошлогодней конференции. Они не привязаны к количеству шейдерных и текстурных блоков и не связаны с производительностью. На первый взгляд, они кажутся ненужными. Сейчас мало кто из пользователей запускает даже одну CUDA-программу, а тут поддержка одновременной работы сразу нескольких. Те CUDA-программы, которые запускаются, являются профессиональными программами, вроде графических редакторов или конвертеров. Все равно они рассчитаны на захват полной мощности компьютера. Спрашивается, кто запустит одновременно конвертироваться видео с помощью CUDA и некую расчетную программу? И то, и другое посчитается в два раза медленней, а на самом деле, даже ещё медленней, из-за необходимости делить доступ к памяти.

Также это не очень нужно для любимых NVIDIA суперкомпьютеров, так как все узлы кластера считают одну задачу, и данные разбиваются программным образом на блоки, соответствующие размеру памяти GPU.

Но на самом деле это важные усовершенствования. Собственно, они взаимосвязаны, ибо виртуальная память требуется для многозадачности. Да, можно легко догадаться, что виртуальной памятью для GPU будет обычная системная память. Как операционная система при недостатке системной памяти использует дисковое пространство, так GPU будет использовать обычную память для свопа. У GPU относительно мало памяти, один-два гигабайта и если запущена одна CUDA-программа, она легко может занять столько памяти, что другая просто не запустится, так как не сможет выделить память. Она выдаст ошибку, если грамотно написана, или просто повиснет, в лучшем случае не повесив всю систему. Тем более что графические программы тоже занимают память GPU, тот же современный Windows-интерфейс, не говоря уже о более сложных. Так что, на долю CUDA-программ, может остаться слишком мало памяти.

Типичное будущее применение CUDA на персональных компьютерах — в интернет-браузерах рисовать красивые баннеры, флэш, эффекты и так далее, даже отображать 3D-контент. И вот представьте, запущено множество окон браузера, они все будут требовать GPU-память. Без виртуальной памяти, следующее окно просто не запуститься. А если CUDA будет использоваться в Skype для улучшения качества звука или кодирования? Всё это неудобно, и виртуальная память может исправить этот недостаток.

При распространении CUDA-программ параллельно браузеру может быть запущена ещё одна программа. В общем, на самом деле, без виртуальной памяти неудобно. Просто нет истинной многозадачности, приходиться все остальные графические приложения закрывать, чтобы запустить новую программу.

Ещё одним важным применением многозадачности будет возможность нормальной отладки. Сейчас для отладки нужно несколько GPU, в лучшем случае, а то и два компьютера: один для запуска среды программирования с отладчиком, другой для программы. Как это было лет двадцать назад, на PC.

Вероятно, поддержка виртуальной памяти появится не сразу после выпуска, а несколько позже, после доводки драйверов и операционных систем. Не будет удивительно, если такую возможность будут поддерживать лишь следующие версии ОС. Тем не менее, это само по себе, в отрыве от производительности, станет важным шагом в направлении расширения неграфического использования GPU на персональных компьютерах.

Для NVIDIA важна поддержка Microsoft, чтобы стандартные программы для Windows поддерживали CUDA — эффекты интерфейса, браузера и т.п. Необходимо, чтобы использование GPU было привычным и необходимым. Впрочем, возможно уже поздно, так как системы с интегрированной графикой вытесняют системы с дискретной. У них в принципе нет проблем с памятью, так как интегрированный видеочип работает непосредственно с системной памятью. Успеет ли NVIDIA как-то переломить тенденцию, будет уже зависеть, насколько радикально быстрыми будут новые GPU.

Спецификации

Настала пора обсудить предполагаемые спецификации нового чипа, которые напрямую влияют на производительность: количество мультипроцессоров, частоты и т.п.

Ещё прошлой зимой в сеть утёк вариант параметров нового семейства. Многие сочли его надуманным, но при ближайшем рассмотрении он видится вполне точным, будет удивительно, если реальные спецификации будут сильно отличаться от данных.

MODELSKUSPROPCCLKSCLKMblendTMUbusMtypeMcapTDPPrice
GTX690GK1003224825165046007296512GDDR52.00 Gb270W499
GTX680GK1003222750150042006688448GDDR52.00 Gb230W399
GTX670GK1044812825170046004896384GDDR51.50 Gb190W299
GTX660GK1044811725145042004488320GDDR51.25 Gb155W229
GTX655GK1044810650130040004080256GDDR51.00 Gb130W189
GTX650GK106486800160046002448256GDDR51.00 Gb105W149
GTX640GK106485700140042002040192GDDR51.00 Gb80W119
GTX630GK108483750150020001224128GDDR31.00 Gb60W89
GTX620GK10848270014002000816128GDDR31.00 Gb45W69
GTX610GK108481700140020004864GDDR31.00 Gb30W59

Итак, параметры: Model — имя модели, SKU — вариант архитектуры чипа, SP — количество так называемых CUDA cores в мультипроцессоре, далее идет количество мультипроцессоров в чипе, частота ядра и удвоенная частота шейдерного домена, эффективная частота памяти, количество видимо растеризаторов и текстурных блоков (TMU), ширина шины, тип видеопамяти, её объём, потребляемая мощность и, наконец, цена в долларах США.

Для самой старшей модели GTX690, имя чипа GK100. Он имеет 24 мультипроцессора с 32 ядрами CUDA, как обычно впрочем. То есть всего 24*32=768 шейдерных ядер. Частота ядра планируется 825 MHz, частота шейдеров 1650 MHz, память характеризуется числом 4600 MHz. Есть 72 блоков наложения, видимо, растеризации, это относится к 3D графике, 96 текстурных блока, ширина шины памяти 512 бит, тип памяти GDDR5, объем 2GB, потребляет 270Ватт и стоит 499$.

Самое, пожалуй, неправдоподобное в этих спецификациях то, что доллар доживет до выхода Kepler. Остальные параметры согласуются с параметрами технического процесса, на который переходит TSMC. И они совсем не секрет, вполне официально объявлены производителем.

Таким образом, старшая модель должна иметь всего в полтора раза больше шейдерных ядер, чем нынешний флагман. На первый взгляд, это не очень большое увеличение мощности. То есть новый топ-класс будет сильно проигрывать, например, решению с двумя чипами на основе текущей архитектуры. Ведь для GPU увеличение количества шейдерных ядер обычно ведет к прямо пропорциональному увеличению производительности. Особенно в графических задачах. Но не все так просто, ведь сами ядра могут иметь повышенную производительность.

Многие предполагают, что новый чип будет иметь 1024 шейдерных ядра, то есть, вдвое больше, чем Fermi. Как Fermi имел примерно вдвое больше ядер, чем GT200. Но это маловероятно, этого не будет и если это случится, произойдёт самое большое чудо в вычислительном секторе IT-индустрии за последние 10 лет, со времен выхода процессора Pentium4.

Действительно, переход на новый технический процесс 28 нм, по сравнению с 40 нм, позволяет разместить почти в 2 раза больше транзисторов на кристалле той же площади. То есть, теоретически, можно разместить два Fermi на том же кристалле, но энергопотребление транзисторов уменьшилось только на 40% максимум (это можно понять из официального релиза TSMC, посвященного новому техпроцессу). То есть, такой удвоенный Fermi будет потреблять больше предела.

Но это не единственная причина, почему удвоения числа шейдеров не состоится. Fermi, уже сам по себе довольно большой чип — 3 млрд. транзисторов и, чем больше чип, тем больше вероятность критических при его производстве ошибок, когда приходится выкидывать весь кристалл. В любом случае, такой большой чип из 6 млрд. транзисторов будет слишком похож на сыр с дырками, ибо множество шейдерных блоков придется отключать. Будет море моделей, из 32 мультипроцессоров может работать от 1 до 32, вот и будет 32 модели. Далее, такой большой чип сложно произвести равномерно, то есть, чтобы все модули смогли работать на высокой частоте. Половина заведётся, допустим, на частоте 1 GHz, вторая половина на 1.5 GHz и весь чип придется тактировать низкой частотой, что ведет к потерям как в производительности, так и денежным. А более мелкие чипы легче распределить по частотам. Одни получатся быстрыми, другие чуть медленнее.

Большой чип — большие проблемы, но это даже не главная причина, почему Kepler не будет большим. Новый, более совершенный техпроцесс позволяет при том же потреблении мощности и тепловыделении, за которое, в основном, ответственны токи утечки, поднять частоту чипа. На те же 40%, на сколько можно сократить потребление. То есть смысла расходовать драгоценные ватты на гигантский кристалл нет, когда можно получить увеличение производительности всего лишь увеличением частоты.

Так что, в новом GPU будет либо 768 шейдерных ядер, либо даже столько же, сколько сейчас — 512. Все остальное из разряда фантастики.

Архитектурные улучшения

Проблема с потреблением энергии препятствует простому удвоению производительности при переходе на более тонкий тех-процесс, как это было возможно ещё несколько лет назад. Производительность GPU должна была расти пропорционально увеличению числа шейдерных модулей, которое сулило использование в производстве новых техпроцессов, но сейчас большее значение приобретают усовершенствования в архитектуре.

Первое и главное усовершенствование, слух о котором просочился в интернет, это проведение вычислений с числами двойной точности на полной скорости. Сейчас, для перемножения чисел типа double нужно два такта, таким образом, теоретическая производительность уполовинивается относительно произведения количества шейдеров на частоту. Собственно, более тонкий техпроцесс благоприятствует выполнению более сложных операций за один такт. Теоретически, переход на 28 нм, сам по себе, позволяет выполнять за такт примерно в 1,4 раза больше операций, либо поднять частоту во столько же раз при сохранении того же объема работы. Но не все техпроцессы одинаковы, они отличаются качеством, и новый обещает быть более удачным, транзисторы будут переключаться быстрее, соединения лежать ровнее, чем на предыдущем, то есть можно достичь и увеличения частоты и некоторого увеличения операций за такт. Что как раз и нужно для полноскоростного умножения вдвое большего количества бит.

Но не только техпроцесс поможет ускорению вычислений, ведь саму электрическую схему умножения можно оптимизировать, применить более совершенный алгоритм, лучше расположить блоки. Может быть, какие-то патенты или алгоритмы реализации умножения даже были частью сделки с Intel, уж они-то очень давно занимаются оптимизацией этой операции. Да и NVIDIA, всерьез заинтересовавшись высокопроизводительными вычислениями, должна была инвестировать больше средств в разработку функциональных модулей для работы с используемыми в суперкомпьютерах типами данных.

На самом деле, если полноскоростного умножения не будет, это будет выглядеть немного странно на фоне обещаний NVIDIA о росте мощности GPU. Без этого, прирост в производительности получится всего примерно в два раза: в полтора раза за счет увеличения количества ядер CUDA и остальное за счет увеличения частоты. С учетом появления на рынке дешевых восьмиядерных процессоров, новых наборов инструкций AVX у процессора Intel на новой архитектуре, получится, что производительность CPU растет быстрее, чем GPU.

При полноскоростном умножении, прирост будет минимум в три раза, даже без увеличения частоты. Так как ядер станет в полтора раза больше и все они будут выполнять операции с double числами за такт.

Можно и не говорить, что троекратный рост производительности при полуторном увеличении размера чипа, при том же потреблении энергии и разумной цене обрадует ученых, тех же астрономов. В честь одного из которых и названа новая архитектура.

Также очевидно, что производительность в double, в потребительских GeForce будет урезана ещё больше, если вообще поддержка этих не очень нужных для обычных пользователей вычислений там останется. Только самые отборные кристаллы смогут выполнять полноскоростное умножение на высокой частоте, они пойдут на производство Tesla для суперкомпьютеров, а в потребительском секторе неработающие модули вычислений с числами с двойной точностью будут безжалостно заблокированы. Чтобы можно было поднять частоту шейдеров, работающих с используемыми в играх числами одинарной точности.

Кстати, о числах float одинарной точности, которые используются в обычных пользовательских приложениях, в программах компьютерной графики, трассировки лучей, конвертации видео и многих других. Неужели прирост будет только в два раза?

Вычисления с типом float и возможные усовершенствования

На самом деле, если даже производительность во float возрастет только в два раза, в полтора раза за счет увеличения количества шейдеров и ещё за счет увеличения частоты, это будет само по себе очень неплохо. Дело в том, что пиковая производительность современных GPU во float и так более чем достаточна, она абсолютно неимоверна и во много раз выше любого процессора. Но она редко достигается в реальных CUDA-приложениях. Чистая пиковая производительность актуальна для хорошо оптимизированных, не очень изощренных программ, вроде перемножения матриц. Большинство сложных CUDA-приложений либо memory bound (тип приложений, скорость работы которых ограничена скоростью любой памяти, кроме кэш-памяти), либо имеют проблемы с большим количеством ветвлений. Тупое увеличение количества float операций CUDA-ядром не так много даст. Умножение-сложение вещественных чисел одинарной точности и так почти мгновенное. Для CUDA-программ гораздо важнее малопонятные далеким от программирования GPU пользователям детали, вроде количества регистров в мультипроцессоре или организации локальной кэш-памяти. А такие детали не будут известны до самого анонса, ибо все утечки идут от менеджеров, сотрудников торговых фирм и фабрик, т.е. людей, далеких от программирования. В архитектуре могут быть как положительные, так и компромиссные изменения, поэтому о степени усовершенствований можно будет достоверно судить только после тестов оптимизированных под Kepler CUDA-программ.

Но надо надеяться на лучшее. Количество мультипроцессоров возросло всего в полтора раза, они снова имеют шанс, как в случае с Fermi, стать несколько более совершенными, то есть с большим объёмом локальной памяти, например, не 64 KB, а 128 KB, с увеличенным размером регистрового файла на мультипроцессор с 32 KB до 64 KB. Каждое из этих усовершенствований способно на широком классе задач поднять производительность в два раза. Например, 64 KB программируемого кэша на, я бы сказал, sub-процессор GPU, который одновременно исполняет 1000 нитей, все-таки маловато. 128 KB хватит и на объемный L1 кэш в 64 KB, и на солидный объем сверхбыстрой локальной памяти в 64 KB, или все можно отдать под солидный, даже по процессорным меркам, L1 кэш в 128 KB.

Увеличение количества регистров с 32 тысяч до 64 тысяч для одного мультипроцессора (напомню, GPU состоит из 10-20 отдельных sub-процессоров с собственной памятью), позволит, при использовании одной нитью 32 регистров, увеличить количество активных одновременно исполняемых нитей с 1000 до 2000. Что позволит более эффективно скрыть латентность памяти, так как отдельная нить будет ждать своей очереди на исполнение больше тактов и за это время данные успеют прийти из памяти. Это поднимет производительность зависимых от памяти CUDA-программ в два раза.

Как программиста, работающего с CUDA, автора этот параметр интересует в первую очередь. Ещё важна такая тонкость: сейчас нити в warp (это связка из 32 нитей, GPU делит нити на связки и обрабатывает все нити-связки одновременно), могут одновременно читать из L1 кэша только в пределах блока, соответствующего размеру warp. То есть, из 32*4=128 байт, то есть, из одной строки кэша. Было бы неплохо, если бы разные нити одного варпа могли бы читать из различных строк кэша. В принципе, это возможно, так как организация доступа к локальной памяти позволяет в один такт нитям одного варпа читать данные из различных участков локальной памяти. Это поможет адаптировать для CUDA не очень регулярные, плохо векторизуемые программы.

Но, может быть, вычисления с числами одинарной точности тоже были усовершенствованы и обещанное NVIDIA четырехкратное увеличение скорости в новой архитектуре будет выдержано. Тут есть резервы, заключающиеся в использовании инструкций SSE и VLIW. То есть, выполнять одну инструкцию сразу с несколькими операндами или парами операндов. Действительно, если за такт будет выполняться операция с типом double, что потребует 2*8=16 байт данных минимум, то можно выполнить операцию с 4 числами одинарной точности, которые занимают в памяти не 8, а 4 байта. Понятно, что проблема не в скорости самих вычислений, а в том, чтобы доставить данные. Таким образом, можно вычислять такого сорта выражения за один такт:

(a+b)*(c+d)a*b+c*d или векторные операции (a,b)+(c,d)=(a+c,b+d)(a,b)*(c,d)=(a*c,b*d)

Похоже на VLIW, реализованный в ускорителях AMD. Правда, от него, по последним данным, AMD собирается отказаться из-за большой длины инструкций. Правда у AMD было 4 пары операндов, а тут только две, может и пройти. Но, на самом деле, это востребовано скорее не для CUDA-программ, а для графических шейдеров.

Графические возможности

Если мультиоперандные инструкции для работы с вещественными числами одинарной точности не будут реализованы, то шейдерная производительность в графических тестах увеличится всего в два раза максимум. На самом деле, результаты этих тестов все меньше становятся интересными массовому пользователю, ибо происходит определенное насыщение. Визуально разница в картинке с увеличением детализации в рамках принятой сейчас в играх графической модели все менее заметна. Не велика разница, выполняется два шейдера или четыре, на миллионе треугольников или двух. Это заметно фанатам компьютерной графики, а массовый геймер совсем не обратит внимание.

Нужны качественные, а не количественные улучшения, чтобы на текущем уровне развития графики это было заметно. Для этого нужно, чтобы мощность возросла раз в 10 и то, все равно, для какого-нибудь рейтрейсинга не хватит. Или использовать новые специальные функции, как-то тесселяцию. Но что-то разработчики игр не торопятся использовать возможности Fermi, все ещё ориентируются на предыдущие поколения архитектур, а сейчас станут ориентироваться на встроенную графику. Так что, вряд ли NVIDIA запланировала много нового, в плане игровой графики в Kepler, т.к. смысла особого нет. Будет совсем большой разрыв с реальностью.

Скорее можно ожидать более активного использования возможностей CUDA в играх, для расчета физики, продвинутых эффектов и т.п. Предыдущие поколения поддерживают CUDA на высоком уровне, а Kepler будет поддерживать ещё лучше, это заставит обратить внимание разработчиков игр. И тут пиковая производительность шейдеров, которая в значительной мере ограничена пиковой вычислительной производительностью, не так важна. То есть и для игр станут важны детали реализации CUDA-процессоров.

Возможные проблемы

Изначально было объявлено, что новые GPU могут появиться в конце текущего года, позже выпуск перенесли на начало следующего. Говорит ли это о возможных проблемах с производством, аналогично имевшим место в случае с Fermi? Нет, совсем не обязательно, это может быть даже сделано специально, чтобы в рождественский сезон продаж продать больше старого. В общем, многим покупателям все равно, что покупать, знают два слова NVIDIA и GeForce, нынешние топ-карты вполне себе ничего, цену всегда можно подогнать в соответствии с предложениями конкурентов. Если AMD успеет выпустить что-то новое, то NVIDIA просто скинет цены на свои топы, а AMD подымет. Старое продавать так или иначе надо, под Новый Год, возможно, самый удобный момент сделать это с максимально возможной прибылью.

NVIDIA должна была учесть предыдущие ошибки, вызвавшие низкий выход годных кристаллов, что вызвало необходимость дорабатывать Fermi. И по выше приведенной таблице видно, что NVIDIA уже подстраховалась с младшими бюджетными моделями GK104, 106, 108, сделав в них вдвое меньше мультипроцессоров, около десятка против двух десятков в топовых чипах. Зато каждый мультипроцессор в младших моделях производится с 4 блоками ядер CUDA, по 16 ядер в каждом и один из них, который с ошибками производства, отключается. Так получилось 48 ядер CUDA. Это позволяет поднять выход годных кристаллов и, соответственно, прибыль.

Проблемы могут появиться скорее с частотами. У TSMC есть несколько вариантов 28 нм техпроцесса. AMD и NVIDIA используют разный. NVIDIA, из-за своего высокочастотного шейдерного домена использует так называемый High Performance process. Он позволяет достичь более высоких частот, ценой большего потребления, но его труднее отлаживать. Задержке с отладкой этого процесса есть официальное объяснение, почему новые чипы AMD появятся раньше. Что ж, если его не отладят к сроку, то вероятно, что NVIDIA придется снизить частоты своего модельного ряда и вначале запустить низкочастотные модели. То есть, прирост производительности, по сравнению с текущими видеокартами, будет не очень большим. Ещё вариант, выход GPU Tesla с поддержкой вычислений типа double будет серьезно отложен, а в GeForce, вычисления с типом double, будут вовсе исключены. Ибо однотактовые операции с double — очевидное и главное узкое место новой архитектуры, с точки зрения частоты.

Или частоты GPU с поддержкой double будут сильно меньше геймерских и, рост производительности в double, будет не в три раза, а только в два.

Наверное, без проблем при запуске не обойдется. Будут ли это задержки или изменения спецификаций в сторону ухудшения, посмотрим.

NVIDIA ведь почти не делает шринки (от английского shrink), то есть просто перевод старой архитектуры с незначительными улучшениями на новый технический процесс, как это часто делают фирмы-производители CPU. На памяти, лишь переименование семейства 8ххх в 9ххх, с переводом чипов на более тонкий техпроцесс. Наверное, самым успешным CPU-шринком стал перевод Pentium4 со 180 нм технического процесса на 130 нм. Процессор получил удвоение кэша L2 до 512 KB, увеличение частоты системный шины до 800 MHz и была активирована технология Hyper-Threading. После этого, неожиданно стали говорить, что процессор архитектуры Pentium4 может быть хорошим. Ну и конечно частота поднялась, он стал хорошо разгоняться на новом техпроцессе. Однако, есть некоторые соображения, что GF600 постигнет таже участь, что серию 8ххх.

Немного жаль, что NVIDIA не занимается такими вещами, как просто перевести Fermi на 0.28. Был бы холодный, дешевый, хорошо гонящийся чип. Но на самом деле, большого смысла нет, это не выгодно с производственной точки зрения, на одном техпроцессе делать две архитектуры, а без переделки архитектуры, на одном шринке значительного ускорения не получить. Максимум — примерно на половину, так как новый техпроцесс позволяет производить на 40% более энергоэффективные чипы.

Особенности техпроцесса

Запуск в производство нового чипа всегда лотерея, ибо заранее точно не угадаешь параметры новых транзисторов, как они будут сочетаться с параметрами самого чипа. Например, произведенные новым методом транзисторы могут быть медленными, холодными с небольшой величиной греющих чип токов утечки и производиться с небольшим процентом дефектов. Такое сочетание благоприятствует чипам, изначально рассчитанным на невысокую частоту работы, но большим по площади.

Или наоборот, новые транзисторы могут быть быстрыми, горячими и часто дефектными. Это будет оптимально для небольших по площади высокочастотных чипов. На основе таких транзисторов большие чипы не произведешь, они будут потреблять энергию сверх меры, и иметь высокий процент брака. А с медленными транзисторами просто не выгодно производить чипы с архитектурой, рассчитанной на высокую частоту работы. Такая архитектура имеет короткий такт, за который выполняется мало операций и чип с невысокой частотой получится медленным.

Неверно представлять, что на этапе разработки все заранее просчитано, это не так. Пока не будут произведены первые образцы, не выйдет несколько ревизий чипа и не будет отлажен техпроцесс на предприятии, быть уверенным в результате нельзя.

Пока я пишу эту статью, на острове в западной части Тихого океана изготавливают очередной образец GPU Kepler и смотрят его параметры, процент мультипроцессоров с ошибками, доступные частоты, потребление. В случае архитектуры Fermi, первые результаты были шокирующе плохими, сейчас, по слухам, процесс более нормальный.

Заключение

Итак, на основании известных параметров производства, доступной площади и насколько экономичными и холодными новый техпроцесс позволяет делать транзисторы, можно сделать достоверные предположения об основных параметрах новой архитектуры. Тем более, что направление известно.

Порадует ли она геймеров? Судя по распространению интегрированной графики, геймеров уже ничего не может порадовать из «железа». Может быть это и правильно, ибо геймплей и возможность играть со всеми друзьями во всех частях света становятся важнее значения fps и графических настроек.

Вызовет ли новая архитектура рост числа программ для PC с поддержкой CUDA? Сама по себе нет, для роста числа специфичных программ нужно просто появление очень нужных и убийственно долгих задач на компьютерах обычных пользователей. Если бы сейчас процессоры кодировали аудио файл несколько минут, то все бы уже имели CUDA-ускорители в своих системах. Но можно достаточно уверенно сказать, что для программ работы с видео, поддержка CUDA станет обязательной, потому что это ускорит медленную обработку больших видео файлов. Все же это большая разница, если вместо 30 минут файл будет конвертироваться за 15.

Можно повторить, что новый GPU должен порадовать, в первую очередь тех, в честь кого он назван — любителей вычислений с числами двойной точности. Ибо по этому параметру ожидается наибольший прирост.

Возможны ли сюрпризы от производителя, какие-то новые скрытые возможности? Наверняка там будет множество мелких улучшений и с точки зрения CUDA и с точки зрения обычной графики, но они будут понятны только узкому кругу разработчиков. Можно ожидать, что программировать GPU станет удобнее в целом. Но, например, вряд ли произойдет что-то радикальное, как отказ от размера связки нитей в 32 штуки и переход к полностью независимому исполнению нитей, что, конечно радикально изменило бы ситуацию.

Будет интересно сравнить параметры нового чипа, когда он выйдет, с предполагаемыми. Будут ли они отличаться в худшую или лучшую сторону, или все все-таки будет совсем по-другому, как не должно было быть.

Одно жаль — мы никогда не узнаем, каким изначально был запланирован Kepler и будет ли вышедший чип провалом или успехом с инженерной точки зрения.

Лев Дымченко (lev)