Содержание
- 2. Задание Исследование и оптимизация кэша данных в зависимости от: Размера строки Степени ассоциативности Рабочая нагрузка –
- 3. Постановка эксперимента Задача: Нахождение оптимальных параметров кэша, при котором количество попаданий будет максимальным. Параметры эксперимента: Тип
- 4. Используемые средства Утилита pin 3.0; Библиотека pinatrace.so; Библиотека BLAS Ubuntu 16.04 x86_64 Intel Core i7-4690
- 5. Описание библиотеки pinatrace.so Данная библиотека предназначена для отслеживания адресов данных, с которыми происходит работа в процессе
- 6. Пример исходных данных 0x40001ee0: R 0xbfffe798 0x40001efd: W 0xbfffe7d4 0x40001f09: W 0xbfffe7d8 0x40001f20: W 0xbfffe864 0x40001f20:
- 7. Организация эксперимента Модификация библиотеки pinatrace.so; Формирование нагрузки; Запуск утилиты pin для моделирования работы кэша; Анализ результатов.
- 8. Формирование нагрузки Операции над матрицами размером 1000х1000 элементов с типом double. Матрицы организованы по столбцам. Библиотека
- 9. Модификация библиотеки pinatrace.so Помещение внутрь исходного кода библиотеки модели кэша данных; Вместо вывода адреса команды в
- 10. Модификация библиотеки pinatrace.so unsigned long num = *((unsigned long*)(&addr)) / line_size; unsigned int current_line = num
- 11. if (hit_pos > -1) { hit++; custom_cache[hit_pos][current_line].usage_counter = counter; } else { miss++; unsigned long min
- 12. for (unsigned int bank = 0; bank usage = custom_cache[bank][current_line].usage_counter; if (usage == min) { custom_cache[bank][current_line].addr
- 13. Результаты
- 14. Результаты $ time ../../../pin -t obj-intel64/pinatrace.so — ~/usedgemm time for C(1000,1000) = A(1000,1000) B(1000,1000) is 608.118
- 15. Обработка результатов
- 17. Скачать презентацию