Содержание
- 2. Краткое содержание этой серии Фокусы Оптимизация компилятором
- 3. Фокус №1 Создаю глобальный двухмерный массив Заполняю его случайными числами Вычисляю сумму всех элементов: sum +=
- 4. Фокус №1 А как лежит в памяти двумерный массив? uint8_t array[2][4] = { {1,2,3,4}, {5,6,7,8}}; Точно
- 6. Все дело в кэш-памяти Зачем нужен кэш? Чтобы ускорить доступ к часто используемым данным, т.к. оперативная
- 7. А как работает кэш? Кэш состоит из «линий» (cache lines) - при каждом обращении в память
- 8. Кэш Вывод? Последовательный доступ к памяти гораздо быстрее, чем случайный. С точки зрения железа самая быстрая
- 9. Кэш В современных процессорах есть: кэш данных (D-cache) кэш инструкций (I-cache) буфер ассоциативной трансляции (TLB) Как
- 10. Кэш в современном процессоре Intel Core i7-9xx: L1 cache: 64 KiB L2 cache: 256 KiB L3
- 11. Кэш в современном процессоре Время чтения из памяти для Core i7-9xx: L1 - 4 такта. L2
- 12. Кэш Допустим, что два ядра процессора обращаются к одной и той же переменной. Тогда соответствующий кусок
- 13. Кэш Допустим, что два ядра процессора обращаются к двум разным переменным, которые расположены в памяти рядом.
- 14. Фокус №1.5 Возьмем неудачный способ сложения элементов массива (по столбцам). Логично предположить, что чем больше массив
- 15. Ассоциативность кэша А как узнать, закэширована переменная или нет? Кэш прямого отображения - каждый адрес памяти
- 16. Частично ассоциативный кэш Например, 16-входовой частично ассоциативный кэш – линии кэша делятся на 16 групп. Каждая
- 17. Кэш для инструкций Линейный код (без переходов) выполняется быстрее Маленькие программы (которые целиком помещаются в кэш)
- 18. Выводы При оценке быстродействия алгоритма нужно помнить про кэш. Писать быстродействующие программы – это сложно. Тестировать
- 19. Фокус №2 Вариант А: Заполним одномерный массив случайными элементами. Много раз найдем сумму всех элементов больше
- 20. Предсказание переходов Ключевой момент: if (data[c] >= 128) sum += data[c]; Если массив отсортирован – то
- 21. Оптимизация Критерии оптимизации: по объему кода (бинарного файла) по скорости исполнения Иногда можно (и хочется) оптимизировать
- 23. Скачать презентацию


![Фокус №1 А как лежит в памяти двумерный массив? uint8_t array[2][4] =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/992668/slide-3.jpg)















![Предсказание переходов Ключевой момент: if (data[c] >= 128) sum += data[c]; Если](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/992668/slide-19.jpg)

Компьютерные сети. Глобальная сеть Интернет. Браузер (2)
Решение задачи О рюкзаке методом динамического программирования
Обзор типов защиты и приборов
Игра HELL HUNTERS
Матрицы. 10 класс
Процесс взаимодействия с IT
Методы массивов
Кровавая луна
Презентация на тему GPS - навигаторы
Java Basics. Lesson 5
Программирование на языке Python. Обработка массивов
Sample PowerPoint File
Решение задач на измерение количества информации
Программное обеспечение. Введение
Основы алгебры логики
DH Standard AVN Update
CISCO IOS. Internetwork Operating System
Хранение информации. Передача информации
Департамент по разработке решений в сфере закупок
Компьютерная грамотность. Курсы для начинающих
Техническое задание: D-Farma Спортивная фармакология
Python-I
Десятичная система счисления
9-1-1
Массовая оптимизация запросов PostgreSQL – explain.sbis.ru
Программное обеспечение
Моделирование Синтез логических схем
Умная игротека Partyum