Публикации по теме 'compiler-optimization'


TVM: AI-компилятор для настройки AI
Источник: TVM: автоматизированный компилятор сквозной оптимизации для глубокого обучения Реализация: твм Я не автор, этот пост - всего лишь краткое изложение статьи. Для читателей, которые хоть немного разбирались в глубоком обучении и оптимизации компилятора. Введение Растущая потребность в использовании машинного обучения для самых разных аппаратных устройств ставит под сомнение существующие технологии компиляторов. Вкратце, разные ускорители имеют разные примитивы..

Расширение возможностей для оптимизации компилятора
Источник: документ CGO 2018 - Моделирование дублирования на основе доминирования (DBDS): дублирование кода для обеспечения оптимизации компилятора Я не автор, этот пост - всего лишь краткое изложение статьи. Для читателей, немного знакомых с системами компиляции . Введение Компиляторы выполняют множество расширенных оптимизаций для повышения качества сгенерированного машинного кода. Однако оптимизации, которые зависят от потока данных программы, часто ограничиваются слиянием..

Оптимизация компилятора: что должен знать каждый программист?
В мире разработки существует множество языков программирования, предлагающих такие конструкции, как функции, операторы, циклы и многое другое. С высококлассными конструкциями приходят высокая функциональность и удобство использования, но также снижается общая производительность. Для каждого программиста главная роль — написать высокооптимизированный код без ущерба для производительности. Ну, тогда в дело вступают компиляторы. Компиляторы используются в конце цикла разработки и, как..

Вопросы по теме 'compiler-optimization'

Как векторизовать с помощью gcc?
Компилятор gcc серии v4 может автоматически векторизовать циклы с помощью процессора SIMD на некоторых современных процессорах, таких как как чипы AMD Athlon или Intel Pentium/Core. Как это делается?
34959 просмотров

Тесты кода, сгенерированного разными версиями g++
Я работаю над системой выполнения для домена приложений, который очень чувствителен к производительности. Мы прилагаем большие усилия для обеспечения обратной совместимости со старыми версиями компилятора, в том числе избегаем недавно реализованных...
374 просмотров

Может ли оптимизация компилятора привести к ошибкам?
Сегодня у меня было обсуждение с моим другом, и мы несколько часов обсуждали «оптимизацию компилятора». Я защищал точку зрения, что иногда оптимизация компилятора может привести к ошибкам или, по крайней мере, к нежелательному поведению. Мой...
23497 просмотров

Оптимизация компилятора, вызывающая замедление производительности
У меня есть одна странная проблема. У меня есть следующий фрагмент кода: template<clss index, class policy> inline int CBase<index,policy>::func(const A& test_in, int* srcPtr ,int* dstPtr) { int width = test_in.width();...
1044 просмотров

Может ли соответствующий компилятор C# оптимизировать локальную (но неиспользуемую) переменную, если она является единственной надежной ссылкой на объект?
См. также следующие связанные ресурсы: Выполняет ли сборщик мусора .NET прогнозный анализ кода? (о переполнении стека) WP7: Когда сборщик мусора считает локальную переменную мусором (статья в блоге на MSDN) Другими...
2043 просмотров

Visual Studio 2008 не выравнивает переменные стека?
Я пытаюсь прочитать avi-файл в стандарте OpenCV 2.1, VS2008 уже 2 дня, но безуспешно. Я постоянно получаю это сообщение в консоли программы: Компилятор не выровнял переменные стека. Libavcodec был неправильно скомпилирован и может работать...
2827 просмотров

Развертывание оптимизации компилятора gcc
Мне интересно увидеть код, где gcc фактически оптимизировал код. Есть ли способ, которым я мог бы это сделать? Я прошел через несколько других подобных вопросов, я пробовал следовать нескольким вещам, -Wa,ahl=filename.lst :- эта опция...
442 просмотров
schedule 04.09.2022

В чем разница между параметрами компилятора / Ox и / O2?
Компилятор Microsoft C ++ ( cl.exe , входит в состав Visual Studio) предлагает несколько переключателей оптимизации . Разница между большинством из них кажется очевидной, но мне не ясно, в чем разница между /O2 (который оптимизирует код для...
24835 просмотров

Является ли объединение более эффективным, чем сдвиг в современных компиляторах?
Рассмотрим простой код: UINT64 result; UINT32 high, low; ... result = ((UINT64)high << 32) | (UINT64)low; Превращают ли современные компиляторы это в настоящий сдвиг ствола вверх или оптимизируют его до простой копии в нужное место?...
2089 просмотров

Могут ли разные уровни оптимизации привести к функционально разным кодам?
Мне любопытны свободы, которые компилятор имеет при оптимизации. Давайте ограничим этот вопрос GCC и C/C++ (любая версия, любой вариант стандарта): Можно ли написать код, который ведет себя по-разному в зависимости от того, с каким уровнем...
5214 просмотров
schedule 27.03.2023

Оптимизируют ли какие-либо компиляторы C или C++ макросы определения?
Допустим, у меня есть следующее на C или C++: #include <math.h> #define ROWS 15 #define COLS 16 #define COEFF 0.15 #define NODES (ROWS*COLS) #define A_CONSTANT (COEFF*(sqrt(NODES))) Затем я иду и использую NODES и A_CONSTANT...
4875 просмотров

Есть ли техническая причина, по которой C # не выдает хвост? Инструкция CIL?
Возможный дубликат: Почему нет. net / C # устранить хвостовую рекурсию? Возьмите следующий код C #: using System; namespace TailTest { class MainClass { public static void Main (string[] args) {...
1405 просмотров

Оптимизация компилятора, из-за которой программа работает медленнее
У меня есть следующий фрагмент кода, который я написал на C. Он довольно прост, поскольку он просто сдвигает биты x для каждого цикла for. int main() { int x = 1; for (int i = 0; i > -2; i++) { x >> 2; } } Теперь...
1260 просмотров
schedule 17.09.2022

Будет ли полезна возможность объявить функции Лиспа «чистыми»?
В последнее время я много читал о Haskell и о преимуществах, которые он извлекает, будучи чисто функциональный язык. (Я не заинтересован в обсуждении монад для Лиспа) Для меня имеет смысл (по крайней мере, логически) максимально изолировать...
939 просмотров

Неинициализированное предупреждение с оптимизатором GCC
Я реализовал дерево на C и теперь хочу определить набор деревьев-оболочек. У меня есть итератор для моего дерева в tree.h: typedef struct tree_iter_t { void *current; tree_t *tree; unsigned char info : 2; } tree_iter_t; и функция...
667 просмотров

Переключатель компилятора Visual Studio 2008 x64 / MP
У меня проблема с недавно установленным VisualStudio 2008 SP1 в системе Windows 7 SP1 x64. Я работаю над проектом под Clearcase, и решение содержит около 10 проектов. У каждого проекта есть дополнительный переключатель компилятора: «/ MP» для...
251 просмотров

g++ -O оптимизация
У меня есть следующий код: #include <iostream> int main() { int n = 100; long a = 0; int *x = new int[n]; for(int i = 0; i < n; ++i) for(int j = 0; j < n; ++j)...
1097 просмотров
schedule 25.08.2023

Укороченные операторы и хвостовая рекурсия
Скажем, у меня есть простая функция: int all_true(int* bools, int len) { if (len < 1) return TRUE; return *bools && all_true(bools+1, len-1); } Эту функцию можно переписать в более очевидном стиле хвостовой рекурсии...
529 просмотров

Компилятор Microsoft C ++: как отключить автоматическую векторизацию с помощью / O2?
Как отключить автоматическую векторизацию (SSE2) глобально или для определенного цикла for без возврата к / Od в MSVS 2010? Я пробовал все 3 возможных варианта для Enable Enhanced Instruction Set , включая "Не задано", но безрезультатно. P....
2199 просмотров

Почему создание класса final ускоряет процесс?
Возможный дубликат: Зачем определять класс как final улучшает производительность JVM? У меня есть следующий класс в моем проекте: public final class LinkNode { public int value; public LinkNode next; public LinkNode(int...
518 просмотров