+7 (499) 220-12-34
ICQ234443   ICQ23433

Товаров: 0 шт.
На сумму: $0
Курс(нал.): 62.00
Курс(безнал.): 66.00
Продукция Rover
Ноутбуки Ноутбуки-распродажа Аксессуары для ноутбуков Комплектующие LCD мониторы LCD телевизоры MP3 плейеры Кпк, смартфоны Цифровые фотоаппараты Проекторы Плазменные панели
Информация
Выбери себе подарок Товары в кредит! Товары со скидкой Цветовые решения Trade-In Хиты продаж Новинки Обзоры
Ноутбуки
ACER - Ноутбуки ASUS - Ноутбуки Compaq Ноутбуки DELL Fujitsu-Siemens Geronimo - Ноутбуки LG -Нутбуки MSI Samsung Ноутбуки SONY - ноутбуки SONY - США Toshiba - Ноутбуки Ноутбуки BLISS Ноутбуки IRu Ноутбуки Maxselect
Периферия
LCD компьютеры Внешние устройства Кабели Компьютеры ПК-комплектующие Программы Расходники Серверы Сетевые устройства Сумки для ноутбуков






 
RoverMarket :: Все новости :: Проект по добавлению в GCC поддержки распараллеливания процесса компиляции

Проект по добавлению в GCC поддержки распараллеливания процесса компиляции

   
 

Проект по добавлению в GCC поддержки распараллеливания процесса компиляции

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

На начальном этапе реализован вынос в отдельные потоки выполнения межпроцедурных оптимизаций, которые циклично вызываются для каждой функции и хорошо поддаются распаралелливанию. Для тестирования подготовлена отдельная распараллеливающая ветка GCC, для задания числа потоков в которой предложен новый параметр »--param=num-threads=N». В отдельные потоки вынесены операции GIMPLE, отвечающие за независящие от оборудования оптимизации, оценивающие взаимодействие функций между собой.

После этого планируется реализовать распараллеливание внутрипроцедурных оптимизаций (IPA), применяемых к коду внутри функции, независимо от особенностей вызова. На следующем этапе в отдельные потоки также планируется вынести межпроцедурные RTL-оптимизации, учитывающие особенности аппаратной платформы. Ограничивающим звеном пока является сборщик мусора, в который добавлена глобальная блокировка, отключающая операции сборки мусора во время работы в многопоточном режиме (в будущем сборщик мусора будет адаптирован для многопоточного выполнения GCC).

Тесты на системе с CPU Intel Core i5–8250U с 4 физическими ядрами и 8 виртуальными (Hyperthreading) показали снижение времени выполнения оптимизаций Intra Procedural GIMPLE с 7 до 4 секунд при запуске 2 потоков и до 3 секунд при запуске 4 потоков, т.е. Для оценки изменения производительности подготовлен тестовый набор, осуществляющий сборку файла gimple-match.c, включающего более 100 тысяч строк кода и 1700 функций. Тесты также показали, что использование виртуальных ядер при Hyperthreading не приводит к росту производительности. достигнуто увеличение скорости рассматриваемого этапа сборки в 1.72 и 2.52 раза, соответственно.

Ориентировочно после распараллеливания RTL общее время сборки сократится в 1.61 раза. Общее время сборки сократилось приблизительно на 10%, но по прогнозам распараллеливаие RTL-оптимизаций позволит добиться более ощутимых результатов, так как данная стадия занимает при компиляции существенно больше времени. После этого еще на 5–10% можно будет сократить время сборки за счёт распараллеливания оптимизаций IPA.

num=51491 Источник: http://www.opennet.ru/opennews/art.shtml?

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

На начальном этапе реализован вынос в отдельные потоки выполнения межпроцедурных оптимизаций, которые циклично вызываются для каждой функции и хорошо поддаются распаралелливанию. Для тестирования подготовлена отдельная распараллеливающая ветка GCC, для задания числа потоков в которой предложен новый параметр »--param=num-threads=N». В отдельные потоки вынесены операции GIMPLE, отвечающие за независящие от оборудования оптимизации, оценивающие взаимодействие функций между собой.

После этого планируется реализовать распараллеливание внутрипроцедурных оптимизаций (IPA), применяемых к коду внутри функции, независимо от особенностей вызова. На следующем этапе в отдельные потоки также планируется вынести межпроцедурные RTL-оптимизации, учитывающие особенности аппаратной платформы. Ограничивающим звеном пока является сборщик мусора, в который добавлена глобальная блокировка, отключающая операции сборки мусора во время работы в многопоточном режиме (в будущем сборщик мусора будет адаптирован для многопоточного выполнения GCC).

Тесты на системе с CPU Intel Core i5–8250U с 4 физическими ядрами и 8 виртуальными (Hyperthreading) показали снижение времени выполнения оптимизаций Intra Procedural GIMPLE с 7 до 4 секунд при запуске 2 потоков и до 3 секунд при запуске 4 потоков, т.е. Для оценки изменения производительности подготовлен тестовый набор, осуществляющий сборку файла gimple-match.c, включающего более 100 тысяч строк кода и 1700 функций. Тесты также показали, что использование виртуальных ядер при Hyperthreading не приводит к росту производительности. достигнуто увеличение скорости рассматриваемого этапа сборки в 1.72 и 2.52 раза, соответственно.

Ориентировочно после распараллеливания RTL общее время сборки сократится в 1.61 раза. Общее время сборки сократилось приблизительно на 10%, но по прогнозам распараллеливаие RTL-оптимизаций позволит добиться более ощутимых результатов, так как данная стадия занимает при компиляции существенно больше времени. После этого еще на 5–10% можно будет сократить время сборки за счёт распараллеливания оптимизаций IPA.

num=51491 Источник: http://www.opennet.ru/opennews/art.shtml?


Дата публикации: 25.09.2019


Ещё новости


  13.01.2020  Apple зарегистрировала новый MacBook в России

Предполагается, что это может быть 13-дюймовый MacBook Pro с клавиатурой с ножничным механизмом. Номер модели — A2289. [MacRumors] Купертиновцы также зарегистрировали новые Apple TV с номерами A1625 ...

  12.01.2020  AMD считает сильной стороной RDNA соотношение цены и быстродействия

Кроме того, на открытии CES 2020 глава AMD Лиза Су (Lisa Su) дала понять, что готовится к анонсу флагманское решение серии Navi, которое по уровню быстродействия расположится выше Radeon RX 5700 XT. Н...

  08.10.2019  Хардкорные самоделки своими руками: ржавая мощь

И если так вышло, что под рукой у вас лишь куча покрытых ржавчиной деталей, пара старых шуруповертов и набор бытовой мелочевки — не беда! Как известно, настоящие DIY-щики всегда работают с тем, что им...

  15.01.2020  Никакого рекорда для Samsung Galaxy S20. Смартфоны получат перископную камеру с пятикратным зумом

Тогда говорилось, что камера будет с пятикратным оптическим зумом. О том, что смартфоны Samsung линейки Galaxy S20 (тогда источники называли их Galaxy S11) получат перископную камеру, заговорили, когд...

  11.01.2020  Авторы Call of Duty Modern Warfare решили в реальном времени информировать игроков о работе над обновлениями

Развить эту идею решили разработчики Call of Duty Modern Warfare (2019) из студии Infinity Ward. В современной игровой промышленности принято держать постоянный контакт со своей аудиторией: прислушива...



Все новости
 
 
© 2005-2015 RoverMarket - ноутбуки, КПК, проекторы