LINUX.ORG.RU

Выпущен первый в мире 1000-ядерный процессор KiloCore

 kilocore


2

2

Микрочип, содержащий тысячу независимых программируемых процессорных ядер, был разработан командой специалистов из факультета электронной вычислительной техники Университета Калифорнии. Энергоэффективный чип KiloCore имеет максимальную скорость вычислений 1,78 триллионов операций в секунду и содержит 621 миллион транзисторов. Устройство было представлено на Симпозиуме по технологии СБИС 2016 в Гонолулу 16 июня.

«Насколько нам известно, это первый в мире 1000-ядерный чип, который также является процессором с наиболее высокой тактовой частотой, когда-либо созданный в университете» — сообщил Беван Баас, профессор электронной и компьютерной инженерии, возглавлявший команду разработчиков. Согласно анализу группы Бааса, ни один из ныне созданных в мире чипов не содержит более 300 ядер, а большинство из них были созданы для исследовательских целей.

Каждое ядро способно запускать собственную небольшую программу независимо от других, что является принципиально более гибким подходом, чем SIMD (одиночный поток команд, множественный поток данных), используемый в графических процессорах GPU. Идея заключается в разбитии приложения на множество маленьких кусочков, каждый из которых может работать параллельно на разных процессорах, обеспечивая высокую пропускную способность с меньшим потреблением энергии.

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

Также Баас сообщил, что чип является самым энергоэффективным многоядерным процессором из ныне существующих. Все 1000 ядер могут совершать одновременно 115 млрд операций, потребляя при этом только 0,7 Вт, которые может обеспечить одна батарейка типа АА. Таким образом, KiloCore работает в 100 раз эффективнее, чем любое современное вычислительное устройство.

Для чипа уже разработаны приложения, которые включают в себя беспроводное кодирование/декодирование, обработку видео, шифр и другие задачи, в которых используется большое количество параллельных данных, например различное научное ПО и центры обработки данных.

Источник

>>> Подробности (оригинал статьи)

★★★★

Проверено: Klymedy ()
Последнее исправление: Wizard_ (всего исправлений: 6)
Ответ на: комментарий от Evgueni

Создавать параллельные алгоритмы

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

У меня был к мини-кластеру с 196 ARM-ядрами, я так и не придумал для чего его можно применить кроме как написать очередную статью про то какая же это супер-пупер-энергоэффективная железка которая типа рвёт ксеоны и всё такое :). Кто-то там даже какие-то мап-редюсы запускал и прочего, но при 196гигах оперативы это было всего ли 1гиг на ядро чего тупо было мало для моих бенчмарков. В общем, многие вещи становятся тупо неэффективными если дробить слишком мелко. Поэтому в реальности у нас растёт спрос на большие тачки с кучей оперативы, а не на стойки десктопов по 8гиг на проц :)

2) У меня нет уверенности что при упрощении процессора скорость падает линейно с кол-вом транзисторов. Я думаю есть некая точка после которой дальнейшее дробление нецелесообразно. Какой смысл в 100500 ядер которые могут выполнять только сложение?

true_admin ★★★★★
()
Ответ на: комментарий от no-such-file

Кило в их понимании только 1000, поэтому для 1024 якобы нужно другое название.

Ну, например, потому что «χίλιοι» — это «тысяча». А не «тысяча двадцать четыре».

KRoN73 ★★★★★
()

Cores operate at an average maximum clock frequency of 1.78 GHz, and they transfer data directly to each other rather than using a pooled memory area that can become a bottleneck for data.

Звучит как нейронная сеть. А как там организована работа с памятью?

bbk123 ★★★★★
()
Ответ на: комментарий от no-such-file

ведь они настаивают, что их приставки применимы к внесистемным единицам. Особенно смешно это с дробными приставками - что такое по их пониманию миллибайт?

Чёрт. Придётся запретить использование термина киломоль. А то не может быть иоктомолей.

KRoN73 ★★★★★
()
Ответ на: комментарий от bbk123

Звучит как нейронная сеть.

В нейронной сети суть не в нейронах, а в связях. Тут надо смотреть на IBM TrueNorth.

KRoN73 ★★★★★
()
Ответ на: комментарий от true_admin

они считают что любую программу или алгортм можно переписать так чтобы оно масштабировалось на сотни ядер,

Никто так не считает, в смысле, что можно факторизовать всё без исключений (графику, например, можно — чем GPU успешно и занимаются). Но в данный момент других направлений в существенном ускорении хотя бы некоторого класса задач особо не видно.

без серьёзного оверхеда на коммуникацию.

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

Evgueni ★★★★★
()
Ответ на: комментарий от bbk123

А как в обсуждаемом чипе организовано общение между ядрами?

В сабже? Наверное, тупо через общую шину.

KRoN73 ★★★★★
()
Ответ на: комментарий от no-such-file

что такое по их пониманию миллибайт?

читай про энтропию

если лень: это когда информация передается со столь сильными помехами, что приемнику необходимо зарегистрировать 8*1024 нулей или единиц, чтобы получить из них 1 байт информации

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от anc

вот и решили что 1кб=1000б :)

Что такое «кб»? Я знаю только Кбайт, КиБ. Ну в крайнем случае Кб.

DenisPA ★★
()
Ответ на: комментарий от Klymedy

Ну если поумничать, мощностью обычно принято называть напряжение элемента умноженное на его рекомендованный рабочий ток. Учитывая, что для элемента АА рекомендован ток по нагрузке 200мА, имеем мощность всего 0,3 Ватта. И в этом режиме она должна проработать 15 часов.

В общем, от одной батарейки эта штука должна работать примерно 5 часов...

AVL2 ★★★★★
()
Ответ на: комментарий от anonymous

Когда имеют в виду биты, говорят kbit или kbps, kb
kbps

Анон закопай себя обратно, kb-per-sec ставить в одну линейку... с kb и kbit.
ЗЫ И таки разницу между cps и bps имхо мы знали когда вас еще в природе не существовало.

anc ★★★★★
()
Ответ на: комментарий от anonymous

Считаю Отличный итог всему флэйму (который я случайно начал :) ) по поводу приставок! Спасибо, лучше не опишешь!

anc ★★★★★
()
Ответ на: комментарий от anonymous

вначале было слово и слово было 2 байтав колибайте было 1024 байта

Это было не в начале. Это было в «ветке оперативной памяти» по вполне понятным причинам, да и то позже. А «в ветке носителей» с тех же 1960-х в килобайте было 1000 байт. В 1956-м на IBM 305 RAMAC «1кбайт был равен 1000байт» (хотя сам термин «байт» только в том году и появился). Потому что на винте было 50 дисков, 100 сторон по 100 треков на сторону. 5 секторов на треке. 100 символов на сектор. Итого: 100*100*5*100 = ровно 5000000 символов. Или 5 мегабайт в нашем понимании.

Модули памяти с двоичной адресацией по шине и полным заполнением адресного пространства, которые и породили двоичный смысл приставок, появились _позже_, где-то к 1960-м гг. Хотя точный первоисточник я нагуглить не смог. Но у ЭВМ периода 1950-х гг. объём оперативки обычно был десятичным.

Например, на IBM 1620 1959-го сама адресация была ещё десятичной (в BCD) — 20000, 40000 или 60000 слов (5 десятичных цифр в адресе).

и посмотрели маркетологи на новый винчестер, и подумали: «что-то маловат он в этих мегабайтах, в которых 1024 килобайта

Ёмкость винчестеров _никогда_ не измерялась в двоичных единицах :)

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от KRoN73

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

AVL2 ★★★★★
()
Ответ на: комментарий от no-such-file

сколько метров в миле - тысяча или больше.

а что, есть сомнения?

arcanis ★★★★
()
Ответ на: комментарий от AVL2

но во времена пятимегабайтных винчестеров имхо были двоичные величины

Самый первый пятимегабайтный, как я привёл выше, имел ровно 5000000 байт (точнее — «символов», термин «байт» позже появился) :)

...

Мои первые HDD были на 10Мб и на 20Мб. И ёмкость у них была точно не круглой в двоичном смысле :) Нам тогда даже в голову не приходило ёмкость носителей измерять в двоичном виде. Она никак не коррелировала с двоичной логикой. В последней адресуемость задаётся разрядностью шины. И поэтому двоичность логична. А ёмкость носителей задавалась числом секторов, которое равнялось произведению числа цилиндров на число поверхностей и на число секторов на дорожке. Число цилиндров было круглым в десятичной системе у дискетт (40 или 80) и какое попало у HDD (хотя тоже тяготели к десятичной «круглости», например, 135). Число поверхностей и число секторов — произвольное. Поэтому и ёмкость никогда не была круглой. Вот размер сектора часто (но не всегда) был двоичным, потому что такой объём удобно и оптимально читать в память, которая выделяется двоичными блоками.

Кстати, ёмкостный ряд HDD тоже был не двоичным, хотя и часто с удвоением (что помню — ряд не полный): 5Мб, 10Мб, 20Мб, 40Мб, 80Мб, 133Мб, 270Мб, 540Мб, 850Мб, 1.08Гб, ..., 4.8Гб, 9.6Гб, ..., 20Гб, 40Гб, 80Гб, 120Гб, 250Гб, 500Гб, 750Гб, 1Т, 2Т, 3Т, 4Т...

Вот когда появились флеш-карты, я был удивлён их десятичной ёмкостью. Я-то привык ещё к программируемым микросхемам (не только flash), которые адресовались точно также, двоично, как и оперативка — 2киб, 4киб, 8киб, 16киб... 1Миб... 4Миб... Ожидалось, что и флеш-карты будут также двоичными... Но фигушки, они тоже стали как и HDD адресоваться по секторам и ёмкость их сделали десятичной.

KRoN73 ★★★★★
()
Ответ на: комментарий от no-such-file

сколько метров в миле - тысяча или больше.

А сколько попугаев в удаве?

Миля — это ровно тысяча (как и переводится). Тысяча пар шагов. Вот сами шаги у разных народов разные :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Миля — это ровно тысяча (как и переводится).

Только нету 1000. Я тут навикипедил

The nautical mile was originally defined as one minute of arc along a meridian of the Earth.

А в футах это в несколько раз больше 1000 в любой системе миль, вроде бы

arcanis ★★★★
()
Ответ на: комментарий от arcanis

The nautical mile was originally defined

Это уже было веками позже введено.

А в футах это в несколько раз больше 1000 в любой системе миль

Фут — длина стопы. Она никак прямо не связана с шириной шага :)

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от KRoN73

Миля — это ровно тысяча (как и переводится). Тысяча пар шагов

Вот именно, поэтому повёрнутые на СИ должны настаивать, эта единица измерения неправильная, правильно - килошаг.

no-such-file ★★★★★
()
Ответ на: комментарий от bbk123

Ещё 24 ядер до кило не хватает :-)

Кило как раз есть, не хватает до киби.

Obey-Kun ★★★★★
()
Ответ на: комментарий от anonymous

вряд ли (КВт/ч)

да, анонимус, для таких людей надо подавать объявления именно с «учу», а не с «научу»

второе по счету «научу» вылетело по инерции

а первое «научу» — для true_admin-а про гугль — сначало так и было «учу», но потом я подумал и исправил на «научу»... я, понимаешь ли, оптимист...

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от bbk123

А как?

читаю pdf-ки вслух, с выражением. дорого. например вот так:

Communication on-chip is accomplished by a high-throughput circuit-switched network and a complementary very-small-area packet-switched network.

кстати, вот еще одна ссылка http://www-personal.umich.edu/~sabeyrat/hpca19_kilocore_final.pdf к тому, что там вовсе не «тупо», как изволил выразиться KRoN73 — ребята думали, прежде чем взять и ctrl+c ctrl+v

впрочем я этот проц не изучал, так что не надо думать, что я его тут хвалю

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Ответ на: комментарий от www_linux_org_ru

там вовсе не «тупо», как изволил выразиться KRoN73

А что ещё фраза «high-throughput circuit-switched network and a complementary very-small-area packet-switched network» может обозначать кроме традиционной шины? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Это все понятно. Но вопрос в том, что дискеты были 360 кбайт и 720 затем 1,44мбайт. И дальше честнее было бы раз уж вы пишете мб, то и считать мегабайты. Но выгоднее было писать одно, а считать другое. Скушали, вот и все.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

дальше честнее было бы раз уж вы пишете мб, то и считать мегабайты

Ну так у HDD мегабайты как считались десятичными ещё до того, как стали двоичными у оперативки, так и считались дальше :)

Это оперативка однажды сменила десятичные приставки на двоичные, да так потом и осталась.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Фут — длина стопы

ой, сорри, ступил, конечно, посреди ночи :/

arcanis ★★★★
()
Последнее исправление: arcanis (всего исправлений: 1)
Ответ на: комментарий от KRoN73

А что ещё фраза «high-throughput circuit-switched network and a complementary very-small-area packet-switched network» может обозначать кроме традиционной шины? :)

гы. гы. гы.

расскажи мне пожалуйста, на каких процах «традиционная шина» packet-switched?

и на каких процах «традиционная шина» состоит из 2 разных, как здесь?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

расскажи мне пожалуйста, на каких процах «традиционная шина» packet-switched?

Ну да, для человека, который не пробовал мёда, что морковка намного слаще свёклы :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

я так и не понял, каким образом твой ответ относится к моему вопросу

у этого проца имеется свой подход к построению коммуникации ядер; если ты считаешь этот подход «традиционным», или, как ты написал первоначально, «тупым», то пожалуйста раскрой всю его традиционность или тупость подробнее

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

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

Зачем мне сравнивать сладость морковки и свёклы? Зачем процессоры традиционной архитектуры? Сравни хотя бы с TrueNorth, если мы говорим про современные процессоры.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Зачем мне сравнивать сладость морковки и свёклы? Зачем процессоры традиционной архитектуры? Сравни хотя бы с TrueNorth, если мы говорим про современные процессоры.

т.е. ты хочешь сказать, что килокор имеет тупой inter-core communication по сравнению с TrueNorth?

возможно, не могу точно сказать

но где ты видишь традиционность?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

но где ты видишь традиционность?

Как я понимаю, в сабже — обычная общая шина. Возможно, несколько. Да, шина, судя по описанию не простая — но шина.

А в том же TrueNorth у нас 4096 ядер, в каждом по 256 нейронов. У каждого ядра собственная память и маршрутизатор для связи с другими ядрами. 2М нейронов и на порядок больше связей между ними. Вот это — совсем другой уровень взаимодействия и параллелизации :)

Кстати, чип работает на частоте 1 кГц, но производит 46 млрд. операций с синапсами в секунду. При этом потребляет 70 мВт.

Тут контора какая-то недавно кластер на 16 таких процессорах заказала. Потребляемая мощность 2.5 Вт. Эквивалентный кластер (16.7 млн. нейронов и 4 млрд. синапсов) на классической архитектуре жрёт 440кВт...

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

А в том же TrueNorth у нас 4096 ядер, в каждом по 256 нейронов. У каждого ядра собственная память и маршрутизатор для связи с другими ядрами. 2М нейронов и на порядок больше связей между ними. Вот это — совсем другой уровень взаимодействия и параллелизации :)

а где доказательство?

я бы мог так же бездоказательно, как ты, повторить твои слова «шина, судя по описанию не простая — но шина» про TrueNorth, но я предъявлю набросок доказательства

1. эффективность килокора на 100 мегагерцах около 6 пикодж на настоящую операцию

2. эффективность TrueNorth от 2.5 до 25 пикодж на некую весьма подозрительную SOPS (synaptic operations per second) и зависит от задачи

3. «тупая шина» (гыгы) килокора как раз и проектировалась ради энергоэффективности

таким образом можно обоснованно предположить, что у килокора энергоэффективность как раз лучше, и именно за счет того, что у него «тупая шина» (гыгы) лучше, чем супер-пупер-шина у TrueNorth

з.ы. но идея тактовой частоты 1кгц интересна

з.ы.ы. я впервые увидел инфу про TrueNorth где-то вроде rbc.ru (а может zdnet, а может cnews), проблевался и не стал даже пытаться получше разобраться — это я к тому, что существенно, кто и как подает инфу

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 3)

Наглое 4.2

насчет 0.7 вт: пусть из 621млн транзисторов, 500млн - логика(т.е. они core): ток утечки примерно ~300nA/um. ширина затвора примерно ~50нм. ширина всех затворов 500М*50n=25 метров. Ток утечки = 7.5 ампера. Умножим на 1.2 вольта: 9 ватт.

Это только ток утечки всех core-транзисторов всех ядер которые готовы работать но тупят и обламываются. А если они еще и работать начнут...

Кстати,

Все 1000 ядер могут совершать одновременно 115 млрд операций

115 GFlops. Есть такой камень: Mali T760. Он умеет 328млрд операций в секунду и ВНЕЗАПНО у него одна задача в потоке: т.е. он падла тоже очень хорошо ветвится, как CPU, но при этом он GPU.

В принципе такие архитектуры не новы: давно уже видел архитектуру где много «клеток»-ядер по которым распределены подзадачи. Только здесь камень с нескучными обоями выкатили иностранные поповы.

Кроме того, про разработку приложений ну привет им. Я такое делаю например для своего проца(хобби такое) и надо сказать, что задача очень очень очень нетривиальная выходит. Пусть выкатят компилятор и тогда будем посмотреть что у них реально выйдет. Я вот столкнулся с тем, что в LLVM приходится отрезать кодогенерацию под корень, и очень плотно утыкивать программы подсказками.

ckotinko ☆☆☆
()
Ответ на: комментарий от www_linux_org_ru

эффективность килокора на 100 мегагерцах около 6 пикодж на настоящую операцию

этого не хватит 1 бит в SRAM записать.

ckotinko ☆☆☆
()
Ответ на: комментарий от anc

Так кбайте действительно 1000 байт. ;)

anonymous
()
Ответ на: комментарий от www_linux_org_ru

«тупая шина» (гыгы) килокора как раз и проектировалась ради энергоэффективности

Эффективность ортогональна производительности.
Вон, Tilera из-за гемора с i/o аж mesh-on-chip запилила.

devl547 ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

расскажи мне пожалуйста, на каких процах «традиционная шина» packet-switched?

Что ты называешь «традиционной шиной»? Ну, HyperTransport является packet-switched.

tailgunner ★★★★★
()
Ответ на: Наглое 4.2 от ckotinko

насчет 0.7 вт: пусть из 621млн транзисторов, 500млн - логика(т.е. они core): ток утечки примерно ~300nA/um. ширина затвора примерно ~50нм. ширина всех затворов 500М*50n=25 метров. Ток утечки = 7.5 ампера. Умножим на 1.2 вольта: 9 ватт.

а ты где-то в 1000 раз не ошибся? или в 10?

как ты тогда объяснишь наличие диодов с током утечки менее 1 nA? http://hightolow.ru/diode2.php

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.