Использование инструментов Intel® для оптимизации программ
Аннотация: Краткий обзор возможных путей оптимизации при помощи программного обеспечения. Выявление критических участков кода, сбор информации о таких событиях как промахи кэширования, неправильное предсказание переходов. Оценка эффективности использования системных ресурсов. Общие рекомендации по использованию VTune в процессе оптимизации работы приложения.
Презентацию к лекции Вы можете скачать здесь.
Основные характеристики приложения, влияющие на его производительность
- Эффективность вычислений
- Эффективность работы с памятью
- Правильное предсказание переходов
- Эффективность использования векторных инструкций
- Эффективность параллелизации
- Уровень инструкционного параллелилизма
Под эффективностью вычислений подразумевается «не делать лишней работы», что достигается эффективным анализом потока данных . Избегать повторных сложных вычислений, протягивать и свертывать константы , удалять «мертвый код».
Профилировка приложения, использующего oneDNN с помощью инструментария Intel® vTune™ Profiler
Место и роль компилятора
Компилятор — транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд или на языке ассемблера.
Основная задача оптимизирующего компилятора – получение кода максимально эффективного для используемого вычислительного комплекса.
С точки зрения разработчика программа должна быть:
- Легко читаемой и модифицируемой
- Легко отлаживаемой
- Быстро исполняемой
- надежная унифицированная среда разработки
- возможность варьировать уровни отладки и быстродействия
- возможность получать высокоэффективный код для различных операционных систем и микропроцессорных архитектур.
Компилятор должен удовлетворить эти требования.
В настоящее время от компилятора требуется получение эффективного и высоконадежного кода. С точки зрения разработчика программа должна быть легко читаемой и модифицируемой. Для реализации этого требования в больших проектах необходима модульность , основная функциональность выносится в отдельные утилиты, используется объектно-ориентированное программирование и т.д.
Благодаря этому оптимизация программного кода – сложная и комплексная задача. Дополнительный уровень сложности возникает из-за обилия поддерживаемых архитектур и различных расширений. В результате оптимизирующий компилятор сложный программный комплекс, включающий в себя большое разнообразие оптимизирующих техник.
Оптимизирующий компилятор
Это программный комплекс, работа которого варьируется в зависимости от требований к результирующему коду.
Возникают следующие проблемы:
- Сложность доказательства допустимости тех или иных оптимизаций
- Сложность расчета выгодности оптимизаций
- Отсутствие во время компиляции представления о типичных входных данных
Для достижения хороших результатов требуется тесное сотрудничество с разработчиком
Эквализация всего звука Windows (VST эквалайзер для Windows)
Чтобы использовать умело средства компилятора, программист должен:
- иметь представления о архитектуре, на которой будет использоваться его программа
- ознакомиться с настройками компилятора
- ознакомиться с основными техниками улучшения производительности, которые использует компилятор
- ознакомиться с основными проблемами, вызывающими замедление работы программы
- знать примерные данные, с которыми будет работать программа
- уметь пользоваться инструментами для анализа производительности программы.
Компиляторы Intel
Для Windows компилятор может быть интегрирован в Microsoft Visual Studio
Главной целью корпорации является высокая производительность компиляторов
и совместимость с Microsoft Visual Studio на Windows и с gcc на Linux и Mac OS.
Некоторые полезные опции компилятора
- /Od (-O0 for Linux) – оптимизации отключены, дебаг-режим.
- /O2 (-O2 for linux) – оптимизации «по-умолчанию» .
- /O3 (-O3 for linux) – дополнительные оптимизации.
- /xO (-xO for Linux) – оптимизация под неинтеловскую архитектуру.
- /Qipo (- ipo ) — межпроцедурная оптимизация.
- /Qparallel (-parallel) – автопараллелизация.
- /Qopt-report (-opt-report)
- /Qopt-report-file
- /Qopt-report-phase
- /Qopt-report-help
- /Qopt-report- routine
Очень часто, чтобы сделать приложение быстрее, надо просто выбрать правильный компилятор и установить ему правильные опции.
Дополнительные инструменты оптимизации приложений
Существуют различные средства поиска неоптимальных участков кода в зависимости от типов решаемых задач и сред исполнения
Intel VTune™ Amplifier XE Performance Profiler
- предоставляет информацию о производительности программ
- подходит как для последовательных, так и для многопоточных приложений
- версии как для Windows, так и для Linux
- для Windows может интегрироваться в Visual Studio или работать отдельно с собственным GUI
- для Linux – только отдельно
- есть возможность использования из командной строки для удалённого сбора данных или регрессивного тестирования
Intel VTune – многофункциональный инструмент, предназначенный для анализа производительности приложения. Он позволяет получить полную информацию о том, как на самом деле работает ваша программа . Бывает, что даже опытный разработчик не всегда может верно оценить, на что тратятся основные вычислительные ресурсы и какие вычисления являются «узким местом», ограничивающим производительность всего приложения.
Intel VTune™ Amplifier XE Performance Profiler
Помогает проанализировать особенности алгоритма и определить фрагменты приложения, где оно может использовать доступные ресурсы более рационально.
Позволяет найти и определить следующее:
- функции, на вычисление которых тратится основное время (горячие функции)
- фрагменты кода, которые не используют процессор эффективно
- области, наиболее сильно нуждающиеся в оптимизации
- синхронизации, влияющие на производительность приложения
- фрагменты кода, создающие эффект бутылочного горлышка
Intel VTune особенно удобен тем, что для решения большинства своих задач он не требует пересборки программы. VTune – не статический анализатор, он собирает информацию о том, как работает интересующее приложение или вся система в реальных условиях, на реальных данных, «под нагрузкой». Желательно, что бы исследуемая программа была скомпилирована с сохранением отладочной информации.
В этом случае можно будет «провалиться» вплоть до исходного кода и получить детальную характеристику каждой строчки исполняемого кода. Какая именно информация будет собрана и насколько она будет подробной, зависит от режима работы Intel VTune и от настроек. Далее мы познакомимся и с возможными режимами работами и с настройками.
Отведённое нам время позволит это сделать лишь достаточно поверхностно, в виде ознакомления. Тем не менее основные моменты станут понятными, подробности вы всегда сможете узнать у самого VTune. VTune мощный и, вообще говоря, достаточно сложный инструмент. Точнее, с его помощью можно делать весьма сложные вещи, крайне трудно осуществимые без его помощи.
Тем не менее, пользоваться им не сложно. Это инструмент с долгой историей, с набором дочерних и параллельных проектов, которые, в том числе, активно используются и внутри компании. Помимо документации VTune содержит отличный контекстный help , который поможет вам разобраться. Так же есть документация, как я уже сказал, также форумы поддержки и базы знаний Intel, ну и Google спешит на помощь?
Почему здесь выделена Java ? Потому что с подобными языками есть проблема. А именно, исполняемого кода в явном виде не существует. Исполняемый код создаётся Just In Time Compiler ’ом прямо в памяти непосредственно во время работы приложения. Более того, со временем код может перекомпилироваться для получения лучшей производительности. Особенность VTune в том, что он умеет работать с такими вещами.
Шаги по использованию VTune
- Выбрать объект для анализа
- Скомпилировать
- Запустить анализ
- Интерпретировать результаты
- Улучшить приложение при помощи алгоритмов оптимизации
Источник: intuit.ru
VTune, что это за программа?
Это программа для видеокарт NVidia, обычное ПО, которое идет на диске с устройством. Я думаю вы все знаете, любое устройство купили — обязательно должна быть книжечки в коробке и диск (а то и не один).
Что самое интересное, что многие подобные программы (которые шли в коробке) имеют несерьезный дизайн, какой-то игрушечный (думаю что многие это замечали), и к сожалению эта программка не исключение. Хотя функции то не для новичков — изменение частоты видеопроцессора, памяти, а также регулировка вентилятора. Как я понимаю, то программа для старых видеокарт, в любом случае дизайн какой-то не современные и отдает 478-мым сокетом
Вот на этой картинке показаны датчики оборотов вентилятора и температуры:
Хотя отображение температуры GPU это все таки полезная информация. А вот тут вы можете регулировать частоту видеоядра, памяти, шейдерных блоков:
Когда изменили частоту, то можете нажать кнопку Test, чтобы убедится в стабильной работе видеокарты. Если все OK, то нажимаем на Save Mode Settings для сохранения настроек.
Вот такое окно откроется, если нажать на пункт Information:
В общем я думаю вам понятно что это за программа VTune — обычная программка, которая идет в комплекте с видеокартой, и в которой особого смысла нет, ибо разгонять видеокарту программой с игрушечным интерфейсом — ну как-то странно. Но программа имеет смысл на существование, так как все эти диски и инструкции нам тепло напоминают о том моменте, когда мы купили видеокарту
Но есть еще одна программа с таким же названием, вернее похожим, это Intel VTune Performance Analyzer — скажу сразу, что если вы обычный пользователь, то вам она вряд ли будет интересна. Ну подумайте сами, это программа для оценки производительности кода/программы, то есть это инструмент, который помогает оптимизировать разработчику программу. Intel VTune указывает, где программа работает медленнее, а где быстрее. В интернете пишут, мол программа для оценки производительности и все такое, ой, да это бред и все, этой программой пользуются в узком кругу, даже не каждый программист сможет в ней разобраться.
Источник: virtmachine.ru
Проекты Центра разработки Intel в России. Intel VTune
Очередная статья к 20-летию Центра разработки Intel в Нижнем Новгороде рассказывает об Intel VTune Profiler – далеко известном и высоко полезном средстве анализа производительности кода программного обеспечения. История VTune отражает все этапы развития Intel в России и даже чуть больше – ведь этот продукт старше нижегородского офиса. Сергей Папков, один из первых руководителей разработки продукта с российской стороны, рассказал нам обо всех перипетиях становления и развития VTune. Ну, и конечно, не забыли мы и о сегодняшнем дне проекта.
Рождение и первые шаги на российской земле
Итак, по отношению к нижегородскому офису Intel профилировщик производительности VTune является не родным ребенком, а приёмным. Но это – как раз тот случай, когда не важно, кто родил, а важно, кто воспитал и вырастил.
Установить происхождение названия VTune сейчас, за давностью лет, уже нереально, но самая правдоподобная версия — это “V”, означающее победу (victory) и tune, означающее не только «настройку», но и мелодию, гармонию. VTune зародился в американских лабораториях Intel в первой половине 90-х годов. Первоначально из всех средств анализа в нем был только самплинг (sampling).
Как известно, в процессорах x86 есть встроенный блок слежения за производительностью — Performance Monitoring Unit (PMU); с его помощью можно задать определенные счетчики микроархитектурных событий – выполненных процессором инструкций, промахов кэша, данных о предсказателе ветвлений и т.п. Далее, сопоставив эти снимаемые с PMU метрики с выполняемым кодом, можно получить данные о том, насколько эффективно работает конкретная программа, какие в ней есть «горячие точки» (hotspots). Таков был самый первый функционал VTune Performance Analyzer for Windows (как тогда назывался продукт). Как говорится, строго, сурово и ничего лишнего. Но зато многого не хватало.
Чудом сохранившаяся в Нижегородском офисе коробочная версия VTune 2.1, прямиком из 90-х. Японская локализованная версия, что еще интереснее
В ходе дальнейшего развития и выхода новых версий у профилировщика появился графический интерфейс, который со временем становился функциональнее и удобнее. Сначала участки программ визуализировались в отчёте VTune в виде таблицы названий функций, потом появился Source View, то есть отслеженные метрики можно было не просто ассоциировать с функцией, а найти участок кода этой функции, который является хот-спотом. Далее к процессу разработки продукта присоединилась израильская команда, занимавшаяся в том числе инструментацией (вставкой внешних анализирующих функций непосредственно в исходный код программы) и обработкой данных.
В результате к началу двухтысячных VTune представлял из себя полноценный коммерческий продукт, поддерживающий уже несколько языков: C++, Fortran и даже Java. С точки зрения представления собираемых данных VTune также имел средство графического представления последовательностей вызовов функций (Call Graph), а также инструмент визуализации программных счетчиков операционной системы (Counter Monitor), базировавшийся на утилите Windows PerfMon. К тому времени версия VTune уже достигла 4.х, а количество пользователей по всему миру трудно поддавалось подсчету.
Нижегородская команда NSTL за три месяца до присоединения к Intel, но уже работающая над VTune
Именно в этот момент в работу включилась российская команда разработчиков, первоначально в лаборатории NSTL, впоследствии ставшей основой нижегородского офиса Intel. С нашей стороны проект вела Юлия Федорова, ее команда изначально составляла человек 15, а через два года выросла в 2 раза.
Развитие и метаморфозы
8 апреля 2002 года вышел Intel VTune 6.0 для Windows – в эту версию вошли наработки, сделанные в Нижнем Новгороде: сильно обновлённый графический интерфейс, который, например, сделал Call Graph информативнее, а работу с ним удобнее, а также дополнительные средства анализа собираемой информации. Через несколько месяцев вышла первая версия для Linux, пока без графического интерфейса. В таком виде VTune выпускался еще лет 7-8 и стал незаменимым помощником для тех, кто бьется за каждую миллисекунду выполнения кода.
Нижегородские команды VTune и Intel Debugger во время визита коллег из США и Израиля
Примерно в 2004 году с появлением массовой многоядерности в процессорах, потребовавшей быстрого развития технологий параллельного программирования, от команды VTune отделились группы разработчиков, которые стали заниматься другими инструментами профилировки с говорящими названиями: Intel Thread Checker (Поиск ошибок в параллельных программах) и Intel Thread Profiler (Профилировщик производительности многопоточных программ).
У этих продуктов тоже была своя предыстория. В марте 2000 года Intel купила американскую компанию KAI (Kuck and Associates), созданную в далеком 1977 известным программистом и ученым Дэвидом Куком (David J. Kuck) – он до сих пор работает в Intel и имеет звание Intel Fellow. KAI разрабатывала два продукта: Assure и Guide View, на их основе были созданы Thread Checker и Thread Profiler.
Так продолжалось до 2006 года, когда в результате программы реорганизации Thread Profiler вошел в состав VTune, а Thread Checker вместе с Memory Checker образовали Intel Inspector. А в 2007 многочисленные и разнородные инструменты разработки объединили в один набор, названный Intel Parallel Studio. Его первая версия вышла в 2009 году. В ней VTune Performance Analyzer поменял своё полное название на Intel VTune Amplifier.
Одна из первых инженерных face-to-face встреч в Санта-Кларе, где детально обсуждали новый пользовательский интерфейс — тот самый, что увидел свет в апреле 2002
В процессе работы команда VTune активно экспериментировала с процессом разработки продукта. Например, в ранние годы схема выпуска VTune представляла собой классический «водопад», когда каждый релиз занимал много времени. В 2008-2009 году разработчики перешли на Agile. Конечно, с нынешней точки зрения и согласно последним научным достижениям, это был не совсем Agile, тем не менее, команда занималась оперативным планированием внедрения функционала – не через год или квартал. В таком режиме она работает уже более 10 лет – это одна из самых ранних реализаций Agile в Intel.
От вчера до завтра
В конце нулевых появилась идея переделать VTune полностью. Как это часто случается после долгих лет разработки, продукт стал громоздким, оброс «костылями» и невостребованным функционалом. Для нового воплощения даже придумали рабочее название – VTune New Architecture (VNA). Однако VNA еще находился на стадии внутренних прототипов, когда стартовал проект Parallel Studio, и переделки пришлось отложить, впрочем, буквально через несколько лет дело было доведено до конца, хотя уже несколько в ином виде.
Рабочий процесс Intel VTune
Вообще, задача измерения производительности имеет прямую аналогию с квантовой механикой – чем точнее мы хотим измерить производительность, тем большую погрешность (а значит и неопределенность) в полученные результаты мы вносим самим фактом измерения. Преодолеть это ограничение крайне непросто, но нижегородские инженеры Intel над этим работают, постоянно повышая объективную точность измерений.
В последние десятилетия резко возросло количество задач, связанных с высокопроизводительными вычислениями – high performance computing, HPC, в том числе, выполняемых на кластерах или в облачных инфраструктурах. Для таких сценариев в VTune предусмотрели «облегчённый» вариант работы, без установки всей оболочки. Через интерфейс командной строки можно собирать данные на узлах кластера, а с помощью специально реализованного на базе HTML легкого графического интерфейса – просматривать данные в браузере.
Команда VTune активно сотрудничает со многими научными учреждениями и промышленными предприятиями по всему миру, помогая исследователям и инженерам выжать максимум из имеющихся в их распоряжении вычислительных мощностей. Круг задач, решению которых помогает VTune, предельно широк: это построение атмосферных и геологических моделей, аэродинамика, генетика, молекулярная физика, промышленное моделирование, краш-тесты и так далее. Приведем только один пример подобного сотрудничества.
Intel VTune — функционал Source View
Компания, производящая авиационные двигатели, готовила к выпуску новую модель. Для начала производства модель должна пройти сертификацию, что, в свою очередь, порождает необходимость в испытаниях на прочность. Требуется проверить, что при отрыве одной или двух лопаток турбины гондола двигателя останется невредимой.
Каждое испытание стоит чрезвычайно дорого – десятки миллионов долларов, при этом не факт, что с первого раза все получится. Выход – построить математическую модель процесса, которая и была настроена и оптимизирована в том числе с помощью инструментов Intel. Результат – с первого раза получилось построить двигатель, который успешно прошел испытания.
Также, еще до эпохи бурного развития гетерогенных вычислений стало понятно, что профилировки исключительно CPU недостаточно для общего понимания производительности приложения – нужна информация обо всей системе. Именно поэтому в VTune появилась возможность получить данные обо всей платформе исполнения, а именно – о метриках GPU (производства Intel), пропускной способности сети, использовании памяти и диска (компонент Platform Analyzer). А с 2019 года компонент System Analyzer показывает эти данные почти в реальном времени.
Сегодняшний день
По состоянию на текущий момент Intel VTune является частью основного пакета инструментов разработчика ПО Intel oneAPI Toolkit, специализированного набора для создателей аппаратных и программных систем Intel System Bring-up Toolkit (доступен при заключении с Intel договора о конфиденциальности CNDA), кроме того, доступен к загрузке и отдельно – Intel VTune Profiler.
Серверная реализация Intel VTune
Использовать VTune можно как в его собственной графической оболочке (Windows, Linux, macOS), так и в командной строке, а также в интеграции с Microsoft Visual Studio и Eclipse.
VTune собирает данные с удаленных машин, работающих под управлением Windows, Linux (включая Wind River и Yocto), FreeBSD и Android; корректно работает и с виртуальными машинами; поддерживает профилировку кода, написанного не только на C/C++ и Fortran, но и на C#, OpenCL, Data Parallel C++, Python, Google Go, Java, ассемблере и всех возможных комбинациях этих языков.
VTune также показывает эффективность распараллеливания кода с помощью нативных потоков, OpenMP, Intel Threading Building Blocks, MPI.
В конце прошлого года вышла новая версия Intel VTune Profiler 2021, вобравшая в себя большое количество обновлений. Перечислим главные из них:
- Профилирование издержек выгрузки данных на GPU (GPU offload) для определения целесообразности перемещения данных.
- Поддержка профилировки приложений на новых дискретных графических картах Intel (Iris Xe MAX).
- В анализ GPU добавлена поддержка DPC++ и multi-GPU, метрик SIMD, сделана новая диаграмма использования памяти и упрощенный драйвер.
- Появился новый тип анализа производительности Performance Snapshot (Краткий Анализ), с которого очень удобно начинать анализ проблем с производительностью приложений.
- Новый тип анализа производительности Anomaly Detection (Обнаружение Аномалий), позволяющий разобраться с причинами отклонений в производительности в часто повторяющихся сходных участках кода – например, итерациях одного цикла
- В анализ FPGA добавлены новые метрики и их ассоциация с исходным кодом.
- Поддержка контейнеризации — LXC, Docker, Mesos, Singularity, причём, возможны варианты нахождения профилировщика и профилируемого приложения как в одном контейнере, так и «по разные стороны его границ».
- Дополнительные возможности исследования энергопотребления приложений на CPU и GPU.
Полезные ссылки (на английском):
- Загрузка VTune для Windows, Linux и macOS
- Поваренная Книга (Рецепты работы) Vtune
Источник: habr.com
Intel VTune Amplifier XE 2017
Intel VTune Amplifier XE — это передовое и надежное программное обеспечение для профилирования производительности, которое поможет вам лучше анализировать код. Утилита помогает вам сэкономить время и усилия и предоставляет подробные данные о вашем графическом процессоре, процессоре, памяти, потоках, FPU и многом другом. Точные данные позволят вам создать более оптимизированный код для ваших приложений.
Intel VTune Amplifier XE позволяет легко анализировать ваш код подробно. Программа помогает вам создавать приложения, которые можно масштабировать и использовать с несколькими процессорами и векторизовать их для эффективного использования нескольких FPU. Утилита предлагает богатый набор расширенных возможностей профилирования, упакованных под дружественный и чистый интерфейс. Кроме того, программа предлагает надежные инструменты, которые помогут вам настроить GPU и OpenCL.
Intel VTune Amplifier предлагает очень точную информацию о профилировании, а также включает инструменты, необходимые для анализа данных и их интерпретации.
Intel VTune Amplifier XE |
2017 |
Intel |
Intel VTune Amplifier XE |
Бесплатно попробовать (Shareware) |
6 |
2299 |
https://software.intel.com/en-us/intel-vtune-amplifier-xe-evaluation-options/ |
92.6MB |
Windows All |
— |
Похожие программы
BlueStacks App Player 4.60.3.1001
Виртуальная машина Android для вашего компьютера.
MAME 0.206
MAME — это аббревиатура для эмулятора машин с несколькими аркадами.
MSI Editor 3.4.1
Экономящий время редактор пакетов MSI.
PCSX2 1.4.0
Эмулятор Sony Playstation 2 для вашего ПК.
IDAutomation Java Barcode Package 9.11
Пакет инструментов, который поможет вам быстро и легко генерировать штрих-коды.
SiS AGP Driver 1.21
Драйвер для ускоренного графического порта SiS.
Intel HD Graphics Driver 15.36.18.4156
Графика нового поколения, встроенная в процессор для захватывающего визуального восприятия.
Источник: soft-gid.com
Программа vtune что это
это откудапосле чего тебе пришло?
вики говорит что это
ntel® VTune™ Performance Analyzer (анализатор производительности) — коммерческое приложение для анализа производительности программ для компьютеров на базе x86-процессоров, причем программа имеет как графический интерфейс пользователя, так и поддержку командной строки. Программа доступна для Linux и для Microsoft Windows. |
Регистрация: 15.02.2010
Сообщений: 15,050
Записей в блоге: 5
Репутация: 1143
у меня эта прога вместе с дровами от видюхи палит установилась))
там можно изменить скорость вращения вентилятора, смотреть температуру видюхи, изменять частоты
« Предыдущая тема | Следующая тема »
Источник: pchelpforum.ru