Size: a a a

Compiler Development

2021 June 12

AT

Alexander Tchitchigi... in Compiler Development
Забыли, что в память GPU ещё нужно скопировать данные, а потом скопировать обратно. 😉
источник

AT

Alexander Tchitchigi... in Compiler Development
Ну и файлики-то читать-писать только с CPU можно.
источник

Miss Очепятка... in Compiler Development
Это в каком году было?  jmp и goto на видюхах есть, поэтому if работает общая память там не хуже обычного x86.  Да конвейр сбраываетя дольше поэтому такая вещь будет тормозить. Да и частота не сильно утупает. У некоторых 2٫4 Ггц  Зато у компилятора парсинг хорошо параллелится. Так что основная часть ускорится. Да и оптимизацию на уровне регистров и машинных команд тоже можно распараллелить.  
Проблема в другом такой код компилятора становится абсолютно не поддерживаем.  Поэтому этим никто заниматься не будет. А следовательно всё будет тормозить.
Хотя вон для VHDL делают траспиляторы на GPU и оно быстрее чем на СPU раз в 10. Но это пожалуй исключение.
источник

SD

Sergey D in Compiler Development
т.е. все-таки можно, но очень сложно?
источник

Miss Очепятка... in Compiler Development
Можно. Сложность оценить не представляется возможным так как никто и не пробовал. Буйных мало вот и нету вожаков. Думаю не намного cложнее чем под CPU, но алгоритмы будут кардинально другими.
источник

K

Kir in Compiler Development
> Зато у компилятора парсинг хорошо параллелится

Шта?
источник

SD

Sergey D in Compiler Development
я вот только https://github.com/Co-dfns/Co-dfns видел. Смотрел доклад автора, он там рассказывает, как в него никто не верил, но он вот смог, нашёл какие-то алгоритмы для деревьев, основанные на массивах, и с ними всё быстро и удобно получается. Но полноценно понять и проверить его я не могу
источник

DP

Dmitry Popov in Compiler Development
С гранулярностью в один файл. Берешь 100 файлов и парсишь их параллельно
источник

K

Kir in Compiler Development
Кхе)
источник

K

Kakadu in Compiler Development
Если вдруг вспомните что за доклад, скиньте, пожалуйста
источник

DP

Defragmented Panda in Compiler Development
https://news.ycombinator.com/item?id=13797797

тут ссылка сверху на ютуб
источник

SD

Sergey D in Compiler Development
Можно поискать на ютубе "aaron hsu". Там есть несколько видео с конференций. Какие-то конкретно про деревья
источник

B

Brenoritvrezorkre in Compiler Development
Так как у GPU отдельная память )
источник

П

Пух in Compiler Development
Там есть DMA
источник

AT

Alexander Tchitchigi... in Compiler Development
DMA к какой памяти?
источник
2021 June 13

KR

K R in Compiler Development
Кстати, про GPU. Перечитывал давеча IXBT, много думал... Вот там заголовок "Пока Intel добиралась до 56 ядер, AMD уже начала готовить 128-ядерные процессоры с полугигабайтом кеш-памяти. Это будут новые CPU Epyc".

Это же практически GPU по количеству потоков. Причём, заметьте, доступная почти каждому. Если раньше такие огромные машины стоили по 50к вечнозелёных, и стояли в очень деньговместительных банках, то AMD даёт надежду всем и каждому. По моему опыту общения со старыми SPARC/POWER, нормально нагрузить их, используя все ядра и разделяемую память, сильно этим ускорив выполнение задачи, может только Make. Для других языков требуется жуткая квалификация и силы.

Вопрос - что думает великая компиляторная мысль по этому поводу?
источник

VK

Vladimir Kazanov in Compiler Development
У вас какой-то специфичный опыт :-) Для нагрузки такого сервера требуется веб-сервер, или БД, или трассировщик лучей. Компиляторы, в общем-то, тут не при  чем, если  только речь не идет о каком-то нишевом языке
источник

Miss Очепятка... in Compiler Development
А чё тут думать. Паралелить надо по функциям. Разбиваешь вводной текст на функции и далее и парсинг и кодо-генерацию для отдельных функций делаешь на отдельных ядрах.
Про разбиение тут три алгоритма который быстрее.
Либо вначале выясняем границы комментарии и строки. Либо поле сразу разбиваем на лова и  поле помечаем те что в троки вошли.
Либо работаем по схеме 4:2.
источник

IP

Iaroslav Postovalov in Compiler Development
парсинг и итоговый кодген упираются в io обычно
источник

IP

Iaroslav Postovalov in Compiler Development
а вот семантика и оптимизации параллелятся очень фигово
источник