Рубрика «Блог компании Intel» - 60

Чистый Контроль Версий

Вступление

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

При таком темпе чем-то еще заниматься очень сложно. Особенно когда в сжатые сроки нужно портироваться на OsX, придать «человеческий» вид версии под Ubuntu и одновременно проникнуть внутрь изоляции приложения Windows 8 Store. Опять было множество споров о внешнем виде и работе System Analyzer. Очень сложно сделать инструмент красивым, простым и легким и в то-же время очень полезным.

Читать полностью »

image
Один из методов улучшения эффективности распараллеливания алгоритмов определенного класса – конвейеризация фаз исполнения, как последовательных, так и параллельных. Библиотека Intel TBB может помочь сократить усилия и время, необходимые на реализацию конвейеризированных алгоритмов, беря на себя заботу об управлении задачами и распределении нагрузки между потоками в системе. Однако, формулирование и формирование задач, составляющих фазы алгоритма, может быть нетривиальной проблемой в зависимости от сложности алгоритма, что в реальных приложениях чаще всего и бывает. Контролировать выполнение задач может оказаться еще сложнее, если сам алгоритм не содержит средства для контроля. Инструментарий анализа вычислительных задач в Intel® VTune™ Amplifier помогает разработчикам представлять структуру исполнения в многопоточной среде в удобном графическом виде, увеличивая эффективность анализа и значительно сокращая время разработки приложений. В данной статье мы рассмотрим простой пример конвейеризированной задачи, и шаг за шагом распараллелим ее, используя конвейерный класс TBB, проанализируем с помощью VTune Amplifier и улучшим производительность реализации на основе результатов анализа.
Читать полностью »

System level optimization и её вклад в решение проблем энергопотребления
О том, как проблемы энергопотребления решаются на этапе проектирования микропроцессоров, рассказывалось в серии постов «Жизнь в эпоху «тёмного» кремния». Были освещены четыре основных подхода, однако существует ещё один подход, речь о котором пойдет в этот раз. Это оптимизация на системном уровне.
Читать полностью »

Жизнь в эпоху «тёмного» кремния. Часть 3

Другие части: Часть 1. Часть 2.

Данный пост является продолжением рассказа «Жизнь в эпоху «тёмного» кремния». В предыдущей части рассказ шел о использовании универсальной логики в темных областях кремния. В этот раз рассмотрим использование специализированной логики.
Читать полностью »

Балансируя между точностью и производительностью
Есть несколько важных аспектов, которые нужно обязательно учитывать при создании приложения, производящего какие-либо вычисления, а точнее — операции с числами с плавающей точкой. Что мы ждём и планируем получить от таких приложений (в большинстве случаев, научных)? В первую очередь, нас интересует точность вычислений – полученный результат должен быть наиболее близок к «правильному». Другая сторона медали – стабильность результатов и портируемость приложения. Нам важно иметь возможность получать одинаковый, неизменно повторяющийся от запуска к запуску результат, причём на разных машинах/архитектурах. Ну и последний, но не менее значимый пункт – производительность. Насколько быстро при всём этом будет выполняться наше приложение, и когда мы получим результаты наших вычислений?

В компиляторе компании Intel есть набор опций, отвечающих за контроль оптимизаций вычислений над числами с плавающей точкой. Рассмотрим преинтереснейший ключик –fp-model, который, судя по описанию в документации, управляет семантикой вычислений над числами с плавающей точкой. Кстати, стоит отметить, что похожие ключи есть и в других компиляторах, не только Интеловском, об этом мы тоже поговорим. По сути, с помощью данного ключика мы и сможем контролировать баланс между производительностью и точностью вычислений. Возможные значения, которые могут быть указаны в опции –fp-model: precise, fast[=1|2], strict, source, [no-]except (Linux*) or except[-] (Windows*). Давайте разберёмся, что они дают при компиляции нашего кода.
Читать полностью »

image

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

Читать полностью »

Жизнь в эпоху «тёмного» кремния. Часть 2
Предыдущая часть: Часть 1.

Данный пост — продолжение рассказа «Жизнь в эпоху «тёмного» кремния». В предыдущей части рассказывалось о том, что такое «тёмный» кремний и почему он появился. Также рассматривались два из четырех основных подходов, позволяющих микроэлектронике процветать в эпоху «темного» кремния. Было рассказано о роли новых открытий в области технологии производства, о том, как повысить энергоэффективность за счет параллелизма, а также, почему уменьшение площади процессорного кристалла, видится маловероятным. В этот раз на повестке дня следующий подход.
Читать полностью »

image

В статье я хотел бы дать краткое описание работы технологии Renderscript внутри Android, сравнить ее производительность с Dalvik на конкретном примере аndroid-устройства с процессором Intel и рассмотреть небольшой прием оптимизации renderscript.
Renderscript – это API, который включает функции для 2D/3D рендеринга и математических вычислений с высокой производительностью. Он позволяет описать какую-либо задачу с однотипными независимыми вычислениями над большим объемом данных и разбить ее на однородные подзадачи, которые могут быть выполнены быстро и параллельно на многоядерных Android-платформах.
Такая технология может повысить производительность ряда dalvik приложений, связанных с обработкой изображений, распознаванием образов, физическим моделированием, клеточно-автоматной моделью и др., которые, в свою очередь, не потеряют аппаратной независимости.
Читать полностью »

      Распространено мнение, что GCC отстает по производительности от других компиляторов. В этой статье мы постараемся разобраться, какие базовые оптимизации GCC компилятора стоит применить для достижения приемлемой производительности.

Читать полностью »

All in One PC: один за всех
Настольные ПК по меркам быстро меняющегося цифрового мира принадлежат к разряду динозавров: со времени своего появления в середине 80-х они не претерпели каких-либо принципиальных изменений. Подобная замшелость вызывает в отрасли определенное беспокойство, ведь необходимо сделать ставку на правильный тренд, верный вектор движения – когда оно начнется. Ну или, в идеале, создать этот вектор самим, определив, каким должен быть современный персональный компьютер. Одним из возможных и, по мнению Intel, весьма перспективных вариантов, активно продвигаемых уже сейчас, является AIO – All-in-One PC. О нем и пойдет речь в данном посте.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js