Size: a a a

Compiler Development

2020 February 03

M

MaxGraey in Compiler Development
MaxGraey
Это только если эта операция очень частая и полезда для достаточно широкого спектра платформ - в противном случае это overkill
Или как в случае с PS3. Платформа меняется и теперь это нафиг никому не нужно
источник

PS

Peter Sovietov in Compiler Development
MaxGraey
Вообще это задача ОС или драйверов, компилятор вообще в таких вещах никаким боком касать не должен
В массовых-бытовых решениях усилия разработчиков аппаратуры направлены на то, чтобы скрыть от программиста факт нерегулярности/распределенности/гетерогенности/... архитектуры. Отсюда — сложные планировщики и сложная иерархия памяти с поддержкой кэш-когерентности на всех уровнях. Но кое-где удобная для программиста модель разделяемой памяти слишком оказывается накладной, если нам нужны повышенная производительность/энергоэффективность. И здесь ни ОС, ни драйверы не помогут. На выбор: 1) ручное размещение программы и данных по множеству разнородных, слабосвязанных блоков, программирование DMA/маршрутизаторов и проч. или 2) использование компилятора. Между прочим, использование компилятора не подразумевает обязательно статического размещения/планирования. Это как раз высший пилотаж JIT — JIT для распараллеливания, включая (re-)place & (re-)route :)
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Вообще это задача ОС или драйверов, компилятор вообще в таких вещах никаким боком касать не должен
на PS3 не то чтобы была сильно большая ось или драйверы и оно все на PPU, на SPU каждый выкручивается сам как может
источник

BD

Berkus Decker in Compiler Development
спс!
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Это только если эта операция очень частая и полезда для достаточно широкого спектра платформ - в противном случае это overkill
платформа-то одна, заточка под нее была по простой причине - это рынок с деньгами.
источник

BD

Berkus Decker in Compiler Development
мелковат пейпер) лучше все таки GDC Vault video посмотреть
источник

KR

K R in Compiler Development
Berkus Decker
мелковат пейпер) лучше все таки GDC Vault video посмотреть
Это расширенный тезис на конференцию. Extended abstract.
источник

FO

FORTRAN ONE LOVE in Compiler Development
У Вас .tw еще работает? О_О Мы на .si перешли....
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
У Вас .tw еще работает? О_О Мы на .si перешли....
Да, пока работает. На sci hub вся западная наука держится :-)
источник

МБ

Михаил Бахтерев in Compiler Development
Evgenii Moiseenko
ладно, я был опрометчив, когда сказал что (\x -> x x) нигде не протайпчекается :)
но если не брать в счёт фокусы с Any, плюсы конечно неприятно удивили
А оно и не проверилось у них. Проверку прошло только ((\x -> x x) any)
источник

YS

Yuriy Syrovetskiy in Compiler Development
Михаил Бахтерев
А оно и не проверилось у них. Проверку прошло только ((\x -> x x) any)
неправда. если у выражения есть тип, то у любого подвыражения есть
источник

YS

Yuriy Syrovetskiy in Compiler Development
Михаил Бахтерев
А оно и не проверилось у них. Проверку прошло только ((\x -> x x) any)
у них — это у кого? речь шла про любой язык. допустимо было создать новый язык, в котором это тайпчекается. я решил более сложную задачу — тайпчекнул в существующем языке
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Нет. Какое программирование лучше - и какому, соответственно, учить физиков - решать программистам. Или физики уже решили, какая математика для них лучше? Изобрели и практикуют свою математику? Свои методы анализа численной устойчивости и т.п.? 😉
Вообще-то, наверное, 2/3 современной математики изобрели именно физики. Даже теорию категорий :) Математики часто потом всё это проробатывают до более точных формулировок и доказательств. Но отправной точкой часто служат именно физические формулировки. Так что, физики имеют привычку изобретать для себя всё сами :)
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
Вообще это задача ОС или драйверов, компилятор вообще в таких вещах никаким боком касать не должен
Почему? Какой-нибудь Halide хорошо под Cell код формирует.
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
Или как в случае с PS3. Платформа меняется и теперь это нафиг никому не нужно
Почему? Стоит вот в Лос-Аламосе суперкомпьютер Roadrunner с Cell-ами и считает ядерную физику. И, вроде как, нужно.
источник

МБ

Михаил Бахтерев in Compiler Development
Yuriy Syrovetskiy
неправда. если у выражения есть тип, то у любого подвыражения есть
В контексте рассматриваемого выражения. Это же не параметрический полиморфизм
источник

M

MaxGraey in Compiler Development
Михаил Бахтерев
Почему? Стоит вот в Лос-Аламосе суперкомпьютер Roadrunner с Cell-ами и считает ядерную физику. И, вроде как, нужно.
Там у них используется The Accelerated Library Framework (ALF) который как раз этим и занимается:
The ALF functionality includes:
-  Data transfer management
- Parallel task management
-  Double buffering
- Dynamic load balancing for data parallel tasks

И написан он на C++
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Там у них используется The Accelerated Library Framework (ALF) который как раз этим и занимается:
The ALF functionality includes:
-  Data transfer management
- Parallel task management
-  Double buffering
- Dynamic load balancing for data parallel tasks

И написан он на C++
ну сейчас компиляторы с параллелизацией/векторизацией чуть лучше справляются, чем когда целл вышел
источник

M

MaxGraey in Compiler Development
Berkus Decker
ну сейчас компиляторы с параллелизацией/векторизацией чуть лучше справляются, чем когда целл вышел
Не Всегда. Да и он сейчас у них используется. Думаю IBM как то виднее;)
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
Там у них используется The Accelerated Library Framework (ALF) который как раз этим и занимается:
The ALF functionality includes:
-  Data transfer management
- Parallel task management
-  Double buffering
- Dynamic load balancing for data parallel tasks

И написан он на C++
Ага. Только там адок вручную этим всем управлять. Тоже самое, что сказать: вот есть OpenCL, чтобы на GPU вычислениями управлять. Ну есть. И что? Там тоже адок. Поэтому все пользуют OpenACC для автоматизации.
источник