Материалы по тегу: компиляторы

11.05.2022 [03:16], Андрей Галадей

В LLVM добавили поддержку будущих серверных Arm-процессоров Ampere

В апстрим LLVM Clang 15 добавлена поддержка грядущих серверных Arm-процессоров, которые разрабатывает компания Ampere Computing. Релиз очередной мажорной версии LLVM намечен на осень этого года, да и выход новых CPU тоже должен состояться в этом году.

Как отмечает Phoronix, новая архитектура пока обозначена как Ampere1 и соответствует Armv8.6-A с поддержкой FP16, MTE (Memory Tagging), Speculation Barrier (SB), (Speculative Store Bypass Safe (SSBS) и других особенностей. Аналогичные патчи были отправлены в GCC ещё в ноябре прошлого года, так что Ampere можно похвалить за своевременную подготовку средств разработки и отладки ПО для новых процессоров.

Отметим, что относительно указанного наименования Ampere1 (или Ampere-1 в случае GCC) нигде не уточняется, является ли это обозначение рабочим наименованием чипов (как прежде бывало со многими другими платформами), новым брендом или торговой маркой или чем-либо ещё. Будущие процессоры Ampere будут использоваться 5-нм ядра, известные сейчас под кодовым именем Syrin. Они должны получить не менее 128 ядер, поддержку DDR5 и PCIe 5.0.

Постоянный URL: http://servernews.ru/1065571
20.10.2021 [18:27], Андрей Галадей

IBM представила компиляторы Open XL для C/C++ и Fortran на базе LLVM

В феврале прошлого года IBM объявила о намерении задействовать открытую инфраструктуру LLVM в следующем поколении компиляторов XL. Обещание компания сдержала, и вслед за анонсом первых POWER10-решений объявила о выходе IBM Open XL C/C++ for AIX и IBM Open XL Fortran for AIX. Новинки, содержащие теперь слово Open в названии, сочетают наработки LLVM с лучшими, по мнению компании, в отрасли оптимизациями.

Компания ожидаемо заявила, что компиляторы отлично подходят для разработки как локальных приложений, так и решений для гибридного облака. Новинки позволяют полностью задействовать все преимущества архитектуры POWER10 благодаря оптимизированной кодогенерации, поддержке всех новых функций (включая ИИ) и наличию готовых библиотек. А использование LLVM позволило получить доступ к современным технологиям и инновациям — поддержке новых стандартов C/C++, готовым оптимизациям от разработчиков LLVM и совместимости с GCC.

Кроме того, ускорился и сам процесс компиляции, что позволит сократить цикл разработки и развёртывания критически важных для бизнеса приложений. Наконец, ещё одним плюсом IBM Open XL является гибкое лицензирование. Предлагаются как ежемесячные лицензии (расчёт идёт по числу vCPU), что важно при переходе в облако, так и традиционные варианты с оплатой за каждого пользователя.

Постоянный URL: http://servernews.ru/1051704
10.08.2021 [15:34], Андрей Галадей

Intel полностью перешла на стек компиляторов LLVM для C/C++ и готовит поддержку Fotran

Новые компиляторы Intel для C/C++ полностью используют стек LLVM вместо своих прежних проприетарных решений в рамках ICC. Об этом в блоге сообщил эксперт компании Джеймс Рейндерс (James Reinders). По его словам, последние компиляторы Intel C/C++, использующие LLVM, обеспечивают ускорение компиляции, лучшую оптимизацию, расширенную поддержку стандартов и поддержку разгрузки на GPU и FPGA, чем те, что использовались ранее.

Компания отмечает, что новый компилятор oneAPI DPC++/C++ Compiler 2021.3 (icx) на базе LLVM обеспечивает ускорение на 14 % при сборке, чем проприетарный. Также заявлено, что версия 2021.3 обеспечивает более высокую производительность, чем GCC 11.1 — речь идёт о превосходстве в среднем на 41 %. А производительность в задачах с плавающей запятой стала выше на 19 %. На текущие момент решение Intel поддерживает SYCL, C++20, OpenMP 5.1 (в том числе для GPU). Но инженеры всё ещё работают над переводом своего компилятора Fortran на LLVM.

Intel рекомендует использовать новый компилятор во всех новых проектах. Существующие системы должны перейти на него в текущем году, так как инструментарий ICC вскоре будет признан устаревшим. Рейндерс уточнил, что новый компилятор Intel на базе LLVM достиг паритета с классической версией ICC, а также предложил лучшую технологию оптимизации, чем имеющаяся. Компания на протяжении нескольких лет активно отправляла свои наработки в основные ветки и LLVM, и GCC.

Постоянный URL: http://servernews.ru/1046350
23.07.2021 [14:25], Андрей Галадей

Выпущен компилятор AMD AOCC 3.1, основанный на LLVM 12.0

На этой неделе компания AMD без лишнего шума опубликовала новую версию своего компилятора AMD Optimizing C/C++ Compiler 3.1 (AOCC), который перебрался на платфолрму LLVM/Clang 12. В этом релизе фокус сделан на различные исправления вне основного дерева, которые вносят оптимизации для семейства процессоров на базе ядер AMD Zen. Так, например, улучшения коснулись Flang для сборки Fortran-программ и поддержки OpenMP 4.5.

Тем не менее, в AOCC 3.1 основным изменением стала актуализация его кодовой базы и связанных подпроектов, а также подгонка их под LLVM 12.0. Таким образом, нынешняя AOCC поставляется с последней стабильной версией LLVM, а на смену ей придет версия LLVM 13.0, которая должна выйти в сентябре. Правда, не уточняется, попадут ли обновления из AOCC 3.1 в основную ветку LLVM. Иных изменений нет или, как минимум, они не заявлены в явном виде. Скачать компилятор можно здесь.

Постоянный URL: http://servernews.ru/1045005
05.07.2021 [15:37], Андрей Галадей

Intel Xeon Sapphire Rapids получат инструкции AVX-512 FP16

Разработчики из компании Intel готовят патчи для ПО с поддержкой будущих процессоров Xeon семейства Sapphire Rapids, которые, как теперь выяснилось, будут включать инструкции AVX-512 FP16. Соответствующая документация была выложена в публичный доступ в самом конце июня. А вслед за этим появились патчи для GCC и LLVM, на которые обратил внимание ресурс Phoronix.

Поддержка FP16-вычислений с помощью AVX-512 будет актуальна, в первую очередь, для приложений машинного обучения. При этом не следует путать их с BF16 (Bfloat16), которая появилась ещё в семействе Cooper Lake в прошлом году. Для GCC Intel подготовила набор из 62 патчей для поддержки всех новых функций AVX512 FP16, а также автоматической векторизации _Float16 и связаных задач. Для LLVM добавлены патчи, «знакомящие» Clang с новым форматом и инструкциями.

Судя по всему, полноценная поддержка появится только в GCC 12, то есть, как теперь понятно, ближе к релизу самих процессоров в первой половине 2022 года. И очередные релизы крупных дистрибутивов её не получат. Что касается Clang, то есть все шансы, что поддержка будет добавлена уже в LLVM 13 — релиз намечен на осень.

Постоянный URL: http://servernews.ru/1043516
21.06.2021 [14:32], Андрей Галадей

Codeplay создаст компилятор oneAPI DPC++ для экзафлопсных суперкомпьютеров на базе AMD и Intel

Аргоннская национальная лаборатория вместе с Ок-Риджской национальной лабораторией (ORNL) заключила с Codeplay Software контракт на реализацию компилятора oneAPI DPC++, расширения открытого стандарта SYCL для работы в составе высокопроизводительных гетерогенных вычислительных систем.

Компилятор планируется использовать для суперкомпьютеров экзафлопсного класса Aurora и Frontier на базе CPU и GPU Intel и AMD соответственно. Как отмечается, SYCL станет одной из основных моделей программирования для них, что позволит упростить разработку научных приложений, объединить кодовые базы и облегчить перенос ПО с одного суперкомпьютера на другой.

Ранее Codeplay и ряд научно-исследовательских центров начали работу над расширением компилятора SYCL и DC++ для NVIDIA A100, а теперь компания сосредоточится на поддержке ускорителей AMD, покрыв таким образом основные современные платформы. Отметим, что не только Codeplay занимается разработкой и расширением компиляторов для SYCL — есть различные реализации как от частных компаний, так и от научных институтов.

Постоянный URL: http://servernews.ru/1042430
08.06.2021 [23:44], Андрей Галадей

Платформа CacheQ позволит распараллелить код и запустить его на x86-64, ARM, RISC-V и FPGA

Компания CacheQ, основанная двумя бывшими руководителями Xilinx и группой инженеров, обещает совершить революцию в мире разработки ПО. CacheQ Compiler Collection позволит компилировать проекты так, чтобы они выполнялись намного быстрее за счёт распараллеливания процесса. А изюминка в том, что, по словам создателей, нет необходимости массового ручного переписывания кода и использования особых библиотеках или сложных API для параллелизации.

Это даёт разработчикам возможность заниматься бизнес-логикой приложения, не задумываясь о проблемах распараллеливания. Более того, количество потоков можно регулировать на стадии исполнения, а часть нагрузки при желании перенести на FPGA или SoC. При этом поддерживается сборка для архитектур x86-64, ARM (Apple M1) и RISC-V.

 semiwiki.com

semiwiki.com

Результаты впечатляют. На процессоре x86 с 12 ядрами прирост быстродействия в работе приложения составляет почти 500 % по сравнению с однопоточным выполнением и сборкой с помощью GCC. На процессоре M1 с восемью ядрами Arm — на 400 % быстрее традиционного «однопотока».

«Секрет» заключается в тщательной работе с циклами и особенно вложенными циклами. Исходный код анализируется и преобразуется фирменной системой qthreads в код на C++, который можно собрать любым компилятором, или в Verilog для последующей сборки для FPGA. Впрочем, CacheQ предлагает полный набор инструментов для разработки, отладки, профилирования, симуляция и оптимизации кода и работы с памятью.

Постоянный URL: http://servernews.ru/1041487
07.05.2021 [16:33], Андрей Галадей

Red Hat нанимает инженеров для развития LLVM

Компания Red Hat не только продолжает активно вкладываться в GCC и наборы инструментов GNU, но также наращивает команду разработчиков компилятора LLVM, сообщает Phoronix. Под её крылом трудится Том Стеллард (Tom Stellard) вместе с другими инженерами LLVM. Но теперь группу расширяют.

 developers.redhat.com

developers.redhat.com

Сообщается, что компания хочет нанять ещё минимум двух специалистов по LLVM. По словам Стелларда, планируется нанять главного инженера-программиста для разработки функций и решения других задач поддержки пользователей в подпроектах LLVM, а также в самом LLVM и Clang. Также требуется специалист в области компоновщиков для работы над BFD и LLD.

При этом пока неясно, как именно будет далее развиваться стек компиляторов в Red Hat. В частности, в Fedora 35 позволят собирать больше пакетов с помощью Clang, а не GCC.

Постоянный URL: http://servernews.ru/1039090
27.04.2021 [00:39], Андрей Галадей

В Fedora 35 может появиться больше пакетов, собранных с помощью LLVM

Релиз Fedora 34 должен выйти на этой неделе, но разработчики уже активно работают над Fedora 35, внося новые предложения. Так, например, сейчас в Fedora основным системным компилятором выступает GCC. Исключением может быть лишь тот случай, когда исходный проект поддерживает только LLVM/Clang. Однако в будущем возможен переход на LLVM там, где это целесообразно, в рамках всего дистрибутива.

В Red Hat предложили пересмотреть политику использования компиляторов для Fedora 35 — при создании пакета у сопровождающего его разработчика будет выбор между GCC и LLVM. При этом GCC останется в качестве системного компилятора по умолчанию, и большинство пакетов, вероятно, продолжат использовать именно его. Однако будет возможность собирать проекты и с помощью LLVM, причём даже те, которые официально поддерживают только GCC.

Среди пакетов, которые могут затронуть эти изменения, есть Firefox и некоторые другие. При этом пока что комитет по разработке и управлению Fedora ещё не оценил это изменение, потому решение пока что находится в «подвешенном» состоянии. Похожий подход используется в Intel Clear Linux, где для каждого конкретного пакета выбирается тот компилятор, который позволит получить лучшую производительность.

Постоянный URL: http://servernews.ru/1038222
15.04.2021 [13:35], Андрей Галадей

Выпущен LLVM 12.0 с поддержкой Alder Lake и Sapphire Rapids, а также с начальной поддержкой AMD Zen 3

Вчера вечером состоялся релиз обновления набора компиляторов LLVM 12, выход которого несколько задержался из-за ошибок. Главным нововведением стала поддержка грядущих процессоров Intel Alder Lake и Sapphire Rapids, а также базовая поддержка AMD Zen 3 и дальнейшее улучшение работы с POWER.

Помимо этого, продолжена работа над поддержкой C++ 20. Стек Clang 12 также получил улучшения для Windows на ARM64, оптимизации ядра OpenCL, поддержку инструкций AVXVNNI и других, а также ряд других улучшений. Из небольших изменений отмечается снижение потребления памяти.

Все исходники, как обычно, доступны на GitHub. Отметим, что в новой версии обещали появление более тонкой оптимизации собираемого кода с учётом наличия того или иного типового набора общих инструкций x86-64.

Постоянный URL: http://servernews.ru/1037426
Система Orphus