В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU? Основная фича GPU — их много. Они тупые, умеют считать только шейдеры, но их много и обработка шейдеров хорошо параллелиться. Однако, существует целый паравоз проблем из-за того, что мы имеем отдельный вид процессоров: отдельная память, отдельные инструкции, просто отдельный вид ассемблерных инструкций.
Так что закономерный вопрос: когда CPU тоже станет очень много — не проще ли будет гонять графику прямо на CPU. Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
Здравствуйте, Кэр, Вы писали:
Кэр>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU?
Они давно уже не нужны, со времен 3DFx ничего нового не увидел.
Кэр>Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
Двигатели внутреннего сгорания тоже пора сворачивать, но бизнес есть бизнес.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Кэр, Вы писали:
Кэр>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU? Основная фича GPU — их много. Они тупые, умеют считать только шейдеры, но их много и обработка шейдеров хорошо параллелиться. Однако, существует целый паравоз проблем из-за того, что мы имеем отдельный вид процессоров: отдельная память, отдельные инструкции, просто отдельный вид ассемблерных инструкций. Кэр>Так что закономерный вопрос: когда CPU тоже станет очень много — не проще ли будет гонять графику прямо на CPU. Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
На мой взгляд , тут идет сближение с обоих сторон. GPU учаться новым командам, ветвления и т.п. а CPU наращивают мускулы. Близится их соединение.
Здравствуйте, Кэр, Вы писали:
Кэр>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU? Основная фича GPU — их много. Они тупые, умеют считать только шейдеры, но их много и обработка шейдеров хорошо параллелиться. Однако, существует целый паравоз проблем из-за того, что мы имеем отдельный вид процессоров: отдельная память, отдельные инструкции, просто отдельный вид ассемблерных инструкций. Кэр>Так что закономерный вопрос: когда CPU тоже станет очень много — не проще ли будет гонять графику прямо на CPU. Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
Ну, во-первых, чтобы процессоры стали тягаться силами с GPU, им надо стать похожими на Cell, а не на x86 или аналог.
Пока что можете посмотреть статистику HPC кластеров — Cell'овые кластера упорно занимают верхние строчки в рейтинге по операциям на ватт. Это значит, что в задачах, которые можно оформить в виде расчётов на SPE, они в разы эффективнее "общего" решения. Тема кластеров на GPU тоже активно развивается.
Но это чуть в сторону, а если вернуться к графике — возможность подсчитать на своей памяти и поближе к собственно генератору видеосигнала тоже очень важна. Эмуляция этого на CPU приведёт к тому, что CPU должен будет заниматься весьма специфической realtime работой на каждый выходной кадр. И зачем оно ему нужно?
Думаю, что решение будет промежуточным — GPU станут ближе к обычным CPU, а CPU массово обзаведутся устройствами вроде Cell'овых SPE. Окончательной же конвергенции не будет — она бессмысленна, это как заставлять мобильный телефон водителя работать инжектором машины.:)
Здравствуйте, gear nuke, Вы писали:
Кэр>>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU? GN>Они давно уже не нужны, со времен 3DFx ничего нового не увидел.
Чего????? Со времён 3DFx появилось следующее:
1) Hardware T&L (по сути, аппаратное умножение матриц)
2) Первые vertex shaders (теперь уже кроме умножения ещё и несколько простых команд)
3) Первые pixel shaders (то же самое, но в намного более жестокой форме)
4) Гибкие vertex и pixel shaders (теперь с циклами и вызовами подпрограмм!)
5) Geometry shaders и ещё более продвинутые vertex и pixel shaders (возможность почти явной работы с памятью)
CPU не заменят GPU, так как в GPU уж очень спецефичные условия — не нужно предсказание ветвлений, очень сильный параллелизм и т.д. Как вариант, возможно GPU сольётся с CPU, став его блоком (как произошло с FPU).
Здравствуйте, gear nuke, Вы писали:
GN>Здравствуйте, Кэр, Вы писали:
Кэр>>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU?
GN>Они давно уже не нужны, со времен 3DFx ничего нового не увидел.
Это ты со зла.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Кэр, Вы писали:
Кэр>>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU? Основная фича GPU — их много. Они тупые, умеют считать только шейдеры, но их много и обработка шейдеров хорошо параллелиться. Однако, существует целый паравоз проблем из-за того, что мы имеем отдельный вид процессоров: отдельная память, отдельные инструкции, просто отдельный вид ассемблерных инструкций. Кэр>>Так что закономерный вопрос: когда CPU тоже станет очень много — не проще ли будет гонять графику прямо на CPU. Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
M>На мой взгляд , тут идет сближение с обоих сторон. GPU учаться новым командам, ветвления и т.п. а CPU наращивают мускулы. Близится их соединение.
Не пойдёть.
Для GPU очень важна когерентность доступа к коду и данным. Поэтому их можно сделать много.
CPU делаются так, чтобы это было менее важно, чтобы можно было продолжать вычисления, пока часть системы стоит. Поэтому они быстрые.
Если ты попробуешь уменьшить важность когерентности, то ты получишь увеличение аппаратуры: уменьшится число одновременно управляемых ядер, увеличится вся кэш-память, увеличится логика управления кэш-памятью и тп.
Если ты попробуешь уменьшить площадь одного ядра обычного CPU, чтобы сделать их много, то у тебя получится медленный CPU — типа SUN Niagara. Отдельно взятую задачу он будет выполнять медленно.
Рекомендую попробовать самостоятельно сделать и GPU, и CPU. Хотя бы модель. Будешь очень сильно удивлён.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Кэр, Вы писали:
N>Но это чуть в сторону, а если вернуться к графике — возможность подсчитать на своей памяти и поближе к собственно генератору видеосигнала тоже очень важна.
Последнее не важно совершенно.
N>Эмуляция этого на CPU приведёт к тому, что CPU должен будет заниматься весьма специфической realtime работой на каждый выходной кадр. И зачем оно ему нужно?
Это делается отдельно стоящей тупой аппаратурой.
N>Думаю, что решение будет промежуточным — GPU станут ближе к обычным CPU, а CPU массово обзаведутся устройствами вроде Cell'овых SPE.
Которые невозможно программировать, кстати. Вычисления на SPE очень трудно сбалансировать, и ещё трудней сделать это автоматически.
N>Окончательной же конвергенции не будет — она бессмысленна, это как заставлять мобильный телефон водителя работать инжектором машины.
Соглашусь.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, Кэр, Вы писали: Кэр>Так что закономерный вопрос: когда CPU тоже станет очень много — не проще ли будет гонять графику прямо на CPU. Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
Может быть все придет к подобию Транспьютеров — помню в начале 90х их делали — только ядер будет больше и их можно будет перераспределять как на графику так и на расчетные задачи. Вот с ПО задолбаемся, это факт
Здравствуйте, Кэр, Вы писали:
Кэр>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU?
А я подозреваю, что намного ближе закат x86 CPU Архитектура плохо приспособлена для паралеллизма, чем больше ядер — тем меньше выигрыш и больше накладные расходы на синхронизацию. 4-ядерники в массовой продаже уже несколько лет, а программ которые могут использовать столько ядер — можно на пальцах пересчитать. И выигрыш они дают далеко не 4-кратный.
Здравствуйте, Cyberax, Вы писали:
C>Чего????? Со времён 3DFx появилось следующее:
[]
Да знаю я это... А что толку? Появился Turok — был качественный прорыв в графике, а дальше только количественные (т.к. разрешения мониторов расли...). До Турка был еще прорыв — Alone in the Dark, в какой-то части построили модели из сфер. Так что Турок в какой-то мере шаг назад.
C>CPU не заменят GPU, так как в GPU уж очень спецефичные условия — не нужно предсказание ветвлений, очень сильный параллелизм и т.д. Как вариант, возможно GPU сольётся с CPU, став его блоком (как произошло с FPU).
Именно 2й вариант и будет, то есть GPU умрет под натиском каких-нибудь SSE6. FPU сохранился т.к была необходима обратная совместимость с существующим ассемблерным кодом.
Кто сейчас играет на рынке? AMD(ATI) + Intel vs. nVidia. Не равные силы. Современные видеоускорители напоминают DOS — людям нужна была совместимость с атавизмами вроде CP/M, поэтому это когда-то пользовалось бешенным спросом.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, Кэр, Вы писали:
Кэр>>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU?
AF>А я подозреваю, что намного ближе закат x86 CPU Архитектура плохо приспособлена для паралеллизма, чем больше ядер — тем меньше выигрыш и больше накладные расходы на синхронизацию. 4-ядерники в массовой продаже уже несколько лет, а программ которые могут использовать столько ядер — можно на пальцах пересчитать. И выигрыш они дают далеко не 4-кратный.
ну, если бы дело было только в процессоре, намного больше программ бы достигали 4-х кратного ускорения.
нельзя забывать про другие узкие места как шина, работа с памятью, дисками, с ой же видеокартой.
хотя архитектуру постепенно меняют — тот же Nehalem, и дальше — свой контроллер памяти, свой отдельный банк памяти, с QPI между процами
Здравствуйте, Кэр, Вы писали:
Кэр>В связи с тем, что не за горами CPU с 128 и более ядрами — вопрос, а нужны ли тогда будут GPU? Основная фича GPU — их много. Они тупые, умеют считать только шейдеры, но их много и обработка шейдеров хорошо параллелиться. Однако, существует целый паравоз проблем из-за того, что мы имеем отдельный вид процессоров: отдельная память, отдельные инструкции, просто отдельный вид ассемблерных инструкций. Кэр>Так что закономерный вопрос: когда CPU тоже станет очень много — не проще ли будет гонять графику прямо на CPU. Какие причины будут содержать GPU в комплекте? Не пора ли NVidia сворачивать бизнес?
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Графические процессоры ближе к той архитектуре, которой следовало бы быть у компьютеров. А следовало бы не иметь разделения на процессор и память вообще. Т. е. выполнять операции с числами должна сама память. Разумеется, с возможностью параллелизма на всю свою ёмкость. Также, она должна программироваться на создание определённой структуры передачи и обработки потоков информации.
Здравствуйте, gear nuke, Вы писали:
GN>Да знаю я это... А что толку? Появился Turok — был качественный прорыв в графике, а дальше только количественные (т.к. разрешения мониторов расли...). До Турка был еще прорыв — Alone in the Dark, в какой-то части построили модели из сфер. Так что Турок в какой-то мере шаг назад.
Не-не. Ты нифига, значит, не знаешь что происходило в графике. Я перечислил именно качественные прорывы.
GN>Именно 2й вариант и будет, то есть GPU умрет под натиском каких-нибудь SSE6. FPU сохранился т.к была необходима обратная совместимость с существующим ассемблерным кодом.
Не умрёт. Сама по себе архитектура GPU другая. NVidia хвасталась, что их современный GPU по мощности равен примерно сотне CPU. Что где-то так и есть, в принципе, если посмотреть на результаты Folding@home.
GN>Кто сейчас играет на рынке? AMD(ATI) + Intel vs. nVidia. Не равные силы. Современные видеоускорители напоминают DOS — людям нужна была совместимость с атавизмами вроде CP/M, поэтому это когда-то пользовалось бешенным спросом.
Так с кем ускорители совместимость-то хранят? Direct3D менялся чуть менее чем полностью на каждое поколение графических систем. Современные видеокарты с программируемым pipeline'ом имеют мало общего с 3DFx.
Если ты попробуешь уменьшить площадь одного ядра обычного CPU, чтобы сделать их много, то у тебя получится медленный CPU — типа SUN Niagara. Отдельно взятую задачу он будет выполнять медленно.
Читаем про Лараби:
In-order execution means lower performance for individual cores, but since they are smaller, more can fit on a single chip, increasing overall throughput.
Обычный размен.
На компиляции с помощью одного ядра современный Core 2 будет рвать Лараби, как Тузик грелку.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, любой, Вы писали:
Л>А следовало бы не иметь разделения на процессор и память вообще. Т. е. выполнять операции с числами должна сама память. Разумеется, с возможностью параллелизма на всю свою ёмкость. Также, она должна программироваться на создание определённой структуры передачи и обработки потоков информации.
То, что ты описываешь — это перепрограммируемый систолический массив. Используется кое-где для высокопроизводительных вычислений, и вообще идея очень правильная. Но чтобы пустить это в масовое использование, придется переучивать всех программистов, преодолевая ожесточенное сопротивление
Это ведь не мелкий шажок вроде ФП, управляемого кода или синтаксических макросов, вокруг которых столько копий сломали (и до сих пор ломают). Это совершенно другая архитектура, не фон-Неймановская. И совершенно другой подход к программированию. Кайрофобы затопчут нафиг