Pull to refresh

Comments 15

Причём тут 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», а не гипертридинг.
UFO landed and left these words here
>> количество аппаратных потоков до нескольких сотен — чем не виртуальные ядра?
Каждый аппаратный поток в SMT это контекст потока + блок архитектурных регистров + стадия выбора потока + (неплохо бы) отдельный набор счётчиков предсказателей ветвлений, расположенные во фронтэнде одного физического ядра.

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

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

Да, есть 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 на бинарную трансляцию? И сколько уровней трансляции и где хранить собираются базу оттранслированного кода?

Дьявол как обычно в деталях. Бинарная трансляция небесплатна и вот эти маленькие детали, связанные с БТ могут испортить всю обедню.
Sign up to leave a comment.

Articles