Comments 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/
Здесь идёт речь о строго обратной операции — 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?
При том самом что и там и там это дополнительный слой абстракции над физическими ядрами.
Самая верхняя как раз где физ. ядро core2 делится «пополам».
> Причём тут HT?
При том самом что и там и там это дополнительный слой абстракции над физическими ядрами.
Я так понимаю, тут виртуальные ядра в смысле «reconfigurable computing», а не гипертридинг.
Аппаратный балансировщик ядер?
>> количество аппаратных потоков до нескольких сотен — чем не виртуальные ядра?
Каждый аппаратный поток в SMT это контекст потока + блок архитектурных регистров + стадия выбора потока + (неплохо бы) отдельный набор счётчиков предсказателей ветвлений, расположенные во фронтэнде одного физического ядра.
В случае VISC, несколько потоков могут как делить между собой ресурсы одного ядра, так и один поток может получить доступ к ресурсам нескольких физических ядер.
Забавно, что я игрался с идеей подобного несколько месяцев назад, но в итоге получилось подобие векторного процессора, т.к. распределение команд из одного треда на множество (1-16 в моём случае) отдельных ядер крайне нетривиально без завязки под конкретную конфигурацию (подобно VLIW).
Каждый аппаратный поток в SMT это контекст потока + блок архитектурных регистров + стадия выбора потока + (неплохо бы) отдельный набор счётчиков предсказателей ветвлений, расположенные во фронтэнде одного физического ядра.
В случае VISC, несколько потоков могут как делить между собой ресурсы одного ядра, так и один поток может получить доступ к ресурсам нескольких физических ядер.
Забавно, что я игрался с идеей подобного несколько месяцев назад, но в итоге получилось подобие векторного процессора, т.к. распределение команд из одного треда на множество (1-16 в моём случае) отдельных ядер крайне нетривиально без завязки под конкретную конфигурацию (подобно VLIW).
Потому что вешать много исполнительных устройств на один пайплайн неэффективно, как из-за проблем топологии и сложности устройства так и из-за невозможности их прокормить ввиду отсутствия достаточного параллелизма в потоке инструкций.
Иначе давно бы делали одно-ядерные процы с сотнями исполнительных устройств и множеством аппаратных тредов.
Да, есть GPU которые построены именно так. Но GPU это SIMD машины созданные для параллельных вычислений с учётом работы с высокой латентностью памяти.
Если взять GCN, то Compute Unit (CU), что можно назвать аналогом CPU ядра, выполняет только 1 векторную инструкцию за такт на одном SIMD юните (из 4-х), 1 скалярную и несколько инструкций управления.
Иначе давно бы делали одно-ядерные процы с сотнями исполнительных устройств и множеством аппаратных тредов.
Да, есть GPU которые построены именно так. Но GPU это SIMD машины созданные для параллельных вычислений с учётом работы с высокой латентностью памяти.
Если взять GCN, то Compute Unit (CU), что можно назвать аналогом CPU ядра, выполняет только 1 векторную инструкцию за такт на одном SIMD юните (из 4-х), 1 скалярную и несколько инструкций управления.
А никто не обратил внимания, что в моделировании использовались ядра ARM?
Мультиклет?
Мультиклет принадлежит к классу EDGE (http://en.wikipedia.org/wiki/Explicit_Data_Graph_Execution)
В данном случае, поток инструкций последовательный и _вроде как_ не обязательно требует свою уникальную ISA, а пойдут и существующие.
В данном случае, поток инструкций последовательный и _вроде как_ не обязательно требует свою уникальную ISA, а пойдут и существующие.
Докладываю по обстановке: после покупки Интелом Трансметы и их всех наработок я думал в мире оставалось 2-3 команды занимающихся подобными делами и с нужной экспертизой (команда Дейва Дитцеля в американском Интеле, команда Б.А.Бабаяна в российском Интеле и МЦСТ-Эльбрус команда как остатки прежнего Эльбруса). Все они так или иначе работают(ли) над темой hardware-software codesign с вытаскиванием параллелизма при помощи бинарной трансляции. Оказалось же что есть как бы и 4-ая команда, работавшая в ИТМиВТ с американцами, которая здесь и выстрелила. (Вполне допускаю что это может быть и тот самый МЦСТ и команды всего 3).
В Интеле с осени прошлого года фактически закрыли эти эксперименты, т.ч. «взоры прогрессивной общественности» устремились в сторону softmachines как последних представителей БТ-школы. Посмотрим, что у них получится.
Множество виртуальных ядер и все подходы очень похожи на последний проект Бабаяна со стрендами, но все еще много недоговоренного и много вопросов. Очень интересует как они будут справлять единым front-end ом? Какой overhead на бинарную трансляцию? И сколько уровней трансляции и где хранить собираются базу оттранслированного кода?
Дьявол как обычно в деталях. Бинарная трансляция небесплатна и вот эти маленькие детали, связанные с БТ могут испортить всю обедню.
В Интеле с осени прошлого года фактически закрыли эти эксперименты, т.ч. «взоры прогрессивной общественности» устремились в сторону softmachines как последних представителей БТ-школы. Посмотрим, что у них получится.
Множество виртуальных ядер и все подходы очень похожи на последний проект Бабаяна со стрендами, но все еще много недоговоренного и много вопросов. Очень интересует как они будут справлять единым front-end ом? Какой overhead на бинарную трансляцию? И сколько уровней трансляции и где хранить собираются базу оттранслированного кода?
Дьявол как обычно в деталях. Бинарная трансляция небесплатна и вот эти маленькие детали, связанные с БТ могут испортить всю обедню.
Sign up to leave a comment.
Революционная архитектура микропроцессоров VISC