Материалы по тегу: llvm

24.03.2020 [20:49], Владимир Фетисов

Релиз LLVM и Clang 10: поддержка новых CPU и масса других улучшений

Выпуск десятой версии LLVM затянулся почти на месяц. Однако сегодня, наконец, релиз LLVM 10.0.0 стал доступен вместе с подпроектами, такими как компилятор С/С++ Clang и компоновщик LLDB. Компилятор Clang 10 доступен с улучшенной поддержкой С++ 20 и другими улучшениями. 

Исходный можно на странице разработчиков в GitHub, а бинарные сборки станут доступны в ближайшее время.

LLVM 10 является наиболее актуальной на данный момент версией чрезвычайно популярного стека компиляторов с открытым исходным кодом, который охватывает многие архитектуры, устройства и операционные системы. В LLVM 10.0 появилось много новых функций, в том числе улучшенная поддержка архитектуры AMD Zen 2 и процессоров Intel Tiger Lake, проведена работа на AVX-512, добавлены опции для включения защиты от последних багов в CPU, включена поддержка процессоров ARM Neoverse N1 и E1, IBM z15, Octeon+ и ядер ARM Cortex-A65(AE). Кроме того, появились новые оптимизации для IBM POWER, RISC-V, ARMv8.1-M.

Использование многоуровневого промежуточного представления MLIR (Multi-Level Intermediate Representation) от Google, популярность которого с момента запуска в прошлом году существенно возросла, позволит ускорить оптимизацию ПО для машинного обучения, за счёт чего LLVM сможет стать важным элементом многих ИИ-систем. Кроме того, созданный разработчиками NVIDIA компилятор языка Fortran, известный под именем Flang, также стал частью проекта LLVM 10.

Не так давно стало известно о том, что Facebook планирует нанять новых разработчиков, специализирующихся на компиляторах, поскольку компания продолжает уделять внимание LLVM и его подпроектам, намереваясь также увеличить свой вклад в развитие языка программирования Swift на базе LLVM. Ведутся и другие перспективные разработки в рамках экосистемы LLVM — например, HPVM

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

Facebook активно вкладывается в LLVM

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

Это позволит, как ожидается, увеличить эффективность работы LLVM в целом.

А рост производительности позволит улучшить некоторые из фирменных разработок Facebook. К примеру, это оптимизатор BOLT, предназначенный для ускорения работы ELF-файлов под Linux на архитектурах процессоров x86-64 и AArch64. Оптимизатор ускоряет работу больших приложений и улучшает компоновку кода программы. BOLT использует LLVM, но также может работать с файлами, собранными с помощью GCC.

pixabay.com

pixabay.com

Надав Ротем (Nadav Rotem), директор команды разработчиков компиляторов для ИИ, который и поведал о планах компании, не уточнил, насколько крупные инвестиции планируются. Однако можно допустить, что речь идёт о серьёзных суммах. Напомним, что ранее сообщалось о включении в LLVM Google MLIR для ускорения работы с ИИ. Таким образом, LLVM становится ключевым элементом для многих ИИ-систем, потому интерес Facebook к этой тематике вполне понятен.

Отметим, что уже скоро ожидается релиз 10-й версии LLVM. Точной даты нет, но учитывая тот факт, что уже выпущен пятый релиз-кандидат, выход может состояться буквально на днях. 

Постоянный URL: http://servernews.ru/1006547
05.02.2020 [12:42], Алексей Степин

Codeplay обеспечила поддержку Intel oneAPI и Kronos SYCL для ускорителей NVIDIA

Компания Codeplay, работавшая над созданием открытой прослойки для запуска Intel oneAPI и Data Parallel C++ на графических процессорах NVIDIA, дополнила свой проект поддержкой Kronos SYCL.

SYCL — это бесплатная кроссплатформенная прослойка, позволяющая писать приложения для гетерогенных система, используя стандартный C++, что ускоряет и упрощает разработку таких приложений. Intel oneAPI, напомним, расширяет возможности SYCL.

Codeplay анонсировала экспериментальную поддержку SYCL для графических процессоров NVIDIA, причём без посредничества OpenCL. Вместо этого используется LLVM и бэк-энд NVPTX, работающий непосредственно с бинарными драйверами NVIDIA. По сути, используется CUDA, и проект носит соответствующее название, SYCL-for-CUDA.

Пример выбора устройства на SYCL

Пример выбора устройства на SYCL

С использованием этого проекта разработка программного обеспечения теперь может выглядеть следующим образом: для создания нужного приложения можно использовать Intel Data Parallel C++, либо, в случае уже имеющегося CUDA-приложения, портировать его «под SYCL». В последнем случае это позволяет запускать портированное приложение в средах без поддержки CUDA. Разработчики надеются, что Intel включит их наработки в массив кода компилятора Intel LLVM. Более подробную информацию можно найти в официальном блоге Codeplay.

Отдельно отметим рост популярности LLVM как основы для создания новых средств разработки для различных архитектур. На днях был представлен проект HPVM для параллельных гетерогенных вычислений, ранее Google представила MLIR для работы с ИИ-ускорителями, а этой весной в LLVM, наконец, появится официальная поддержка Fortran, что завершит перенос «большой тройки» HPC-языков в инфраструктуру компилятора. 

Постоянный URL: http://servernews.ru/1003005
02.02.2020 [21:53], Андрей Галадей

Представлен компилятор HPVM для параллельных гетерогенных вычислений

Университет Иллинойса и связанные с ним разработчики выпустили HPVM 0.5. Это, как следует из описания, компилятор для гетерогенных систем с параллельным вычислением, рассчитанный для работы, в том числе с графическими процессорами NVIDIA.

Компилятор базируется на LLVM и добавляет к нему несколько важных компонентов. Все исходники доступны на Gitlab университета.

Собственно говоря, HPVM (Heterogeneous Parallel Virtual Machine) — это новое, нейтральное к языку и аппаратному обеспечению промежуточное представление (IR) с собственным набором инструкций (ISA) и планировщиком. Как отмечается, предыдущие системы фокусировались только на одной из этих возможностей. 

Таким образом, HPVM стремится обеспечить эффективную генерацию и оптимизацию кода для гетерогенных систем одновременно с возможностью переносимости кода на другие системы. Самое интересное, что система разрабатывалась с 2018 года, но лишь на этой неделе была открыта в виде готового кода. 

Конечная цель проекта — дать возможность запуска кода без сложных модификаций на GPU, CPU, FPGA и иных ускорителях. Предварительные тесты показали сравнимую с вручную оптимизированным кодом на OpenCL для ускорителей NVIDIA и многоядерных CPU с AVX производительность — пока что поддерживаются только эти платформы. 

Постоянный URL: http://servernews.ru/1002802
18.12.2019 [15:00], Алексей Степин

Fortran-компилятор NVIDIA Flang вольётся в LLVM 10

Компилятор языка Fortran, созданный NVIDIA, и известный сейчас под именем Flang, был принят в семью проекта LLVM ещё весной этого года.

Сейчас же стало известно о том, что Flang окончательно попадёт в основное дерево LLVM с десятым релизом, который состоится в конце февраля 2020 года. Таким образом, LLVM получит качественную поддержку «большой тройки» HPC-языков: C, C++ и Fortran.

Как сообщают зарубежные источники, Flang, ранее известный под именем f18, станет частью LLVM вовремя — то есть, до момента заморозки, которая запланирована на середину января следующего года. Дебаты по поводу окончательного названия компилятора завершились, и имя Flang принято официально, по аналогии с Clang для языков C/C++/Objective-C.

Наличие Flang в составе LLVM позволит эффективно использовать весь массив накопленного ПО на Fortran

Наличие Flang в составе LLVM позволит эффективно использовать весь массив накопленного ПО на Fortran

17 декабря в рассылке LLVM-Dev была опубликована информация о том, что в настоящее время проект Flang готовится к присоединению к моно-репозиторию LLVM. При этом разработчики планируют сохранить всю историю версий Flang — она лишь будет приведена в соответствие со стандартами LLVM. В десятой ветви LLVM Flang будет присутствовать с самого начала, пока же его исходные коды доступны в репозитории flang-compiler/f18 на GitHub.

NVIDIA Flang быстрее GCC, но медленнее PGI

NVIDIA Flang быстрее реализации Fortran в GCC8, но медленнее PGI

Важность проекта Flang сложно недооценить: Fortran с самого начала стал очень популярным языком программирования в научных кругах и за долгие годы его существования был накоплен огромный массив программного обеспечения. Благодаря Flang его можно будет эффективно использовать на современном оборудовании, включая ускорение расчётов с помощью графических процессоров NVIDIA.

Постоянный URL: http://servernews.ru/1000014
21.10.2019 [19:08], Андрей Галадей

Улучшения LLVM Clang для AMD Zen 2 задерживаются

Ещё в феврале для компилятора LLVM Clang 9.0 была заявлена начальная поддержка AMD Zen 2. Однако в релиз они до сих пор не попали, в то время как ряд оптимизаций znver2 уже появились в GCC 9.2. 

Как ожидается, планировщик и другие изменения именно для Zen 2 будут добавлены уже в LLVM Clang 10.0, то есть в начале 2020 года. Для тех же, кому не хочется ждать, можно использовать AMD Optimizing C/C++ Compiler 2.0 (AOCC), который с августа поддерживает все те же возможности для znver2. 

phoronix.com

phoronix.com

Поддержка средств разработки — одна из областей, где AMD предстоит улучшить свою работу. Intel же традиционно начинает добавлять патчи для новых микроархитектур примерно за год до выхода самих чипов. Это позволяет гарантировать, что оптимизированная поддержка будет распространяться на выпущенные версии компиляторов и дистрибутивы Linux к моменту появления процессоров на рынке. 

В частности, поддержка процессоров Tiger Lake будет и в GCC 10, и в LLVM Clang 10. Об этом стало известно в конце лета, хотя сами чипы появятся только в первой половине 2020 года. К этому моменту будут готовы и финальные релизы обоих наборов компиляторов.  

Отметим, что процессоры на архитектуре Zen 2 уже несколько месяцев присутствуют на рынке и активно отбивают у Intel всё более крупную часть продаж. В ряде стран лидируют именно «красные» процессоры, причём это касается как настольных, так и серверных решений. 

Постоянный URL: http://servernews.ru/995958
11.09.2019 [09:17], Андрей Галадей

В LLVM включат Google MLIR для ускорения работы с ИИ

Компания Google уже не первый месяц разрабатывает MLIR — Многоуровненвое Промежуточное Представление (Multi-Level Intermediate Representation). Проект должен помочь портировать и оптимзировать ПО для машинного обучения. И теперь его добавляют в LLVM.

Разработкой MLIR занимается основатель LLVM Крис Латнер (Chris Latner), а потому слияние было лишь вопросом времени.

wikipedia.org

wikipedia.org

Заявлено, что проект поддерживает решения крупнейших компаний по разработке программного и аппаратного обеспечения: AMD, ARM, Cerebras, Graphcore, Habana, IBM, Intel, Mediatek, NVIDIA, Qualcomm Technologies, Inc, SambaNova Systems, Samsung, Xiaomi, Xilinx. 

При этом предполагается, что MLIR ускорит развитие машинного обучения и искусственного интеллекта, позволит обучать и исполнять модели на любом оборудовании, и делать это легче.

Напомним, что LLVM представляет проект инфраструктуры для создания компиляторов и сопутствующих утилит. Он включает ряд компиляторов языков для высокого уровня и способен создавать машинный код для множества архитектур.

Постоянный URL: http://servernews.ru/993866
13.08.2019 [09:57], Андрей Галадей

Компиляторы осваивают Zen 2 и AMD EPYC Rome

Команда разработчиков инструментов GNU выпустила GCC 9.2 — новейшую стабильную версию своего набора компиляторов. В этой сборке предложен ряд изменений и улучшений по сравнению с GCC 9.1, выпущенной в мае. В частности, это поддержка оптимизаций для архитектуры AMD Zen 2 (znver2), которая позволяет улучшить результаты работы.

logodownload.org

logodownload.org

При этом отметим, что GCC поддерживает десятки процессорных архитектур, в том числе довольно редкие. А также позволяет работать с целым рядом языков программирования, включая ключевую для серверного рынка «большую тройку»: C, C++ и Fortran.

Стабильная версия GCC 9.2 доступна на официальном сайте gcc.gnu.org. Новую версию под номером 10 планируется выпустить в период с апреля по май следующего года. 

Помимо этого, AMD выпустила оптимизирующий компилятор AOCC 2.0 (AMD Optimizing C/C++ Compiler), построенный на базе LLVM 8 и поддерживающий всю ту же «большую тройку» языков. Он включает в себя дополнительные улучшения для 17-го семейства «красных» процессоров на базе архитектур Zen, Zen+ и Zen 2 и доступен для 32- и 64-разрядных Linux-систем. В комплекте поставляется матбиблиотека AMDLibM. Поддерживаются процессоры AMD Ryzen и EPYC, в том числе «Эпики» 7002

Наработки из AOCC со временем должны попасть и в основную ветку LLVM. Отметим, что Intel в последнее время тоже неровно дышит к LLVM, добавляя поддержку оптимизаций для текущих и будущих решений.

Постоянный URL: http://servernews.ru/992307
16.12.2011 [10:03], SN Team

NVIDIA открыла исходный код компилятора CUDA

NVIDIA объявила о предоставлении исходного кода нового компилятора CUDA на базе системы LLVM исследователям и разработчикам программных инструментов, чтобы упростить добавление поддержки GPU в большее число языков программирования и обеспечить работу приложений CUDA на альтернативных процессорных архитектурах.

LLVM - это распространенная инфраструктура компилятора с открытым кодом, имеющая модульное строение, которая упрощает добавление поддержки новых языков программирования и процессорных архитектур. Она используется для разных задач программирования во многих ведущих компаниях, включая Adobe, Apple, Cray и Electronic Arts.

Появление альтернативных подходов к программированию гетерогенных параллельных систем для решения специфических задач и к созданию будущих моделей программирования ускорит внедрение экзафлопных вычислений. Открыв исходный код компилятора CUDA и формат внутреннего представления (IR), NVIDIA позволяет исследователям более гибко применять модель программирования CUDA к другим архитектурам, что способствует появлению более мощных вычислительных платформ следующего поколения.

Источник:

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