Skip to content

feat: add Egor Makukhin’s report on styding practice and images of graphics - #15

Open
ioughy wants to merge 12 commits into
gsvgit:mainfrom
ioughy:main
Open

feat: add Egor Makukhin’s report on styding practice and images of graphics#15
ioughy wants to merge 12 commits into
gsvgit:mainfrom
ioughy:main

Conversation

@ioughy

@ioughy ioughy commented Jun 7, 2026

Copy link
Copy Markdown

-Added my initial version of report
-Added all the PNG's with graphics

@ioughy
ioughy force-pushed the main branch 3 times, most recently from d616b64 to cb49dc9 Compare June 8, 2026 17:45
@ioughy ioughy changed the title feat: add report on styding practice and images of graphics feat: add Egor Makukhin’s report on styding practice and images of graphics Jun 11, 2026
Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

\textbf{Целью работы является} освоение стека FPGA-симуляции проекта Vortex, проведение параметрического синтеза конфигураций и оценка эффективности масштабирования вычислительных ядер и кэш-иерархии с точки зрения производительности и потребления ресурсов ПЛИС.

Результаты работы необходимы для понимания архитектурных узких мест (bottlenecks) архитектуры Vortex при решении memory-bound задач. Для конечных пользователей (разработчиков FPGA-ускорителей и исследователей архитектур) это полезно тем, что позволяет избежать неэффективного расходования ресурсов кремния (LUT, BRAM) при конфигурации GPU под потоковую обработку данных. В выполнении работы заинтересована лаборатория/кафедра для формирования рекомендаций по настройке экземпляров Vortex под различные классы задач.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"расходования ресурсов кремния (LUT, BRAM) при конфигурации GPU под потоковую обработку данных" Великолепно всё.

  1. до кремния Vortex-у ещё далеко
  2. Вот прям уже потоковая обработка данных исследуется?

@ioughy ioughy Jun 14, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Заменил эти утверждения.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

\section{Описание предлагаемого решения}

Для достижения цели был предложен подход, основанный на автоматизированном прогоночном тестировании RTL-модели Vortex с последующим сбором метрик производительности и аналитической оценкой ресурсов ПЛИС. Идея решения заключается в варьировании двух главных архитектурных осей --- количества ядер и размера кэш-иерархии --- на двух классах задач: \enquote{memory-bound} (векторное сложение, \texttt{vecadd}) и \enquote{compute-bound} (умножение матриц, \texttt{sgemm}). В отличие от реальных ПЛИС или высокоуровневых симуляторов, использование RTL-симулятора обеспечивает цикл-точную достоверность результатов без затрат на FPGA-синтез и аппаратное развертывание.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Неразрывный продел перед тире (~---)
  2. Правда ли, что векторное сложение memory-bound?
  3. Правда ли, что умножение именно compute-bound?
  4. Она потактово точная
  5. Так-то конфигурация одного ядра критически важна. Какую Вы взяли?

@ioughy ioughy Jun 14, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Все тире были заменены, формулировки про ...-bound заменил, про точность поменял (переехало чуть дальше), конфигурацию уточнил.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

Для достижения цели был предложен подход, основанный на автоматизированном прогоночном тестировании RTL-модели Vortex с последующим сбором метрик производительности и аналитической оценкой ресурсов ПЛИС. Идея решения заключается в варьировании двух главных архитектурных осей --- количества ядер и размера кэш-иерархии --- на двух классах задач: \enquote{memory-bound} (векторное сложение, \texttt{vecadd}) и \enquote{compute-bound} (умножение матриц, \texttt{sgemm}). В отличие от реальных ПЛИС или высокоуровневых симуляторов, использование RTL-симулятора обеспечивает цикл-точную достоверность результатов без затрат на FPGA-синтез и аппаратное развертывание.

Реализация решения осуществлялась с использованием RTL-симулятора \texttt{simx} из состава Vortex, скриптов сборки Bash, языка Python для парсинга логов и визуализации данных (pandas, matplotlib), а также аналитической модели оценки ресурсов ПЛИС Xilinx (расчет использования блочной памяти BRAM на основе объемов кэшей L1/L2/L3). Для обеспечения воспроизводимости результатов был разработан пайплайн автоматизации, позволяющий запускать серию экспериментов одной командой.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Если что, simx не потактово точный.
  2. парсинг --- жаргон

@ioughy ioughy Jun 14, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Уточнил про simx, парсинг здесь и далее убрал.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

Экспериментальное исследование проводилось в три этапа: Strong Scaling (фиксированный объем данных, рост ядер), Cache Scaling (фиксированное число ядер, рост кэша) и Weak Scaling (пропорциональный рост данных и ядер).

Ввиду детерминированности RTL-симуляции (отсутствие системных прерываний и аппаратных задержек, присущих физическому железу), статистическая погрешность замеров отсутствует: математическое ожидание времени выполнения равно результату единичного замера, среднеквадратичное отклонение (СКО) равно нулю. Для оценки ресурсов ПЛИС применялась аналитическая модель: 1 блок BRAM = 4 КБ.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ууу.... А Вы прям время замеряли?

@ioughy ioughy Jun 14, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поменял неудачную формулировку. Указал, что метрикой производительности является «количество тактов симулятора», а не физическое время.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated
Ввиду детерминированности RTL-симуляции (отсутствие системных прерываний и аппаратных задержек, присущих физическому железу), статистическая погрешность замеров отсутствует: математическое ожидание времени выполнения равно результату единичного замера, среднеквадратичное отклонение (СКО) равно нулю. Для оценки ресурсов ПЛИС применялась аналитическая модель: 1 блок BRAM = 4 КБ.

\textbf{Результаты Strong Scaling:}
Увеличение числа ядер с 1 до 4 на потоковой задаче \texttt{vecadd} (16K элементов) дало ускорение всего 1.05x. IPC каждого ядра упало с 0.79 до 0.21. Как видно на Рисунке 1, реальное ускорение далеко от идеального --- это классический эффект \enquote{Стены памяти}, при котором ядра простаивают в ожидании данных из RAM.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Что такое "потоковая задача"?

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вообще, то, что Вы наблюдаете можнт быть связано банально с плохой онфигурацией одного ядра. Причём, как на уровне желеха, так и софта. Почитайте про размер рабочей группы, например.

@ioughy ioughy Jun 14, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Заменил термин "потоковая задача" в тексте.
  2. Учёл. Добавил раздел "Угрозы нарушения корректности", указал в Strong Scalling, что могли влиять параметры запуска, уточнил конфигурацию ядра.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

\begin{itemize}
\item Освоен стек RTL-симуляции и сборки проекта Vortex GPGPU.
\item Разработан автоматизированный пайплайн (Bash + Python) для проведения параметрических экспериментов, парсинга логов и визуализации результатов, обеспечивающий полную воспроизводимость исследования.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Парсинг

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated
\begin{itemize}
\item Освоен стек RTL-симуляции и сборки проекта Vortex GPGPU.
\item Разработан автоматизированный пайплайн (Bash + Python) для проведения параметрических экспериментов, парсинга логов и визуализации результатов, обеспечивающий полную воспроизводимость исследования.
\item Экспериментально доказано наличие \enquote{Стены памяти} в архитектуре Vortex: масштабирование вычислительных ядер эффективно для compute-bound задач (\texttt{sgemm}, ускорение 1.51x на 4 ядрах), но упирается в пропускную способность памяти для потоковых задач (\texttt{vecadd}, ускорение всего 1.05x на 4 ядрах).

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ммм.. Нет. Вы пронаблюдали какой-то странный эффект при криво поставленном эксперименте.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Категоричное утверждение «Экспериментально доказано наличие "Стены памяти"» удалил. Заменил формулировки на сильно более осторожные + добавил раздел "Угрозы нарушения корректности".

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated
\item Освоен стек RTL-симуляции и сборки проекта Vortex GPGPU.
\item Разработан автоматизированный пайплайн (Bash + Python) для проведения параметрических экспериментов, парсинга логов и визуализации результатов, обеспечивающий полную воспроизводимость исследования.
\item Экспериментально доказано наличие \enquote{Стены памяти} в архитектуре Vortex: масштабирование вычислительных ядер эффективно для compute-bound задач (\texttt{sgemm}, ускорение 1.51x на 4 ядрах), но упирается в пропускную способность памяти для потоковых задач (\texttt{vecadd}, ускорение всего 1.05x на 4 ядрах).
\item Обоснована неэффективность наращивания объема кэш-памяти (L2/L3) для memory-bound задач: L3-кэш не дает прироста, а L2-кэш вызывает деградацию из-за конфликтов при многопоточном доступе (Cache Thrashing).

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нет. См. выше

@ioughy ioughy Jun 14, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В текущей версии отчёта раздел «Заключение» полностью переработан.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated
\item Экспериментально доказано наличие \enquote{Стены памяти} в архитектуре Vortex: масштабирование вычислительных ядер эффективно для compute-bound задач (\texttt{sgemm}, ускорение 1.51x на 4 ядрах), но упирается в пропускную способность памяти для потоковых задач (\texttt{vecadd}, ускорение всего 1.05x на 4 ядрах).
\item Обоснована неэффективность наращивания объема кэш-памяти (L2/L3) для memory-bound задач: L3-кэш не дает прироста, а L2-кэш вызывает деградацию из-за конфликтов при многопоточном доступе (Cache Thrashing).
\item На основе экспериментов Weak Scaling подтверждено, что общая шина памяти является узким местом архитектуры: при пропорциональном росте объема данных и ядер время выполнения растет линейно, что исключает эффективный параллелизм независимых потоков.
\item Выполнена аналитическая оценка потребления ресурсов ПЛИС (BRAM), показавшая низкий аппаратный ROI (Return on Investment) конфигураций с большими кэшами для потоковых задач.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нет.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В текущей версии отчёта раздел «Заключение» полностью переработан.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

Репозиторий с пайплайном автоматизации и исходными скриптами: \url{https://github.com/Makuhin-Egor/Vortex-experiments-styding-practice}.

Техническая документация (README с описанием архитектуры и запуска): \url{https://github.com/Makuhin-Egor/Vortex-experiments-styding-practice/blob/main/README.md}.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это позор.

  1. Лицензии нет
  2. CI нет (да, хотя бы чеки, линты на Ваши скрипты)
  3. Менеджером для Python пользуйтесь. UV, там, не знаю.
  4. Ну и да. Один коммит 4 дня назад намекает на качество работы и хороший инженерный подход к ней.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Репозиторий доработал по всем критериям, также поменял readme под новую версию отчёта.

@gsvgit

gsvgit commented Jun 12, 2026

Copy link
Copy Markdown
Owner

И да. Конфликты разрешите.

@ioughy
ioughy requested a review from gsvgit June 14, 2026 12:31
@ioughy
ioughy force-pushed the main branch 5 times, most recently from 9a44270 to 1d96a69 Compare June 14, 2026 18:55

@gsvgit gsvgit left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не надо писать бред. Приходите в сентябре. За лето как раз подумаете, поставите аккуртано эксперименты. Будет время всё сделать вдумчиво и аккуратно.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated

\section{Обзор используемых технологий}

Исследование проводится на базе открытой GPGPU-архитектуры Vortex~\cite{vortex_repo}, реализованной на базе RISC-V ISA~\cite{riscv_isa}. В отличие от проприетарных решений (NVIDIA CUDA, AMD ROCm), Vortex предоставляет полностью открытый RTL-код, что делает его удобной платформой для архитектурных исследований.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А какая часть ROCm треюует RTL кода?

@ioughy ioughy Jun 15, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Неудачная формулировка. Поправил.

Comment thread Egor_Makukhin/Egor_Makukhin_report.tex Outdated
\end{itemize}

\textbf{Результаты Strong Scaling:}
Увеличение числа ядер с~1 до~4 на задаче \texttt{vecadd} (16K~элементов) дало ускорение всего 1{,}05x. IPC каждого ядра упал с~0{,}79 до~0{,}21. Как видно на Рисунке~\ref{fig:vecadd_strong}, реальное ускорение далеко от идеального. Ядра значительную часть времени простаивают в ожидании данных, что характерно для ситуаций, когда производительность ограничена подсистемой памяти. Данный эффект может быть связан как с аппаратными ограничениями пропускной способности памяти, так и с неоптимизированным размером рабочих групп (\enquote{work-group size}) при запуске OpenCL-ядра, что препятствует объединению запросов к памяти (\enquote{memory coalescing}).

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А может быть корова.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал недоказанные утверждения.

@ioughy
ioughy requested a review from gsvgit June 15, 2026 08:00
@ioughy
ioughy force-pushed the main branch 2 times, most recently from 18e2578 to fddd182 Compare June 15, 2026 15:15
ioughy added 7 commits July 13, 2026 23:54
- Updated report file according to initial demands
- Converted graphics format from PNG to PDF for LaTeX
- Removed deprecated memory-bound/compute-bound terms from plots
- Added research questions, tasks, and threats to validity per university template
…fixes

- Added introduction section
- Removed one incorrect goal from the report
- Replaced links to sources of information and added new ones
- Applied extensive cosmetic changes:
  * Turned 'е' into 'ё' where needed
  * Added \enquote{}, non-breaking spaces (~), and \hyphenation{}
  * Replaced dates with \DTMdate{} and fixed decimal separators (1{,}05x)
  * Turned Research Questions (RQs) into statements
- Clarified that BRAM36 size is an approximate value
- Edited the list of sources
- Updated the Weak Scaling paragraph
@ioughy
ioughy force-pushed the main branch 2 times, most recently from 5d5dbff to b311366 Compare July 14, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants