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

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

По информации Триантоса из nVidia, графические процессоры исторически используют параллелизм намного более широко, чем CPU. "К примеру, GeForce 6800 оснащена 16 параллельными конвейерами, в то время как процессоры x86 могут добраться лишь до четырёх ядер в ближайшие несколько лет, - сказал он. - Дело в том, что графическая нагрузка очень хорошо распараллеливается, поэтому преимущество от нескольких ядер сразу же заметно".

Проблемы

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

"Проблемы серьёзные, поскольку программисты должны быть очень осторожными при выборе того, какие потоки разумно запускать на многоядерных процессорах, а какие - нет", - пояснил Рейн из Epic Games.

Переход от одноядерных к дву- или многоядерными процессорам поднимает целый ворох проблем, вроде конфликтующих потоков или циклов, которые могут потенциально "повесить" игру. "Следует перебрать движок и выделить те вычисления, которые могут выполняться сами по себе, затем синхронизировать их с другими - вместо предыдущей парадигмы мышления: сделаем один большой цикл, и он будет работать, - сказал Ким Паллистер (Kim Pallister), инженер Intel. - Поскольку потоки могут запускаться в разном порядке - к примеру, поток A закончит работу раньше потока B - вам нужно писать действительно надёжный код, чтобы игра не "вылетела". В принципе, подобный подход сам по себе очень хорош".

Как считает Паллистер, эпоха хакеров закончена. "Теперь уже нельзя создать классную демонстрацию, запихать её в коробку и продавать", - сказал он.

Даже если программист и сможет использовать всю мощь двуядерного дизайна, вряд ли стоит ожидать 100% прироста производительности, особенно в первое время.

"Если вы перейдёте на два ядра Intel, то не получите 2x улучшения - хотя о 30% говорить можно. А если перейти на четыре ядра, то они дадут прирост всего в 5-10%, - сказал Триантос из nVidia. - Мы и впредь будем создавать всё более быстрые графические карты, которые дадут двукратный прирост производительности, но в играх 2x мы не получим.
 

Copyright @ by Lehach, 2009