Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 15

HT reincarnation?
Не верю я в это.
Причём тут HT? Hyper-Threading АКА SMT задействует простаивающие ресурсы за счёт запуска двух и более не связанных между собой потоков.
Здесь идёт речь о строго обратной операции — SMT наоборот, когда один поток может выполняется на разных физических ядрах.

Долгое время, слухи ходили о подобной разработке AMD, но закончилось вот чем:
www.theinquirer.net/inquirer/news/1009078/reverse-hyperthreading-exist

Подробности по VISC можете почитать тут
semiaccurate.com/2014/10/23/soft-machines-breaks-cover-visc-architecture/

А картинки у вас не показываются или что?
Самая верхняя как раз где физ. ядро core2 делится «пополам».
> Причём тут HT?
При том самом что и там и там это дополнительный слой абстракции над физическими ядрами.
SMT в данном случае это как вишенка у торта. Основная фишка VISC — это аппаратное распараллеливание на уровне тредов.
SMT это не слой абстракции над ядрами, а возможность конкретного ядра обслуживать несколько контекстов выполнения.
Тот же Elbrus (III?) мог тащить 4 контекста.
Я так понимаю, тут виртуальные ядра в смысле «reconfigurable computing», а не гипертридинг.
Аппаратный балансировщик ядер?
НЛО прилетело и опубликовало эту надпись здесь
>> количество аппаратных потоков до нескольких сотен — чем не виртуальные ядра?
Каждый аппаратный поток в SMT это контекст потока + блок архитектурных регистров + стадия выбора потока + (неплохо бы) отдельный набор счётчиков предсказателей ветвлений, расположенные во фронтэнде одного физического ядра.

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

Забавно, что я игрался с идеей подобного несколько месяцев назад, но в итоге получилось подобие векторного процессора, т.к. распределение команд из одного треда на множество (1-16 в моём случае) отдельных ядер крайне нетривиально без завязки под конкретную конфигурацию (подобно VLIW).
НЛО прилетело и опубликовало эту надпись здесь
Потому что вешать много исполнительных устройств на один пайплайн неэффективно, как из-за проблем топологии и сложности устройства так и из-за невозможности их прокормить ввиду отсутствия достаточного параллелизма в потоке инструкций.
Иначе давно бы делали одно-ядерные процы с сотнями исполнительных устройств и множеством аппаратных тредов.

Да, есть GPU которые построены именно так. Но GPU это SIMD машины созданные для параллельных вычислений с учётом работы с высокой латентностью памяти.
Если взять GCN, то Compute Unit (CU), что можно назвать аналогом CPU ядра, выполняет только 1 векторную инструкцию за такт на одном SIMD юните (из 4-х), 1 скалярную и несколько инструкций управления.
А никто не обратил внимания, что в моделировании использовались ядра ARM?
Мультиклет принадлежит к классу EDGE (http://en.wikipedia.org/wiki/Explicit_Data_Graph_Execution)
В данном случае, поток инструкций последовательный и _вроде как_ не обязательно требует свою уникальную ISA, а пойдут и существующие.
Ну, теоретически можно взять любой поток инструкций и транслировать его в мультиклеточный. Но у меня ассоциация возникла с возможностью динамически перераспределять ресурсы процессора под программные нити. Мультиклеточники такое тоже умеют. А TRIPS, например, не умеет.
Докладываю по обстановке: после покупки Интелом Трансметы и их всех наработок я думал в мире оставалось 2-3 команды занимающихся подобными делами и с нужной экспертизой (команда Дейва Дитцеля в американском Интеле, команда Б.А.Бабаяна в российском Интеле и МЦСТ-Эльбрус команда как остатки прежнего Эльбруса). Все они так или иначе работают(ли) над темой hardware-software codesign с вытаскиванием параллелизма при помощи бинарной трансляции. Оказалось же что есть как бы и 4-ая команда, работавшая в ИТМиВТ с американцами, которая здесь и выстрелила. (Вполне допускаю что это может быть и тот самый МЦСТ и команды всего 3).

В Интеле с осени прошлого года фактически закрыли эти эксперименты, т.ч. «взоры прогрессивной общественности» устремились в сторону softmachines как последних представителей БТ-школы. Посмотрим, что у них получится.

Множество виртуальных ядер и все подходы очень похожи на последний проект Бабаяна со стрендами, но все еще много недоговоренного и много вопросов. Очень интересует как они будут справлять единым front-end ом? Какой overhead на бинарную трансляцию? И сколько уровней трансляции и где хранить собираются базу оттранслированного кода?

Дьявол как обычно в деталях. Бинарная трансляция небесплатна и вот эти маленькие детали, связанные с БТ могут испортить всю обедню.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации