Практика 1. Сысоев А.В. Параллельное программирование на OpenMP
Запись трансляции: Cсылка
Практика 2. Волокитин В. Профилирование и бенчмаркинг
Презентация: Cсылка
Запись трансляции: Ссылка
Задание на практику: В папке расположен архив с исходным кодом HPC2019-1-baseline-git.zip. Нужно повторить действия из презентации.
Инструкции к практике:
Нужно установить Visual Studio 2017 или 2019, и oneAPI Base Toolkit (Classic Compiler, Vtune, Advisor) или Parallel Studio (Compiler, VTune и Advisor)
Практика 1. Тюрин Е. Использование оптимизирующих компиляторов
Инструкции к практике:
Requirements: VS 2019 Community Edition; Git (>= 1.7.10); ~80 GB free space (preferably on SSD).
If you’d like to follow along, it’s better to pre-build the compiler as it is a very time consuming process, especially on non-server desktops and laptops. I will be showing everything on Windows via Visual Studio, however you are free to choose your own tools and operating systems.
-
Install the latest CMake, via following URL: https://github.com/Kitware/CMake/releases/download/v3.19.3/cmake-3.19.3-win64-x64.msi
-
Clone the following Git repository: so that the local path to the repository has no spaces (!) git clone --config core.autocrlf=false --single-branch --branch release/11.x https://github.com/turinevgeny/llvm-project
-
If the local VS 2019 Community Edition main executable devenv.exe is not located at: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe change the corresponding path in the llvm-project/deploy.bat file so that it points to the local VS 2019 Community Edition devenv.exe executable.
-
a. If you’re not very comfortable with Visual Studio: Run CMD, change the directory to the local llvm-project folder checked out during step 2, and run the following batch file: deploy.bat This operation will take a lot of time - make sure that the batch file run is completed.
Make sure the following executables are built (llvm-project\llvm\build\Debug\bin) clang opt llvm-dis llvm-as
- b. If you feel like you are comfortable with Visual Studio and tools. You may attempt to build only the required executables (clang, opt, llvm-dis, llvm-as). This requires more actions, but is expected to be completed sooner than 4a. I haven’t tested this, but can’t imagine why it wouldn’t work (since if you’ve picked this option you should be able to fix any surprise issues). Open the solution file LLVM.sln (llvm-project\llvm\build), locate the aforementioned projects (clang is under “Clang executables”, opt, llvm-dis and llvm-as are under “Tools”), build them one by one.
Практика 2. Новожилов М. Инструкции SIMD. Векторизация кода с использованием возможностей компиляторов
Инструкции к практике:
- Скачайте и разархивируйте архив simd_practice.zip
- Соберите проект из архива, запустите
- Рассмотрите пример автовекторизованной функции threshold1 и функции threshold2, которую компилятор автовекторизовать не может
- Обоснуйте производительность функций medianBlur3x3Vintage и medianBlur3x3
- Сравните производительность функций accumulateSqr и accumulateSqrSSE, найдите причины разницы в производительности
Практика 1. Бакшаев А. Использование математических библиотек
Запись трансляции: Ссылка
Инструкция к практике:
-
Скомпилируйте файл mkl_dgemm.c и реализуйте умножение матриц в функции reference_dgemm
-
Разархивируйте архив matlibs_practice.zip
-
Соберите проекты из архива, изучите исходный код и сравните производительность различных оптимизаций кода
Практика 2. Волокитин В. Профилирование и бенчмаркинг
Презентация: Cсылка
Запись трансляции: Ссылка
Задание на практику: В папке расположен архив с исходным кодом EuroOptionBaselineCode.zip. Провести оптимизации проведенные в презентации самостоятельно, и попробовать придумать свои.
Практика 1. Куртаев Д. Оптимизация с использованием OpenCV
Подробное описание практики по оптимизации с использованием OpenCV и необходимые материалы расположены в репозитории https://github.com/dkurt/cv_winter_camp_2021
Практика 2. Замалиев Э. Обзор набора инструментов OpenVINO
Презентация: Cсылка
Подробное описание практики по обзору набора инструментов OpenVINO и необходимые материалы расположены в репозитории https://github.com/eizamaliev/openvino_master_class