Компания Intel опубликовала компилятор ISPC 1.24 (Implicit SPMD Program Compiler), обеспечивающий сборку кода на языке Си с расширениями для поддержи метода параллельного программирования SPMD (Single Program, Multiple Data), при котором несколько экземпляров одной программы выполняются параллельно с разными наборами входных данных. Код проекта написан на языке С++ и распространяется под лицензией BSD. Поддерживается работа в Linux, Windows, macOS, Linux и FreeBSD...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61253
Кто-нибудь знает, почему Intel не закоммитили этот код напрямую в Clang?
Проприетарщик же. Ещё спроси, почему mkl не опенсорс. Да-да, это та самая либа, которую искусственно замедляли на амд.
Можно пруфы? Очень интересно почитать
Да вроде известная история. Интелу хорошо напихали за это, когда всплыло.
https://www.agner.org/optimize/blog/read.php?i=49#49
А, ну как всегда, поехавшие инвестигаторы видят инопланетян во вспышках камеры. Тут ещё и чел, удивленный ранее во вранье, фул матч.
> Кто-нибудь знает, почему Intel не закоммитили этот код напрямую в Clang?И поддержки AMD GPU нет...
Видимо потому что это не clang, а самостоятельный компилятор.
Поддерживаю и вас - тоже так думаю и автора вопроса. Вопрос действительно хорош. Из компилятора С на самом деле можно сделать тоже самое что с движками браузеров с любимой американцами последующей монополизацией всего рынка.
Наглядный пример последствия рабской лицензии у LLVM
Эм... "Код проекта ... распространяется под лицензией BSD."
Шлангователям никто не мешает взять и затянуть его самим - лицензия позволяет.
Более того, гнутики могут заразить этот код, и затянуть в gcc.Но просто никому это не нужно. Это же не просто затянуть, это еще и поддерживать придется.
Ладно я поторопился и повёлся на комментарии, надо было заглянуть в гитхаб прежде.
> Ладно я поторопился и повёлся на комментарии, надо было заглянуть в гитхаб прежде.Учитывая что эта цитата предпоследнее предложение первого (!) абзаца новости...
то ты и новость так себе читал :)
Тестить лучше на Clear Linux ?
https://www.clearlinux.org
Это уже похоже на то, что на VLIW делается, но это же другое, да?
Конечно другое. Эт жео интел сказал что vliw мертв? А это просто оптимизация. Если оптимизировать под Intel, то код будет оптимальный. Если не под них, например amd, то код говно. Это уже вроде проходили.
Эль брус напрягся...
> Это уже похоже на то, что на VLIW делается, но это же другое, да?Все же несколько другое. Даже современные GPU ушли от VLIW в чистом виде. Ну вот неудобно оно ни компилеру ни человеку оказывается.
SIMD - в первом приближении можно считать частным случаем VLIW. Просто во VLIW можешь почти любые инструкции (операции) "соединять" в макроинструкцию, а в SIMD инструкция (операция) одна на все вычислительные блоки.
Т.е. в SIMD выбрал "сложить 4 пары 32-битных целых", то как бы всё... Во VLIW можешь первую и третью пару сложить, вторую пару перемножить, а четвёртую по XOR.
В реальности можешь влететь в ограничение - VLIW умеет умножать только на АЛУ/сопроцессоре №3 и умножение уже никак не параллелится.
Дополню ещё, а то главная проблема непонятна. Сложение допустим делается за 1 такт, умножение за 4, а деление за 11. И попалась инструкция с делением... в итоге будет или огромный простой, или надо как-то хитро формировать поток инструкций для каждого вычислительного блока отдельно. И тогда компилятор должен корректно прикинуть время завершения вычислений на каждом блоке.
Так ведь AVX-512 на Alder Lake и дальше сломали. Кому это теперь?
И зачем это всё!?Показали бы примеры, типа взяли собрали этим какойнить zlib, openjpeg или ещё чего и получили ускорение хотя бы сколько то.
> при котором несколько экземпляров одной программы выполняются параллельно с разными наборами входных данных.Не понял смысла!????
Может быть огрехи перевода?
Скорее речь про обработчики внутри традиционной программы, смысл в том, что части одной программы выполняются параллельно, обрабатывая разные порции данных. Но в ISPC и SPMD для этого используется термин программа - "number of program instances execute in parallel"
Чего только не придумают, лишь бы не переходить на zig.
Hare zig`овать, пора rust`и в сторону уменьшения carbon`ового следа.
Ты сам из carbon'а состоишь, хочешь уменьшить свой jai? Куда только odin смотрит!
В чем проблема ICC что им пришлось создавать новый компилятор? Напоминаю что у ICC есть отличные конкуренты - бесплатные GCC, Clang, AOCC, NVCC для которых раньше хорошие IDE существовали как правило в платной версии, ну и платный Visual C++ с его комьюнити версией. Чаще всего на галерах используется Visual C++ хотя-бы по причине наличия .NET с его упрощенными ЯП по сравнению с С/С++. И вот ICC был чаще всего более производительный, но не взлетел, потому что дорогой и комьюнити версии не было. А до комьюнити версии у VS была бесплатная версия через торренты, которую было проще устанавливать чем ICC. И вот по происшествии множества лет, когда большая часть рынка уже потеряна они выпускают новый компилятор Intel® Implicit SPMD Program Compiler. И по какой же причине люди должны им пользоваться? Такой причиной могут быть разве-что заказы связаны с этим компилятором. Привычки и современный подход HR, а я напомню что это не кадровики, а специалисты по человеческим ресурсам просто проигнорируют этот новый компилятор, если кому-то сверху не придёт в голову требовать исполнение именно на нём.
Я не написал что их рынок это фактически комьюнити, которые и используют компилятор. Только вот они как правило не платят - им это нужно для работы, а персонально не нужно, платят компании их нанимающие.
Занесут чемоданы денег куда надо и будут принудительно использовать разные конторы. Демонстрируя исключительно эффективность процессоров от Intel. Ведь эффективная оптимизация будет лишь под них, а для всех остальных будет в лучшем случае симуляция оптимизации, а то и откровенное вредительство. Покупайте процессоры Intel !)
Коммьюнити версия как таковой не было, но была доступная академическая версия студентов, правда, с рядом ограничений и с последующим закручиванием гаек. С ICC никакой проблемы нет, просто, как я понял, сейчас он называется Intel OneAPI. С рынком тоже просто: ты покупаешь кластер за вагоны золота, а лицензия на компилятор прилагается как салфетка в ресторане. Да, это 3--4 клиента, но с такими колоссальными деньгами, что окупает разработку.
ICC давно бесплатный. Intel Classic Compiler он сейчас называется. Компилирует жутко медленно, производительность программ, скомпилированных им, получается хуже, чем при использовании GCC и Clang, также он сильно отстаёт в реализации стандартов C++, возможности ассемблерных вставок значительно более ограничены, и есть у него разные глюки, в том числе связанные со встроенным ассемблером. Короче, преимуществ он не даёт никаких. Используйте лучше стандартные GCC и Clang и не травмируйте себе мозг. Ну и сама Intel забросила его в пользу компилятора на базе LLVM/Clang. Так что сейчас он представляет собой больше историческую ценность.
Эффективная оптимизация, естественно, только под процессоры Intel, а для остальных в лучшем случае симуляция или даже вредительство откровенное)
Предлагаете интелу за свои деньги оптимизировать все на свете? Эта оптимизация конкуретное преимущество которое они превращают в деньги.
Так Intel уже ловили на том, что для конкурентов они откровенным вредительством занимались под видом оптимизации
Ну если оно таки взлетит, то написать новые бэкенды думаю не будет большой проблемой