Size: a a a

Compiler Development

2021 July 05

AG

Alex Gryzlov in Compiler Development
RCU всякое там :)
источник

PS

Peter Sovietov in Compiler Development
Там, очевидно, не любые программы, а те же вычислительные графы ML и прочие узкоспециальные вещи. Компилятор должен иметь возможность очень детально проанализировать работу с памятью в программе, чтобы сделать place & route (повторюсь, это ключевая, на мой взгляд, их возможность).

"Fully programmable: kernels and runtime system (firmware) are written in standard C language."

Подробности об архитектуре и компиляторе см. здесь: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9373921
источник

PS

Peter Sovietov in Compiler Development
Кстати, ядра общего назначения у них не RISC-V, а ARC. К вопросу о том, что "надо переходить на RISC-V" ;)
источник

AT

Alexander Tchitchigi... in Compiler Development
AFAIK это проходит по классу "примитивы синхронизации". Я имел в виду "модели" в смысле "Actor model" и "Dataflow programming".
источник

AG

Alex Gryzlov in Compiler Development
так оно же архитектурно агностичное
источник

AG

Alex Gryzlov in Compiler Development
это же по сути сорта мессадж-пассинга
источник

AT

Alexander Tchitchigi... in Compiler Development
Если только ML, то там всё более-менее понятно. Мне любопытно, что будет если начать это дело адаптировать для general purpose computing? GPGPU тоже вышел из быстрой заливки экрана. 😊
источник

AT

Alexander Tchitchigi... in Compiler Development
RCU? Или ты про что?
источник

AG

Alex Gryzlov in Compiler Development
акторы/датафлоу
источник

AT

Alexander Tchitchigi... in Compiler Development
Акторы — с одной стороны, безусловно, да, но с другой стороны они как-то больше для small(ish) scale clusters, на сотню машин их раскидывать уже не очень. Раскидывать на 256-512 ядер — ещё более сомнительно.
Dataflow AFAIK вообще подразумевает shared memory. По крайней мере, до сих пор подразумевало.
источник

PS

Peter Sovietov in Compiler Development
В подобных архитектурах программа традиционно представляется в виде статического dataflow-графа. Все это отображается на решетку процессорных элементов, с учетом разной стоимости передачи сообщений между различными адресатами.
источник

AT

Alexander Tchitchigi... in Compiler Development
Других вариантов нет? 😊
источник

PS

Peter Sovietov in Compiler Development
Для программиста-то это может выглядеть совершенно иначе. Компилятор ("достаточно умный") должен всю эту подноготную скрыть.
источник

AT

Alexander Tchitchigi... in Compiler Development
Вот в том и вопрос, как это может выглядеть для программиста, чтобы ни у программиста, ни у компилятора не вызывать аццкого кринжа? 😃
источник

PS

Peter Sovietov in Compiler Development
Вон, существуют же различные HLS-проекты для FPGA (разной степени успешности). Компилятору будет тяжело, от этого уже никуда не денешься :)
источник

ДК

Дикий Кот in Compiler Development
Есть полиэральные модели.  COLAMO, Halide или Tiramisu Compiler, например. Но на низком уровне, всё равно, графы.
источник

PS

Peter Sovietov in Compiler Development
Давайте я сразу перейду к завершающей части дискуссии о сложности компилятора для подобных задач. Вы ведь знаете, чем обычно заканчивается? Правильно!
Нужно просто использовать эти новые мощные AI-чипы для проектирования новых мощных AI-чипов, а также для разработки компиляторов этих AI-чипов. Пусть крутится нейросетевой вариант place & route прямо на ускорителе! ;)
источник

AT

Alexander Tchitchigi... in Compiler Development
Интервьюер: — Как Вы можете прокомментировать что Apple купила новую модель Cray для проектирования следующего iMac?
Сеймур Крэй: — Забавно, я как раз на днях купил новый iMac для проектирования следующей модели Cray.
источник

PS

Peter Sovietov in Compiler Development
В каждой шутке... Xilinx уже использует нейросети в своем синтезаторе.
источник

ДК

Дикий Кот in Compiler Development
А смысл какой в этом? Есть нормальные алгоритмы place & route. Никто даже не сравнивает эффективность этих алгоритмов с нейросетями (на чём их, кстати, учат).
источник