Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Winter Camp 2024 #5

Closed
dkurt opened this issue Jan 29, 2024 · 1 comment
Closed

Winter Camp 2024 #5

dkurt opened this issue Jan 29, 2024 · 1 comment

Comments

@dkurt
Copy link
Owner

dkurt commented Jan 29, 2024

Постановка задач для школы по оптимизации под RISC-V

  1. Скачать и распаковать необходимые инструменты (для Ubuntu 22.04):
    1.1 GCC: https://drive.google.com/uc?id=1U3JaUqWyRYvlhfA3lVEfwu56em-Gwonl
    1.2 Halide: https://drive.google.com/uc?id=1AoOtkFPF5yQkZIUJDvebk5unekgS0ACf

  2. Воспроизвести инструкции:
    2.1 Сгенерировать ассемблер файлы (шаги 3-4, остальное пропустить): https://github.com/dkurt/halide_riscv/blob/main/README.md#generate-aot-kernels
    2.2 Собрать проект для RISC-V и запустить тесты на точность/скорость: https://github.com/dkurt/halide_riscv/blob/main/README.md#build-and-go

    ❓ Если на каком-то из шагов по сборке проекта возникает проблема, сравните действия с тестовым скриптом: https://github.com/dkurt/halide_riscv/blob/main/.github/workflows/test.yaml

  3. На примере ядра BoxFilter отключить генерацию векторизованного кода и убедиться, что время исполнения увеличится. Запустить на RISC-V плате ./perf_algo --gtest_filter=*BoxFilter*

  4. Выбрать и реализовать один из алгоритмов (см. ниже описания задач). Алгоритм может состоять из комбинации разных Halide функций. Допустимо часть алгоритма реализовывать на C++ или использовать OpenCV. Результат должен быть добавлен в виде пулл реквеста в этот репозиторий. Оценка сложности (complexity label) только оценка, задача может оказаться сложнее или легче.

  5. Сперва, добиться корректной работы алгоритма на x86 архитектуре - так быстрее всего отладить ошибки. Затем, попробуйте скомпилировать под RISC-V, без планировщика.

  6. Применить планировщик с векторизацией для RISC-V, добиться ускорения относительно скалярного кода. Попробовать автопланировщик и сравнить с собственной версией. Добавить измерение скорости в таблицу https://github.com/dkurt/halide_riscv?tab=readme-ov-file#performance-results

@inffe
Copy link

inffe commented Feb 5, 2024

Распределение задач:

  1. Халабуда - задача 7
  2. Трофимов - задача 11
  3. Ерин - задача 9
  4. Пермяков - задача 10
  5. Клочко - задача 8

@dkurt dkurt closed this as completed Feb 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants