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

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
15.09.2019 [20:56], Андрей Галадей

Для NVIDIA Deep Learning Accelerator выпущен компилятор с открытыми исходниками

Два года назад компания NVIDIA представила NVDLA (NVIDIA Deep Learning Accelerator) — платформу для построения ускорителей нейронных сетей с открытыми исходниками на Verilog. 

А теперь «зелёные» добавили программный компонент, который также может похвастаться открытым исходным кодом.

edivaldobrito.com.br

edivaldobrito.com.br

Речь идёт о компиляторе для NVDLA, который предназначен для максимизации производительности и эффективности запуска нейронных сетей на данной аппаратной платформе. Теперь он тоже стал открытым, получив лицензию BSD 3-Clause. Все исходники доступны на GitHub.

Отметим, что подобный шаг не является новым для бизнеса. Уже не первый год различные IT-корпорации так или иначе переходят на open source. И в этом есть логика — сочетание работы сообщества с финансированием корпораций позволяет не только повысить безопасность ПО, но и улучшить его качество в целом.

Постоянный URL: http://servernews.ru/994060
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
09.09.2019 [12:39], Сергей Тверье

DARPA заинтересовалась развитием параллелизма в высокопроизводительных вычислениях

По мере того как закон Мура теряет свою актуальность, внедряются всё новые подходы к программированию с целью повышения эффективности использования оборудования при уменьшении затрат на написание кода. 

Управление перспективных исследовательских проектов Министерства обороны США DARPA запускает новый проект, направленный на максимизацию использования преимуществ массивно-параллельных архитектур с минимизацией необходимых трудозатрат.

Проект PAPPA (Performant Automation of Parallel Program Assembly — высокопроизводительная автоматизация создания параллельных программ) стремится разработать новые подходы к программированию, которые позволили бы исследователям и разработчикам приложений создавать эффективные программы для запуска на высокопараллельных и гетерогенных системах.

DARPA запускает новый проект нацеленный на развитие массово-параллельных архитектур и упрощения инструментов для работы с ними

DARPA запускает новый проект, нацеленный на развитие массово-параллельных архитектур и упрощения инструментов для работы с ними

PAPPA рассмотрит «компромиссы между производительностью программирования, универсальностью решений и масштабируемостью, чтобы позволить ученым без понимания нюансов параллельного программирования и аппаратных архитектур создавать высокоэффективные и легко портируемые программы».

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

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

Проект PAPPA должен упростить создание расспараллеленных приложений для сложных многоядерных и многопроцессорных архитектур

Проект PAPPA должен упростить создание расспараллеленных приложений для сложных многоядерных и многопроцессорных архитектур, в том числе для таких сложных задач, как моделирование физических процессов в реальном времени

PAPPA стремится повысить ставку, используя специфичные для предметной области инструменты, такие как PyTorch и TensorFlow. Теперь в рамках усилий DARPA должны появиться новые инструменты программирования, основанные на машинном обучении, которые помогут автоматизировать моделирование вычислительных систем. Автоматизация параллельного программирования также необходима для таких задач, как распределение ресурсов и управление памятью. 

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

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

Анонс программы PAPPA, запущенной DARPA во вторник (3 сентября), находится здесь. Предложения от представителей отрасли будут приниматься до 3 октября.

Постоянный URL: http://servernews.ru/993726
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
Система Orphus