For five years Intel's Programming Systems Lab (PSL) has been collaborating with an external partner on a new functional programming language designed for productivity on many-core processors. While the language is not yet public, this talk outlines motivations behind the language and describes our experiences in implementing it using a variety of functional languages. The reference interpreter is written in Haskell and compiled with GHC while PSL's performance implementation is written in SML and compiled with Mlton. We have also generated Scheme code compiled with PLT Scheme as part of a prototyping effort.
At several points, the project has had several contributors that did not have a background in functional languages working on the compiler and on writing benchmarks. We describe their experiences working in SML and with functional languages in general.
Так вот. Если у кого есть какие-либо подробности, милости прошу отписаться в теме.
Re: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, Mr.Cat, Вы писали:
MC>Второго октября на cufp интел представит доклад о собственном ФЯ, нацеленном на параллельное программирование.
Очень интересно, как я понял они хотят сделать свой клон SML.
Жаль что не хотят допилить OCaml, как раз для них работа — оптимизатор и многопоточный рантайм.
Если к OCaml или Mlton прикрутить оптимизатор от Intel C++ вполне может получится отличный язык для числодробилок.
Re[2]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, FR, Вы писали: FR>Очень интересно, как я понял они хотят сделать свой клон SML.
А вот хз. Они, я так понял, пока только намекают, что компилятор написан на SML. С другой стороны, добрая половина аннотации посвящена SML и дизайну компилятора.
Re: Интел готовит свой ФЯ, реквестирую подробности
* At Intel they develop their own language, reFLect
* Functional and lazy
* Circuit modeling and BDDs are deeply integrated
* A fully reflective language
* An advanced overloading system
* An interpreter for that language
* At INRIA, we develop for them a compiler
* Based on the OCaml environment
* Sharing the back-end compilers (starting at lambda-code)
* Lifting the design a bit
Я был на этом докладе: о самом языке ему было запрещено говорить, речь шла о процессе разработки компилятора на SML (в общих чертах) и полученном опыте.
В конце он дал ссылку на статью с ISMM 2010 для тех, кто хочет узнать больше.
Re[2]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, D. Mon, Вы писали:
DM>А еще вот что можно найти в интернетах: DM>
DM> * At Intel they develop their own language, reFLect
DM> * Functional and lazy
DM> * Circuit modeling and BDDs are deeply integrated
DM> * A fully reflective language
DM> * An advanced overloading system
DM> * An interpreter for that language
DM> * At INRIA, we develop for them a compiler
DM> * Based on the OCaml environment
DM> * Sharing the back-end compilers (starting at lambda-code)
DM> * Lifting the design a bit
Здравствуйте, hardcase, Вы писали:
H>Подозреваю что появление этого языка связано с инициативой Интела встроить в свои процессоры Алтеровские ПЛИСки: Stellarton.
А можно для дремучих объяснить суть на пальцах. а то я как-то за базвордами не слежу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, hardcase, Вы писали:
H>>Подозреваю что появление этого языка связано с инициативой Интела встроить в свои процессоры Алтеровские ПЛИСки: Stellarton.
VD>А можно для дремучих объяснить суть на пальцах. а то я как-то за базвордами не слежу.
CPU отлично умеет выбирать ветви управления, GPU умеет неплохо считать однообразные формулы, а вот FPGA (ПЛИС — программируемая логическая интегральная схема) на вычислительных задачах способна порвать по всем статьям GPU: секрет в том, что ПЛИС вообще не тратит времени на выбор ветвей выполнения программы (полностью отсутствует какая либо динамика) и потому способна получать и перерабатывать данные с собственной частотой работы (~300МГц) — лишь бы поставщик успевал скармливать их ей.
Проблема в том, что сейчас программировать ПЛИС можно на специальных языках — VHDL, Verilog, Abel и подобных им, и задача эта достаточно сложная, так как по факту это разработка интегральной схемы ("процессора одной задачи") — а много ли среди программистов хороших схемотехников?
Если этот новый интеловский язык действительно позволяет удобно и быстро создавать эффективные схемные решения для альтеровских ПЛИСок, а главное интегрировать их с обычным кодом для CPU, то подобная связка Язык + Гибридный процессор может потеснить крупных игроков на рынке высокопроизводительных вычислений — AMD и NVidia. Но это все мои измышлизмы — даташита на процессор я пока не видел, как и языка.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, hardcase, Вы писали:
H>Если этот новый интеловский язык действительно позволяет удобно и быстро создавать эффективные схемные решения для альтеровских ПЛИСок
с таким же успехом можно создать backend для хаскела или с. nvidia почему-то новый ФЯ не изобретает
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, hardcase, Вы писали:
H>>Если этот новый интеловский язык действительно позволяет удобно и быстро создавать эффективные схемные решения для альтеровских ПЛИСок
BZ>с таким же успехом можно создать backend для хаскела или с. nvidia почему-то новый ФЯ не изобретает
1) NVidia не является производителем FPGA-решений, а GPU и CPU достаточно схожи по архитектуре
2) Слишком специфическое направление это — программирование ПЛИС. Для того чтобы получить вычислительный прорыв на ПЛИС необходимо учитывать КАЖДЫЙ такт и потому необходим язык, в котором эти такты можно "пощупать руками", т.н. "циклоаккуратный" язык (например как Handel C).
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, FR, Вы писали:
FR>Очень интересно, как я понял они хотят сделать свой клон SML. FR>Жаль что не хотят допилить OCaml, как раз для них работа — оптимизатор и многопоточный рантайм.
OCaml, насколько я понял, неисправим, из-за выбранного представления целых чисел и ссылок. Т.е. ни о какой серьезной оптимизации вычислений в этом языке не может идти и речи.
Re[3]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, hardcase, Вы писали:
H>Подозреваю что появление этого языка связано с инициативой Интела встроить в свои процессоры Алтеровские ПЛИСки: Stellarton.
А скорость перепрограммирования матрицы какая примерно? Т.е. как быть с разделением ресурсов и быстрым перепрограммированием, если нескольким потокам надо давать кванты времени?
Re[3]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, vdimas, Вы писали:
V>OCaml, насколько я понял, неисправим, из-за выбранного представления целых чисел и ссылок. Т.е. ни о какой серьезной оптимизации вычислений в этом языке не может идти и речи.
Ссылки вроде ничем ни мешают. С родными целыми да будет небольшое замедление, тут кстати хороший оптимизатор и его может свести практически
к нулю, с другими типами Int32 Int64 float и т. п. никакой разницы с SML не вижу.
Re[4]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, hardcase, Вы писали:
H>>Подозреваю что появление этого языка связано с инициативой Интела встроить в свои процессоры Алтеровские ПЛИСки: Stellarton.
V>А скорость перепрограммирования матрицы какая примерно? Т.е. как быть с разделением ресурсов и быстрым перепрограммированием, если нескольким потокам надо давать кванты времени?
Не могу знать-с как у Интела.
Я когда-то (года 4 назад) работал с Virtex-ами, в зависимости от размера схемы они шились от секунды до минуты. Было ли дольше — не помню, но дело это небыстрое.
Во всяком случае ПЛИС не слишком подходит на роль разделяемого ресурса. Если уж использовать такой кристалл, то нужно через него гигабайты данных прокачивать — иначе смысл теряется.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, FR, Вы писали:
V>>OCaml, насколько я понял, неисправим, из-за выбранного представления целых чисел и ссылок. Т.е. ни о какой серьезной оптимизации вычислений в этом языке не может идти и речи.
FR>С родными целыми да будет небольшое замедление, тут кстати хороший оптимизатор и его может свести практически FR>к нулю, с другими типами Int32 Int64 float и т. п. никакой разницы с SML не вижу.
Тогда это будет уже другой язык семейства ML. Да, нужен полный вывод типов и отсутствие рантайм-флагов.
Re[5]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, hardcase, Вы писали:
H>Проблема в том, что сейчас программировать ПЛИС можно на специальных языках — VHDL, Verilog, Abel и подобных им, и задача эта достаточно сложная, так как по факту это разработка интегральной схемы ("процессора одной задачи") — а много ли среди программистов хороших схемотехников?
Да ничего подобного!
Знания схемотехники при программировании на Verilog/VHDL практически не требуется. Там есть своя специфика, ужно уметь мыслить "многопоточно", уметь лепить конечные автоматы — это да. А так — ничего особо хитрого.
Существуют свободный проект System C и проприетарный Catapult C. По факту — это библиотеки на C++ для описания FPGA (ПЛИС) плюс компилятор, который преобразует код на C++ в "прошивку" для FPGA. Тоже, в общем, ничего хитрого.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[6]: Интел готовит свой ФЯ, реквестирую подробности
Если что — я 4 года плотно занимался FPGA дизайном, и особых сложностей ни разу не наблюдал. Применял TDD, кстати говоря, хотел написать статью про то, какие паттерны из GoF book применимы для FPGA, однако не приняли — софтовым журналам это не интересно ("ПЛИС — не наша тема"), в "железячных" журналах тоже особого интереса не проявили ("да кому это надо?")
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[7]: Интел готовит свой ФЯ, реквестирую подробности
Здравствуйте, slava_phirsov, Вы писали:
_> ... хотел написать статью про то, какие паттерны из GoF book применимы для FPGA, однако не приняли — софтовым журналам это не интересно ("ПЛИС — не наша тема"), в "железячных" журналах тоже особого интереса не проявили ("да кому это надо?") :beer:
А напишите её для rsdn.ru, наверняка найдутся зинтересующиеся этой темой. Мне самому любопытно будет почитать...
Re[8]: Интел готовит свой ФЯ, реквестирую подробности