Pull to refresh

Comments 160

В качестве бредовой идеи:

Каков шанс появления микросхем вида CPU+FPGA на одном кристалле, что позволит «точить» микросхему к задаче? Ну там, если надо — в fpga кладётся DSP для ускорения расчёта физики в играх, если надо, то bitcoin miner например. И так далее.
Насколько мне известно, уже есть варианты где два кристалла так или иначе интегрируются в один корпус. На одном FPGA, на другом CPU. Делать именно общий чип не очень разумно, т.к. у них разные требования к характеристикам техпроцесса, плюс, помещать аналоговые узлы в CPU — не самое простое решение.
У Xilinx есть чипы под названием ZYNQ. Там два ядра ARM Cortex A9 + FPGA часть уровня Kintex 7. У Altera тоже есть, но я с ними не сталкивался.
Шанс 100%. Такие уже есть. Совместо у Intel и Altera.
А, про один кристалл упустил. Но в одном корпусе — есть.
Да Intel еще в 2010 году выпустила процессор Atom E6x5C
www.altera.com/devices/processor/intel/e6xx/proc-e6x5c.html

Но что-то про него не слишком много слышно. Видать слишком нишевым получился продукт. Либо решение оказалось не сильно дешевле просто поставить связку CPU+FPGA на одной плате.
А вы посмотрите цену на топовые FPGA Altera? это практически премиум продукт.
Думаю затык снова в софте. Если узкоспециализированный софт под такую архитектуры ожидаемо появится довольно быстро, то типовой пользовательский софт вообще неизвестно когда подтянется. Собственно нет ни языков ни IDE для того чтобы поточно клепать софт под FPGA.
Поточно в основном не позволяет значительная разница между чипами со сходными характеристиками у разных производителей. Хотя если будет одна строго заданная плисина хотя бы в рамках семейства процессоров и с гарантиями обратной совместимости, то это не так страшно.

Например, на verilog можно накатать прошивку для любой FPGA, но для синтеза приходится использовать «компилятор» от производителя, поскольку различаются базовые блоки.
Дело не только в разных чипах. Нет достаточно высокоуровневого языка для этого. Насколько я понимаю создание прошивок ПЛИС требует высокого инженерного уровня. Примерно как программирование на ассемблере для x86.
Никто ж не пишет сейчас прикладной софт на ассемблере? :) Это сложно долго и очень дорого.
Есть verilog и vhdl. Достаточно высокоуровневые, чтобы на них мог начать писать человек знакомый с принципами работы логических элементов.

Да, не самая простая вещь в освоении и мозг выносит хорошо так, но вполне осиливаемая.
AMD в свое время предлагала нечто подобное, только не на одном чипе — Torrenza. Но эта инициатива почему то не «выстрелила».
Каков шанс появления микросхем вида CPU+FPGA на одном кристалле

Смысл? Чем плохи дискретные PCIE FPGA карты? Мне кажется гораздо лучше когда разные узлы ПК можно заменять отдельно. Интеграция в CPU хороша только для портативных устройств по-моему.
это может быть не самой плохой идеей в консолях, где в один момент времени запущена, по сути, одна задача/игра.
для PC это уже не кажется хорошей идеей — хотя бы потому что одновременно пользователь может запустить игру, и какой-либо расчётный (к примеру) процесс в background. плюс это приведёт к усложнению как разработки ПО, так и компиляторов, и операционных система. Так что это тот ещё вопрос, стоит ли такая потенциальная гибкость подобного изменения в архитектуре. Опять же, серьёзное изменение системы команд и т.п. Если уж многоядерные процессоры толком не используются ещё, что говорить о подобной идее.
Вопрос разделения ресурса проблемен и в текущей ситуации ляжет на пользователя. то есть в каждый момент времени будет в плисине что-то одно.
А ещё будет как минимум два бинарника — для варианта с выделенным FCPGA и для варианта без него. В общем, добавим головной боли разработчикам, да? :)
не обязательно. Рядом лежит бинарник(и) для FPGA, которые туда можно закинуть и использовать. Больше проблем с тем, чтобы для разработчиков этих бинарников предоставить единый интерфейс для любых плат расширения/встроенных в CPU FPGA чтобы не требовалось делать пачку бинарников под все возможные микросхемы/платы.
Я читал, что следующий этап — переход с кремния на лучший материал. Это так, или просто языки болтают?
в долгосрочной перспективе — да.
на этот счет что-нибудь будет в продолжении.
А что сейчас кроме кремния есть подходящего? :)
В перспективе — графен?
графен — один из мнооооогих вариантов.
углеродные нанотрубки, графен, молибден, мемристоры, наночастицы оксидов и сложных металлов, спинтроника, нанопровода, германий, III-IV полупроводники…
тут имеются ввиду альтернативы не только самому кремнию, но и CMOS электронике.
Проблема не в транзисторах, а в интерконнекте — межсоединениях. Никакой графен тут не поможет.

Более тонкие проводники — имеют большее сопротивление, большую емкость. Скорость распространения сигнала падает. Печаль. Безысходность.

Решения — сверхпроводящие и оптические межсоединения, 3д упаковка (сокращает длину соединений).
Тут всё сложнее.
Проблема в том, что стандартные элементы процессора — вентили — теряют информацию (на вход поступает два бита, на выход один). Так как утрата информации = повышение энтропии, то результатом работы такого вентиля _обязательно_ будет нагрев, какими бы способами мы не пытались с этим бороться. Современные процессоры уже очень близко подошли к этой фундаментальной границе.

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

На Хабре была про это статья: habrahabr.ru/post/113332/
Ну про очень близко — это не правда. До фундаментальной границы еще далеко.
В логарифмической шкале — недалече совсем даже.
А не получится создать архитектуру, в которой информация нигде не теряется. Даже если мы сделаем элементы, которые меняют местами выходы, как описано в статье, в рамках одного такого элемента информация всё равно будет пропадать. Ведь на отдельных выходах элементов информация меняется, значит, предыдущее значение пропадает.
Проблема еще и в том, что с увеличением тактовой частоты производитель начинает упираться в релятивистские эффекты распространения сигнала как электромагнитной волны. Представьте, что частота равна 30 ГГц, т.е. 3*10^10 операций \ секунду, а процессор — квадрат со стороной 1 см. В течение одной операции сигнал максимум перемещается от одного «края» процессора к другому, т.е. на 1 см. Т.о. скорость перемещения сигнала в этом случае равна, 3*10^10*10^-2 = 3*10^8 м/c, т.е. скорости света в вакууме. А речь идет о кремнии — скорость распространения меньше. Вот вам пример теоретического предела производительности одного процессора.
где это в процессоре вы видели сигнальные линии через весь кристалл, да еще чтобы от них требовалось «успеть» с передачей за один такт?
В том-то и дело, их нет, потому что не успевает. Именно из-за этого латентность кешей — десятки тактов, а не 1.
То есть в кешах время в основном тратиться на распространнение сигнала? А как же время переключения состояния транзистора?
Да, на распространение уходит 90% времени. Один транзистор и на 50ГГц работать может без проблем, и намного выше.
проблемы с распространением не только от расстояния зависят.
например, помехи требуют установки повторителей, что также вносит задержку.
>>Проблема не в транзисторах, а в интерконнекте — межсоединениях. Никакой графен тут не поможет.

нанотрубки не подойдут?
Ускорение транзисторов в 5 раз не даст ускорения всего процессора даже на 25% :-)

Проблема не в транзисторах. Транзисторы намного быстрее кремниевых есть (самый доступный вариант — SiGe транзисторы), их не используют потому что это бесполезно.
Я имел ввиду использование нанотрубок для межсоединений. Вроде вплоть до сверхпроводников можно получать материалы из нанотрубок
Сверхпроводимость снимает только одну из 3 проблем межсоединений.

1) Сопротивление
2) Емкость + индуктивность
3) Скорость света

Даже с 0-м сопротивлением проблемы остаются.
вы забыли про:
4) Помехи.
Данная ситуация не такая и плохая. Если раньше рост производительности процессоров превращал в хлам топовое железо за год и на нём не только новые игры не шли, но и банальный софт включая ось тормозил, то теперь ситуация другая. Купив топовую железку можно с удовольствием пользоваться ею несколько лет. Причём если раньше производители меняли сокеты процессора и интерфейсы видеокарты как перчатки, то теперь им трудно будет обосновать необходимость такого шага и ту-же видеокарту (где прогресс ещё идёт) можно будет обновить чем-то в разы мощнее.
Тут как посмотреть. Я сам пользуюсь своим ноутбуком уже более 4х лет и пока менять не собираюсь, т.к. скорость новых не сильно от него ушла вперед. С точки зрения покупателя, это может и хорошо.
А с точки зрения ученых? датацентров? Чем мощнее компьютеры тем более сложные задачи им по зубам. И если для просмотра социальных сетей оно не актуально, то в некоторых областях производительность и её рост весьма важен.
Для дата-центров, повышение к-ва ядер при том-же тепловыделении это отличный плюс, там прогресс идет полным ходом и с параллельностью на большинтве задач все ок.
Да я и не говорю, что не надо роста вычислительной мощности. Я сам занимаюсь фотографией и трачу премя на проявку и обработку огромных RAW-файлов. И в этой сфере софт уже научился и в 4 потока параллельно проявлять несколько снимков и задействовать для этого вычислительные мощности видеокарты. И скорость проявки меня устраивает уже сейчас, причём за год, который у меня прожил i7 скорость только выросла. А из апгрейда — только отказ от встроенного видео в пользу мощной дискретной видеокарты с поддержкой OpenCL. Раньше же при обновлении ПО количество фич расло, а скорость работы падала.
Производители RAW-конвертеров часто грешат такой вещью, как параллельная обработка на уровне файлов, хотя demosaicing (превращение сигнала с фильтра Байера в полноцветный растр), работу с кистями и прочим программы проводят максимум на уровне квадратных блоков изображения, и то, не все.

Обратите внимание на график загрузки ЦП в том же Lightroom, к примеру, во время работы, а не во время экспорта тысячи файлов, поймете, о чем я.
> Я сам пользуюсь своим ноутбуком уже более 4х лет и пока менять не собираюсь, т.к. скорость новых не сильно от него ушла вперед.

Где-то видел тесты, там писали, что на аналогичных процах при выполнении некоторых задач система на базе Ivy Bridge до 40% эффективнее Sandy (справедливости ради, в других местах пишут про прирост CPU performance 5%-15%).
Я уж не говорю про энергоэффективность (что для ноута критично).
А если у вас ноут 4-х летней давности, то там скорее всего что-то еще древнее SB (что-то из первых Core?), и прирост скорости будет еще более значителен (если учесть еще и многоядерность тех же i7).
Но недостаточен для меня, чтобы обосновать необходимость апгрейда :) даже 20-30% — маловато…
Но это вопрос личных предпочтений.
У меня ThinkPad T400s. Там установлен процессор CoreDuo2 9400.
В Windows 7 показывает 6.1 балла по втроенному тесту.
Новые ультрабуки на Core i5 на базе Ivy Bridge, те что я видел в тестах, показывают 6.9 балла.
Разница далеко не фантастическая.

По факту, подтормаживает только в играх встроенное видео 4500MHD.
И то, например EVE играется отлично.

Для программирования, я не говорю уже об обыных офисных задачах, его хватает «за глаза».
Для офисных задач, он может послужить еще 3 года без проблем.

Я согласен с тем, что в каких-то конкретных задачах он может и будет существенно медленне последних процов на базе Ivy Bridge, но по факту эта разница не ощущается (у меня десктоп на базе Core i5 3570).
Разница далеко не фантастическая.
А как определить, насколько фантастическая разница между 6.1 попугаем и 6.9 попугаями? =) Там же шкала фиг знает по каким принципам строится, к тому же, отображается минимальная оценка из нескольких совершенно разных подсистем, так что вы легко можете сейчас сравнивать баллы, скажем, жёсткого диска и памяти, что, мягко говоря, малоинформативно.
Плюс там по определению минимальная оценка — это, если не ошибаюсь, 1, а максимальная — 9.9. Но при этом очевидно, что лучшее и худшее железо в природе отличаются не в 10 раз максимум.
Кроме того, это является отличным стимулом для разработчиков писать быстро работающие приложения. В последнее время, на мой взгляд, во многих отраслях это совершенно перестало быть приоритетом. Притом, что это можно делать без ущерба скорости разработки, качеству продукта и требований к инженерам. Классический пример--Microsoft Sharepoint, сервер которого без 8Гб оперативной памяти вообще лучше не запускать.
писать быстро работающие приложения… Притом, что это можно делать без ущерба скорости разработки, качеству продукта и требований к инженерам
Очень интересно, раскройте тайну, как это делать

Классический пример--Microsoft Sharepoint, сервер которого без 8Гб оперативной памяти вообще лучше не запускать
Сейчас железо (даже серверное) стоит сущие копейки по сравнению с софтом (или стоимостью разработчиков). Гораздо дешевле проапгрейдить сервер, чем платить разработчику чтобы он оптимизировал программу.
Проблема в том, что при определенном радиусе кривизны рук разработчика апгрейдить сервер просто бессмысленно. В том случае если разработчик не заложил изначально параллельную обработку данных — разница в 10-15% (200-300Mhz) между топ и предтоп серверными процессорами уже никого не спасет. Как и разница в 20-30% между текущей и предыдущей моделью процессора.
И если ранее можно было скрипя зубами в течении года эксплуатировать систему, а потом сделать апгрейд (или даже серию апгрейдов на протяжении пары лет) на более мощное железо, что давало в итоге очень заметный прирост производительности, то на данный момент такой фокус уже не пройдет, потому что со временем увеличивается количество ядер, а скорость отдельного ядра меняется слабо.
Остается надежда на правильных разработчиков.
Хороший пример--asp.net. Сайты на нем работают ооочеень медленно. А на asp.net mvc--весьма быстро (например, stackoverflow) (при одинаково реализованном data access layer). Причина--плохая архитектура платформы, каждая страница обрабатывается по сути 7 раз, куча дополнительных действий происходит. Но это не остановило архитекторов (зачем, мол, сервера дешевые, железо дешевое). Притом что в итоге на asp.net mvc и писать на порядок приятнее, проще и быстрее. Win-win ситуация, одним словом.

Если вы выпускаете продукт (особенно десктопный), то нужно учитывать, сколько потеряют все пользователи на задержках. Пусть у продукта 1000 пользователей, в день они теряют 5 минут из-за тормозов, час работы пользователя стоит 50$, тогда всего за месяц потери (не ваши, а экономики в общем) составят 80 000 долларов. А вы, да, сэкономите 2000 долларов на оптимизации.
Я вас прекрасно понимаю и согласен, но все же, как это можно делать без ущерба скорости разработки, качеству продукта и требований к инженерам я не понял. Действительно интересно.

Вот есть пример из жизни. Есть некий софт, довольно старый и развесистый. Где-то в его недрах есть ряд монструозных SQL-запросов, которые показывали удовлетворительную производительность на каких-то объемах данных на каком-то железе. Объем данных вырос — запросы не справляются, все тормозит. Можно перевести софт на новый сервер, а можно попробовать найти высококлассного специалиста по СУБД и поставить задачу по оптимизации SQL-запросов. Как быть?
Ключевой вопрос тут в том поможет ли перевод софта на новый сервер.
К сожалению даже у меня есть в наличии подобный софт. Сервер со 100Гб оперативки (объем памяти больше объема базы т.е. база кешируется полностью) и предтоповыми на время покупки процессорами. А в итоге во время выполнения объемной типовой задачи в базе (общее время выполнения порядка 5 часов) загрузка процессора 6-12% — загружены 1-2 ядра из 8. На железе которое можно поставить в плане апгрейда производительность отдельного ядра будет процентов на 10 выше. Ну и будет уже не 8 ядер а 12 или даже 20 если совсем денег не жалко. Но разницы в производительности особой мы к сожалению не заметим.
Все верно, вот и ответ — решение (новое железо или оптимизация софта) должно приниматься исходя из технической и экономической целесообразности.

Т.е. нельзя наперед сказать, что правильнее оптимизировать софт, а не покупать новое железо.
UFO just landed and posted this here
Да вы что? :)
Скриншот онлайн-витрины

Цифры сверху — это количество предложений
Ну сокеты, кстати, меняются всё ещё довольно быстро. У меня i7-950 из первого поколения. Несмотря на то, что новые процессоры всё ещё вполне сравнимы по спецификациям, в мой сокет LGA 1366 ничего кроме bloomfield'а не поставить. К счастью пока что апгрейд и не нужен.

А вот с видеокартами всё вполне обозримо:
ISA -> VLB -> PCI -> VGA -> PCIe
вместо VGA вы хотели сказать AGP?
Да, конечно, я имел ввиду AGP… Извините.
Как вариант развития событий, физическое улучшение производительности перерастет в маркетинговое. :) Как произошло с лезвиями Джилетт. :)
«Купи мощнейший ноутбук с n-дцатью ядрами оперативы и вертикальной загрузкой для учебы и работы»? :)
или даже «Enlarge your Gundam»
Энергопотребление до 100W и системы охлаждения весом до полукилограмма у меня ассоциируются скорее со сварочным аппаратом, да с чем угодно, но только не со сложным вычислительным прибором.


У меня подобное энергопотребление ассоциируется скорее с лампочкой (Ильича). В сварочниках потребление на пару-тройку порядков больше :)
сварочные аппараты бывают разные :)
100W — скорее не сварка, а пайка…
В интернете кто-то не прав
:)
Если говорить о той мощности, которая уйдёт в тепло и которую надо рассеивать на самом аппарате, то для импульсного источника она может быть и заметно меньше 100W. =)
В смысле, если сваривать короткими импульсами тока?
А зря, кстати, посмотрите на топовые железки Sun и IBM. В обоих случаях используется водяное охлаждение (оно встроено в шасси), потому, что эффективность вычислений важнее экономии «на спичках». Топовое железо требует топового подхода.
Видите ли, в таком сервере кроме процессора критичной частью будет являться еще и система охлаждения. Герметичность каждой трубочки, плотность пыли на ребрах радиатора. А чем больше критических частей у системы — тем она менее надежна.
Система охлаждения и так критична — долго ли проживет ваш ПК, если умрет во время игры вентилятор видеокарты? Кстати, если быть точным, в качестве охладителя сервера используют не воду, соотвестветственно разрыв системы охлаждения не вызовет моментального КЗ и красивого феерверка. Правда, модуль придется все равно отключать и выводить на ремонт, без охлаждения он неработоспособен. Понятно, что чем система проще, тем она надежнее (нет ничего надежнее бетонного блока!), но при росте сложности решаемой задачи — растет и сложность ее обслуживания.
нет ничего надежнее бетонного блока!

Армированный бетонный блок.
Нет, потому, что он сложнее. Арматура может сгнить (проржаветь), может отслоится от бетона…
Ну, вообще, армирование сейчас делают не только металлическими стержнями, но и керамическими, например. И вообще его делают как раз для увеличения надежности, например для лучшей устойчивости при нагрузке на растяжение и т.п.
а еще понятия прочности и надежности многогранны.
я, например, голосую за бетонный шар — у него сложнее отбить угол чем у блока, пусть и армированного :)
Солидарен, можно различать прочность при мгновенной нагрузке и при длительной. И они вполне могут быть независимы.
немного пофантазирую и скажу что помочь в этой истории смогут процессоры с перестраиваемой в реальном времени архитектурой. Например, когда нужна большие вычислительные мощности, часть логики перестраивается в аппаратные умножители/сумматоры, когда появляется задачи, потенциально распараллеливаемые, ядро «переразбивается» на несколько ядер и т.д. Отдельная и очень большая проблема — это разработка софта под такие переконфигурируемые процессоры. (я всегда буду обновлять страницу перед вставкой комментария. Написал и увидел комент про фпга)
В каком-то виде она уже существует. Просто чем больше простор для реконфигурации, тем ниже производительность — реконфигурируемые связи вносят задержку. Поэтому перестроить сумматор или умножитель в DSP можно уже сейчас, а попытка переразбить ядро на части не даст желаемого выигрыша.
Перестраиваемые части и связь с ними, мне кажется, неизбежно будут медленнее, чем «основное» ядро.
Универсальность против специализации — извечный спор. Специализированное монолитное устройство ВСЕГДА быстрее, чем его универсальный аналог.
увеличение числа ядер серьезно ограничено энергопотреблением

А разве не физическим пределом кремния? Как бы площадь сокета ограничена, невозможно туда налепить сколь угодно ядер.
Тем более сейчас все стремятся к уменьшению общей площади интегральных схем.
площадь сокета во много раз превосходит площадь кусочка кремния в корпусе CPU. Кроме того, я не говорил, что она ограничена ТОЛЬКО энергопотреблением.
А почему площадь ограничена? сейчас есть 2-4 и более процессорные конфигурации, если не будет проблем с тепловыделением, несколько сокетов можно объединить в один разъем.
Рост площади увеличивает себестоимость более чем линейно, т.к. кроме площади растет и процент брака. Вообще сейчас при проектировании микропроцессора, сначала определяется за сколько его будут готовы купить, затем, какой он может быть площади при такой цене, и уж потом, что в эту площадь можно уместить.
Но ведь рост площади влечет за собой еще и рост тепловыделения, не так ли? Больше площадь → больше ядер → больше мощности → больше тепловыделения → нужен еще больший корпус для отвода тепла.
это зависит от того, как использовать новую площадь.
вы слышали про «темный кремний»?
Но и обходится этот брак элементарно: сколько ядер работает — столько и продаём, отключив остальные ядра и делая вид что так и задумано, снабдив звучным именем. Брака нет — ультрапупер профессиональный процессор, всего одно ядро пашет — экономичный офисный процессор с низким потреблением. Всё что между — различные варианты для народа.
Не все дефекты можно исправить таким образом — бракованными могут не только ядра получиться. Кроме того, это неэффективное расходование площади, что не оправдано экономически. Даже если вы не выбросили весь чип, а сделали одноядерный процессор с площадью как у восьмиядерного — вы все равно неразумно потратили площадь кремниевой пластины.
Разве отбракованные микросхемы можно отправлять «в переплавку»?
если брак не фатален, то часть микросхемы можно отключить и использовать остальное.
Например, IBM'овский процессор CELL (PlayStation 3) на самом деле имеет в архитектуре на 1 ядро больше, чем заявлено в спецификации консоли. Но одно (неисправное) ядро блокируется для увеличения выхода годных при производстве. В итоге, если 8 из 9 ядер работают — процессор годен.
Вы говорите о росте плоащди кристала или сокета? можно разместить несколько кристалов на одной подложке, полагаю.
кристалла.
можно, так делают. в этом случае остаются трудности с энергопотреблением.
Ну с энергопотреблением не поспоришь, в это да, все и упирается.
Я больше ядер хочу. Дайте мне ещё ядер, да в десктопном процессоре. Мне лень распараллеливать по сети, и я не хочу платить за серверное железо. Дайте мне ЯЯЯЯДЕР :D
Вас спасет Xeon Phi. Тоже недешевая штука, но ядер предостаточно.
Мне кажется, проблема ограничений текущего этапа развития ИТ — в программных задачах, которые сегодня с их помощью чаще всего решают. А именно в потребительских представлениях о ПК, мобильных устройствах, приложениях для них. Почему убогий комп конца 1960-х мог рулить запуском Apollo или экономикой Чили, а сегодня мы озабочены проблемой, тормозит ли Angry Birds?

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

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

С другой стороны, спрос чисто потребительского рынка на увеличение тех или иных характеристик железа ограничен типичными потребительскими запросами — как в случае, например, экранного разрешения: когда качество Retina соответствует разрешающей способности глаза, или когда спецэффекты достигают фотореализма, дальнейшее улучшение показателей становится сложнее продавать и внимание потребителей переключается на что-то другое. То есть потребитель, такой как он есть, объект рекламы, нуждается в эволюции в более развитое существо (просьюмера), чтобы стимулировать дальнейший прогресс.

Получается, этот дальнейший прогресс заключается в:
— развитии программной поддержки параллелизма
— архитектурных инновациях (альтернативные ОС и новые программные задачи)
— инженерных инновациях (проектирование новых устройств с использованием процессорных ядер)
— инновациях бизнес-моделей, монетизации устройств и сценариев их применения, которые пока еще слабо монетизировались
— развитии общей «философии» применения ИТ, то есть проектирования сверхзадач, под которые будут разрабатываться и модели монетизации, и инженерные инновации и все остальное (для Intel примером могут быть образовательные инициативы, проекты future studies, сотрудничество с компаниями типа Autodesk, генерирующими спрос на целые классы железа, а также, вероятно, с какими-то общественными инициативами, DIY-сообществами, открытой/гражданской наукой и т. д.).
Нет уж. Проблема как раз именно в чистой производительности.

Сейчас еще огромнейшее кол-во задач не решено.

Вот несколько:

1) Производительность мобильного процессора для робототехники и аналогов «искуственного мозга»
2) Объемы памяти позволяющие хранить потоковые данные устройств на протяжении многих лет
3) Различные математические вычисления

Нужно чтобы телефон мог с тобой разговаривать без связи с интернетом. А для этого в него надо запихнуть дата-центр который сейчас отвечает за распознавание речи. А еще нужна память устройствам — чтобы они могли постоянно снимать и помнить все.

Для, этого нужна объемная память — кристаллы. Да и процессоры должны стать в итоге объемными.

Есть и другой вариант — повсеместное развертывание «толстых» беспроводных каналов, и перенос всех вычислений/данных в облака. А на клиенте только ОС-оболочка и сервисный софт.
Глобус слишком большой, а «с» слишком мала, чтобы данное решение могло работать, так как чем больше latency и чем шире канал, тем менее эффективно работают современные протоколы передачи данных типа TCP и т.д. А так как передавать данные мы наверняка хотим квазинадежно, то пока тут проблем больше чем решений(единственное нормально работающее решение на текущий момент — параллельная передача данных, но мало что ее умеет на текущий момент и она в большинстве случаев усложняет решение). Да и общая надежность такой централизации будет под вопросом.

Да и внутри вычислительных систем основная проблема это уже давно не производительность одного ядра, а эффективность интерконнектов, по этому производители аппаратуры и стремятся запихать как можно больше вычислителей как можно локальнее, чтобы не таскать данные туда-сюда по интерконнету.
с достаточно велика, чтобы пользователь-человек её не ощущал в пределах планеты, даже если сигналу нужно пару раз сгонять туда-сюда.
Достаточно мала, чтобы из гарантированной полосы 1G по факту осталось дай бог если 10% в пределах одной страны…
В постах про трехмерную интеграцию я писал, что разработчики подумывают о восьмислойных «бутербродах» вместо чипов памяти. В не слишком далеком будущем. А вот с объемными процессорами сложнее.
Кстати, а почему вы считаете, что они обязательно должны стать объемными?
Как почему — число комбинаций вырастет на порядок да и просто количество элементов будет больше.
В случае с памятью, если я все правильно понимаю объемы должны вырасти просто в нереальное кол-во раз.

Потому как вырастает не просто кол-во, скажем, транзисторов, но и количество комбинаций которое можно составить из всего этого объема элементов. А этом дает «неприлично огромное» пространство для хранения информации. Вот в таком пространстве можно хранить 10ки лет видео и аудио инфу «наподобии» нашей человеческой памяти.

«Волшебный куб» из множества фильмов про будущее.
Как ни смешно, но сейчас нет проблемы нехватки транзисторов.
Есть проблема использовать доступные транзисторы с пользой так, чтобы обосновать рост себестоимости и цены изделия. Боюсь, трудно объяснить в двух словах, но применимость 3d-интеграции собственно к CPU в основном рассматривается в контексте удешевления больших процессоров.
Ну как же нету. Тогда сделайте транзисторов в 10 в 100ой степени раз больше. Выше же вы написали — процент брака возрастет. Но это технология. А если брать абсолютный случай, то даже тогда, процессор площадью в 10 кв. см. вряд ли будет полезен и удобен. А вот куб 1см на 1см и на 1см…

Цена ценой — но я хочу сказать, что сейчас есть огромная потребность в производительности во много раз превышающей нынешнюю. Если такой скачек сделать, то и цена даже в 10тыс уе не будет помехой, например, для робототехники скажем. Я молчу про бизнес сектор, где итаниумы и без того не мало стоят.
Нету такой проблемы. В разумных рамках. 10 в 100й степени ЕМНИП — больше, чем число частиц в наблюдаемой области вселенной. :)
Абсолютный случай — на то и абсолютный, что ничего общего с реальностью не имеет

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

*А итаниумы стоят так дорого потому, что с одной 300мм вафли (>$6к себестоимость только изготовления) получается хорошо если 10 работающих чипов.
А можно поподробнее в чем проблемы итаниума? Почему так низок процент работающих чипов?
площадь кристалла очень большая, шанс, что на ней встретится хоть один дефект — очень велика.
что разработчики подумывают о восьмислойных «бутербродах» вместо чипов памяти


Действительно головокружительный скачек произойдет когда будет не 8 слоев, не N слоев, а площадь превратится в объем, будет n3. Тогда можно будет хранить информацию как по вертикали, так и в горизонтале и черт его знает еще как. А 8 слоев скорее всего как всегда будут изолированными. Просто 8 отдельных чипов друг на друге в одном корпусе.
Изолированными и будут.
Если я верно понимаю вашу идею, то она вообще не имеет ничего общего с текущей технологией, а значит даже в ближайшие 10-20 лет вряд ли увидит свет.
Но да, было бы неплохо, наверное.
Думаю да. Общего мало. Слои обязательно должны быть не изолированные. Насчет сроков — может и быстрее все произойти. Главное первый образец сделать. А дальше все как с транзисторами. Год за годом зарабатывание денег.
Главное не просто сделать, а сделать так, чтобы их было рентабельно производить.
Проблема, как я понимаю, в том, что если сейчас мы делаем, условно говоря, в один слой, и имеем 10% брака, то при изготовлении в 10 слоев будем иметь те же 10% но на каждом слое, и не факт что на одной пластине будет хоть один работоспособный бутерброд.
Зависит от. Если слои производить отдельно, а потом собирать в стек, то брак одного слоя других не коснется. Но появляется брак на этапе соединения слоев…
Проблемы с охлаждением тогда будут…
Я думаю, что когда такое сделают, то технология будет совсем другой. Но даже если так, то можно сделать куб с идентичным кол-вом транзисторов. Но вот производительность у него должна быть в 100ни раз больше.
Идентичное количество транзисторов сложенное в куб, а не размазанное по плоскости охлаждать будет сложнее. Это раз. Два, откуда вы берете свои цифры, вроде «в сотни раз»?
На серверах редко есть проблемы с параллелизмом. И большое количество ядер с малой частотой часто даже удобнее, чем меньшее число с большой частотой. Так, что дело не в этом. Решает производительность на каждый ватт, было бы рентабельны процессоры с 4ГГц, 8 ядрами и тепловыделением 200+Вт, думаю, можно было бы выпустить.
Интересно, можно ли было бы получить какой-то профит, если сделать так:

1. Статистически проанализировать код (на уровне машинного) топ-тысячи (десяти тысяч, миллиона) самых используемых в мире программ.
2. Выявить участки кода, которые, во-первых, используются в подавляющем большинстве этих приложений, во-вторых, используются активно, в-третьих, могут быть ускорены за счёт переноса решения на уровень микросхемы.
3. Создать процессор, в котором выявленные участки кода (с возможностью параметризации, конечно) будут реализованы на уровне железа.

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

Хороший пример, где удалось достичь существенного выигрыша — инструкции SYSENTER/SYSEXIT или SYSCALL/SYSRET, которые используются не очень много где, зато в супергорячем пути «вызов функции ядра ОС» KiFastSystemCall (или аналог в мире Linux).
Можно, есть проект GreenDroid, который я упоминал в серии постов про тёмный кремний.
Суть в генерации аппаратных ускорителей для самых «горячих» участков Android-окружения.
Разумеется, обнаружение таких участков и использование ускорителей лежит на среде разработки, а не человеке.
UFO just landed and posted this here
Емнип, еще в 90-х первые оптические компьютеры делали.
Ведутся. IBM помнится активно занималась интерконнектом на оптических технологиях.

Оптических процессоров общего назначения насколько я знаю ещё нет, но спец. процессоры точно есть. Как минимум об одной разработке рассказывалось в ИТМО на курсе оптоинформатики
Верно. Ещё есть разработки, где оптические линии используются для передачи сигналов на большое расстояние или с высокой плотностью. Если на пальцах — упаковываем толстую шину битов в оптику и гоним сигнал из одного конца чипа в другой. Говорят, выигрыш против стандартных решений более чем ощутим. Но есть трудности с изготовлением.
DWDM? HDWDM?

Ну и соседний топик с вашим.
На мой взгляд, интеграция CPU и GPU является всё же чем-то плохим. Купил i5-3450 со встроенной графикой. Поработал с ней какое-то время (думал замена моей HD 6850) поставил видеокарту. Разница была на лицо(не в играх). Особенно я был удивлён тому, что Urban terror вдруг вместо 70-90 фпс начал выдавать стабильные 124-125фпс (я думал проблема в linux).
Т.е. в моей ситуации место подкрышкой процессора можно было бы пустить на что-то более полезное, чем видео которым я всё равно не пользуюсь.
Дискретные видеокарты не так сильно ограничивают себя в энергопотреблении, за счет чего превосходят встроенную графику в итоговой производительности. А в производительности на ватт — еще вопрос.
>Еще одна причина, почему добавление новых ядер не сильно помогает решить проблему – оптимизация приложений. Существует не так много задач, которые как, например, обработка банковских транзакций, можно без особого труда распараллелить практически на любое число ядер… Но большинство известных алгоритмов, используемых для практических задач, последовательные по своей сути.

Обработка фото и видео, по-моему, достаточно распространенный класс задач. С учетом роста «мегапиксельности» в фотоаппаратах (Nikon D800 36,3 МП, размер RAW 30-70Мб) и грядущим 4К видео ядер много не будет.

Быстрое построение preview для пары сотен кадров суммарным размером в десяток гигабайт запросто «скушает» любое число ядер.
Обработка видео — как раз то немногое, что работает намного быстрее на новых чипах. Но в основном благодаря специализированным блокам обработки, а не многоядерности. Хотя я согласен с вами.
Интересно, почему как-то обошли проблему работы с памятью.
Тепловыделение — да, проблема. Но сделают, допустим, 64 ядра. А откуда данные-то брать и куда их складывать?
Да, есть NUMA, но она как-то больше на костыль похожа. Иногда сработает, иногда нет. Растить L1,2,3 кэши? Вот этот вопрос интересен!
Обо всем в одном посте не расскажешь, и даже в серии постов.
То, о чем вы говорите, относится к system-level изменениям. Здесь же только про процессоры.
Но мысль интересная. Может в другой раз :)
Будет интересно об этом послушать!
А как же искусственные алмазы?
Это вы вообще к чему?
Цены на 4K 4 раза космические. «Дешевые» тв сони от 5000$.

Это как с ценами на 1920*1200 стоят почти в 1.5-2 раза дороже чем 1920*1080.

И если планшет ipad3 стоит скажем 1000$ то монитор или тв с таким же разрешением и диагональю, ну просто не может стоит столько же.

Так что пинок в сторону производительности не ожидается от 4К в ближайшее время.

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

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

В России любят использовать все пока треснет сломается.
Я уверен что во многих фирмах трудятся пк частота которых ниже 1ГГц и памяти 512мб и менее.

Ну если закупка новых ПК ни как не отразится на производительности труда рабочих то и смысла обновлять парк техники у рабовладельцев нет ) Они же не альтруисты!
Блин вот лучше бы России закупила сейчас оборудование для производства процессоров, глядишь хоть какой бы толк был :) Хотя наши конечные решения которые бы появились через пару лет стоили бы как минимум как самое слабое импортное. Но хоть было бы не обидно разница была бы максимум раза 2. А то глядишь и в 50%.

Обычный процесс — «застойные» явления в научно-техническом развитии сменяются либо экспоненциальным ростом относительно предыдущих показателей либо стагнацией. Я полагаю что в ближайшие двадцать лет произойдет смена парадигмы как и предсказывал советский ученый А. Нариньяни, а главенствующую роль по моему мнению, будут играть нейроморфные графеновые чипы, в которые будут исполнять не алгоритмы а сложные математические модели на аппаратном уровне.
Интересная точка зрения, но только одна из возможных…
В пользу смены парадигмы может говорить еще тот факт, что, ныне почти забытая, аналоговая техника с помощью листа бумаги и вольтметра решала задачи, которые сейчас требуют суперкомпьютеров… :)
Вообще, есть точка зрения, что человечество так и не создало ничего сложнее, чем то, что можно было рассчитать на логарифмической линейке…
А примитивную модель нейронной сети я думаю вычислить на логарифмической линейке будет крайне затруднительно ) Будущее за объединением технического и биологического, и это может дать такой синергетический эффект, что мы сможем забыть о биологической смерти и о одиночестве, т.к. нейрочипы позволят нашему мозгу стать одновременно тонким клиентом и сервером, получая информацию транслируемую из нейрочипов других людей и расшаривая свою )
а новой технологии, способной обеспечить столь же устойчивый рост производительности не наблюдается.

да ладно… например:
en.wikipedia.org/wiki/Three-dimensional_integrated_circuit

и это только одна из идей которые активно развиваются сейчас. дайте лет 5-7 и нынешняя модель умрет.
здесь описано почему 3d-интеграция в ближайшие годы повсеместно не появится, и что с ней вообще всё непросто.
Кроме того, проблему, собственно, производительности вычислений она как-то особенно и не решает.
А как на счет мощности всех ПК подключенных к интернету? Их же экзафлопсы! А если все суперкомпьютеры со всей планеты соединить в сете интернет 2 то производительность, уверен, зашкалит за 1000 экзафлоп! Сила в единстве! Молчу о возможном скором создании квантового компьютера, который за секунды найдет решение задачи непосильной для всех существующих компьютеров вместе взятых за тысячи лет!
Откуда вы взяли такую цифру? насколько мне известно, это даже близко не так.
Да и про квантовый компьютер вы, похоже, не совсем в курсе. Он теоретически позволяет решать задачи за корень квадратный операций, по сравнению с текущей трудоемкостью. Но это далеко не для всех задач так, а лишь для некоторых трудноразрешимых на сегодняшний день, и в основном в контексте криптографии.
А Вы еще учтите парк носимых ЭВМ!
В квантовых компьютерах используется тот самый принцип, согласно которому в один момент времени фотоны могут существовать одновременно во всех возможных состояниях, и следовательно теоретически идеальный квантовый компьютер может выдать правильный результат мгновенно, но загвоздка в том что и остальные (не правильные) результаты он тоже выдаст, и проблема заключается в увеличении вероятности получения верного ответа игнорируя все остальные.
Сделать ответ квантовой вычислительной машины (КВМ) на 100% верным мешает не преодолимый закон квантовой механики, кратко говоря, согласно которому наблюдения влияют на результат измерения. Отсюда и все удачи компании DWeave!
Советую очень интересный фильм о квантовой теории
Не все так просто в королевстве. Если все просуммировать, то мы получим пиковую производительность системы, а она совершенно никому не интересна, так как не позволяет решить ни одну задачу.

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

Сила уже давно не в единстве. Сила в пространственной локальности вычислений.
Мне кажется, что проблема использования многоядерных систем, а отсюда и проблема производительности на тех же CPU, упирается в возможность распараллелить технические задачи.
Приведу пример из реальной жизни.
Имеется некая геологическая модель, которая зависит, допустим, от десятка параметров. Можно переложить расчет каждого параметра на отдельное ядро, но при этом в конечном итоге использоваться будет всего 10 ядер на параметры и 1 ядро на расчет результатов моделирования. Сами по себе расчеты модели при заданных параметрах тоже возможно распараллелить. Но на сколько? 2-3 ядра? ну 5.
В результате, кластер собранный из 3х обычных «башень» рассчитывает модель лишь на пару часов медленнее, чем ТОП-25 суперкомпьютер «Ломоносов» (ноябрь 2012).
Может быть все же стоит, прежде чем дальше углубляться в сложности архитектуры будь она 2D или 3D, сначала научиться создавать достаточно параллельные алгоритмы, тем самым увеличивать производительность на тех же процессорных мощностях.

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

Вот вам реальная задача, не бытового уровня, реальные результаты решение и реальная статистика.
Безусловно можно свалить все на криворукость программера, написавшего программный код модели, но дело не в том, что «он идиот». А в самим алгоритмах и методах решения тех типичных задач, которые ставятся перед нами, в т.ч. и в области научных изысканий.
Корректная формулировка задачи — половина решения, благо сегодня скорости передачи данных между частями супер компьютеров растут экспоненциально, недавно мелькала новость о 10 ТБит\сек полно дуплексных на одном оптоволоконном кабеле!
Если нет возможности ускорять процессор, логично было бы развивать скорость доступа к памяти.
К дисковой памяти сойдёт? (я про наступление SSD на всех фронтах)
Сойдёт. Но лучше поднять скорость доступа к оперативной памяти хотя бы до уровня L3 кэша. А лучше до L1.
А вы в курсе чем L1/L3 кэш отличается от основного ОЗУ кроме «расстояния» до процессора?
В общих чертах.
Но скорость памяти ведь можно повышать.
Достаточно вспомнить, что у них, в общем-то, разный принцип работы. что памяти необходим рефреш, а кэшу нет. Что основная память более энергоэффективна и дешева, что кэш — отчасти ассоциативен…
Если даже предположить, что вы готовы заплатить за такой же объем RAM, сделанного по технологии кэш-памяти, то энергопотребление вас неприятно удивит.
Если же технологию оставить как есть, то из за рефреша даже интеграция в CPU не даст догнать по скорости работы L3 кэш.
Повышать то можно, и она постепенно растет. Но для качественного прорыва надо найти какую-то новую технологию изготовления/принципы работы.
Хорошо бы продолжить первый график после 2005 года. Кажется, что IPC вышли на плато, но это не так.
Увы, продолжения графика мне найти не удалось.
Вы можете чем-то подтвердить своё высказывание про IPC? Я слышал подобное, но нигде не видел конкретных цифр.
После 2005 началась Тик-Ток. На тике обычно ~1.05x IPC, на токе — ~1.10x IPC если усреднять по очень большому кол-ву бенчмарков.
Sign up to leave a comment.