Вопрос

В последнее время я слышал много людей, утверждающих, что процессор Cell мертв, в основном по следующим причинам:

  • Отсутствие поддержки в новой PlayStation 3, так как пользователь не может установить Linux.
  • Растущая вычислительная мощность графических процессоров и снижение их стоимости
  • Существование единого подхода к программированию (openCL) для разных графических процессоров, а не для CBE (ну сегодня было объявлено для Cell!)
  • Внимательность к реальным примерам использования клетки (кроме академических кругов)
  • Глобальное ощущение неудачи

Что вы думаете?Если вы начали два или три года назад программировать ячейку, будете ли вы продолжать это делать или подумываете о переходе на графические процессоры?Будет ли новая версия ячейки?

Спасибо

Это было полезно?

Решение

Я бы сказал, что причины отсутствия популярности для развития клеток ближе к:

  • Отсутствие успеха в PS3 (из -за многих ошибок со стороны Sony и сильной конкуренции со стороны Xbox 360)
  • Низкая доходность производства, высокая стоимость (частично из -за низкой доходности) и отсутствия доступных аппаратных систем, кроме PS3
  • Сложность разработки (клетка - это необычный процессор для проектирования, и инструмент отсутствует)
  • Неспособность достичь значительных различий в производительности по сравнению с существующим товаром на основе X86. Даже несколько летняя Triple Core Power Architector -процессор Xbox 360 оказался конкурентоспособным по сравнению с современным процессором Core2 Quad, которые преимущества ячейки просто не очевидны.
  • Увеличение конкуренции со стороны вычислительных платформ общего назначения графических процессоров, таких как CUDA

Другие советы

Легче писать параллельные программы для тысяч потоков, чем для десятков потоков.Графические процессоры имеют тысячи потоков с аппаратным планированием потоков и балансировкой нагрузки.Хотя современные графические процессоры подходят в основном для небольших ядер с параллелизмом данных, у них есть инструменты, которые делают такое программирование тривиальным.У Cell имеется всего несколько процессоров в потребительских конфигурациях, порядка десятков.(Производные Cell, используемые в суперкомпьютерах, переходят черту и имеют сотни процессоров.)

ИМХО, одной из самых больших проблем Cell было отсутствие кэша инструкций.(Я громко спорил об этом с архитекторами Cell в самолете, возвращавшемся с конференции MICRO в Барселоне в 2005 году.Хотя они со мной не согласились, я слышал то же самое от пользователей сотовых суперкомпьютеров.) Люди могут справиться с размещением данных в памяти фиксированного размера - у графических процессоров та же проблема, хотя они жалуются.Но размещение кода в памяти инструкций фиксированного размера является проблемой.Добавьте оператор IF, и производительность может резко упасть, потому что вам придется начать использовать наложения.Гораздо проще контролировать структуры данных, чем избегать добавления кода для исправления ошибок на поздних стадиях цикла разработки.

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

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

А тем временем графические процессоры добавляют I$ и D$.Поэтому их становится легче программировать.

Почему клетка умерла?

1) SDK был ужасным. Я видел несколько очень ярких разработчиков о том, чтобы почесать их глаза, изливаясь через списки рассылки IBM, пытаясь выяснить эту проблему или с помощью ячейки SDK.

2) Автобус между вычислительными единицами начинал показывать проблемы масштабирования и никогда бы не попала в 32 ядра.

3) OpenCl был примерно на 3-4 года опоздание, чтобы использовать любое использование.

Если вы начали два или три года назад для программирования ячейки, продолжите ли вы по этому поводу или рассмотрите возможность переключения на графические процессоры?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top