nVidia 6xx: CUDA делась производительность?


Внимание! Данный материал потерял свою актуальность, поскольку относился к конкретным поколениям видеокарт, рекомендую перейти к прочтению следующей части. Зачем нужны видеокарты Quadro (часть 5)…

Продолжая «железную» тему выбора компьютера для занятий 3D-графикой, вынужден особо подчеркнуть неприятную особенность нового поколения 6xx видеокарт от nVidia. Информация будет интересна тем, кто связан с GPU-вычислениями (вычисления, рендеринг с использованием видеокарты).

Если вы не в курсе, то в компьютерной технике готовится очередной качественный скачок производительности за счет переноса вычислений с центрального процессора на специализированные вычислительные устройства. Примерами таких устройств являются, например, видеокарты nVidia, содержащие CUDA-ядра (семейства GeForce, Quadro, Tesla). А также анонсированный процессор Xeon Psi от Intel, который по сути является отдельным многоядерным устройством аналогичным CUDA.

Поскольку мы фактически говорим о многоядерных процессорах, то их производительность линейно зависит от количества ядер. Так, например, если мы берем видеокарту GeForce GTX 430 (96 ядер) и GeForce GTX 480 (480 ядер), то производительность второй в GPU-вычислениях будет примерно в 5 раз выше.

Поколение nVidia 5xx подарило нам невероятно классную видеокарту GeForce GTX 580 (512 CUDA-ядер). Карта оказалась феноменально производительной… чем похоже испугала саму компанию nVidia. На настоящий момент она остается наиболее выгодным решением для GPU-рендеринга.

Успех GTX 580 породил целый ряд проблем для nVidia:
1) Взята слишком высокая планка CUDA-производительности, в то время когда конкурент AMD (ATI) строго говоря даже не ступил на это поле (мне неизвестно ни об одной удачной реализации многоядерных вычислений на устройствах этого производителя).
2) Видеокарта GTX 580 оказалась пригодной практически для любых задач, а из-за своей CUDA-производительности она начисто разгромила карты Quadro («в-четыредорога») и сделала сомнительным приобретение устройств Tesla (просто «космический» ценник).

Ну и что же отчебучила nVidia?! nVidia просто сделала еще раз то же самое, но по-другому!

В видеокартах поколения 6xx используется новое ядро Kepler. Если коротко изложить суть нововведений, то из архитектуры предыдущих поколений выкинули часть блоков, вдвое понизили частоту (!), кое-что упростили. В результате чего ПРОИЗВОДИТЕЛЬНОСТЬ CUDA УПАЛА ВТРОЕ!!!

Чтобы пользователи не заметили подставы весь маркетинг построили вокруг двух тезисов:
1) Энергопотребление снизилось (чистая правда и это действительно важно и полезно)
2) Ядер CUDA стало больше (да-да, ядер стало больше, но, вот незадача, сами ядра втрое слабее)

Получился парадокс. Новое поколение 6xx по CUDA-производительности практически ничем не лучше чем предыдущие поколения (прирост 10-15% очень трудно почуствовать)! А некоторые функции по обработке геометрических данных, особенно необходимые для работы с 3D-сценами в них умышленно урезаны!

Это nVidia сделала себе задел на будущее. Через год она снова возьмет тот же рубеж, что уже был взят картой GTX 580. Разумеется в маркетинговых материалах все сплошь радостные известия (конечно, нужно просто сравнивать по нужным параметрам и отчеты будут какие надо).

А обрадовавшиеся пользователи побежали в магазины за «мега-производительными» видеокартами и обнаружили, что их как обычно «обули».

Не буду голословным. Например, при сравнении на Blender Cycles экспериментально получено время рендеринга:

GTX 660Ti (1344 CUDA-ядра Kepler) — 83 сек.
GTX 560Ti (384 CUDA-ядра Fermi) — 94 сек.

Т.е. получается, что 660Ti быстрее на 13,25% чем 560Ti.
Если привести результаты, то по производительности получается четко:
1 ядро Fermi = 3 ядра Kepler

Запомните это и не впадайте в эйфорию при виде спецификаций новых видеокарт (втрое возросшее количество ядер кружит голову, но это лишь уловка).

Подведу итог. Два последних года нет сколько-нибудь заметного роста CUDA-производительности. Такой маркетинг.

P.S. В качестве недорогого решения для GPU-рендера я сейчас рекомендую брать либо GTX 660Ti (оптимальное соотношение цена/производительность на сегодняшний день) либо что-то поколений 4хх или 5хх с большим количеством ядер. Проверяйте по формуле 1 ядро Fermi = 3 ядра Kepler. Ну а если у вас с деньгами порядок, то можете подумать также про GeForce GTX 680 и GeForce GTX 690.

Прочтите также продолжение Зачем нужны видеокарты Quadro (часть 5)…

Автор: Александр Миловский

Часть 1. Общие рекомендации по выбору компьютера для 3D
Часть 2. Хараткеристики видеокарт
Часть 3. Промежуточные Итоги
Часть 4. Бюджетные решения
Часть 5. Зачем нужны видеокарты Quadro
Часть 6. nVidia 6xx: CUDA делась производительность?

образец сертификата Autodesk студии 3D Master
Сертификат Autodesk выдается
по окончании авторизованных
курсов Autodesk. Подробнее…