Skip to content

Add report - #16

Open
Snaffys wants to merge 16 commits into
gsvgit:mainfrom
Snaffys:main
Open

Add report#16
Snaffys wants to merge 16 commits into
gsvgit:mainfrom
Snaffys:main

Conversation

@Snaffys

@Snaffys Snaffys commented Jun 11, 2026

Copy link
Copy Markdown

No description provided.

Comment thread Danil_Grezin/Danil_Grezin_report.tex Outdated
\usepackage{csquotes}


\title{GEMM OpenCL}

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 Danil_Grezin/Danil_Grezin_report.tex Outdated

Работа выполнялась в рамках учебного исследования методов оптимизации вычислений на графическом процессоре NVIDIA GeForce RTX 4060 с использованием технологии OpenCL на основе существующего набора реализаций умножения матриц.

\textbf{Целью работы является} экспериментальное исследование влияния различных методов оптимизации умножения матриц на производительность графического процессора, а также автоматизация подбора параметров оптимизации и определение наиболее эффективной конфигурации для используемого графического процессора.

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.

Чтобы было хоть немного понятно, что ща параметры и зачем их автоматически подбирать, надо чуть подробнее сказать про оптимизации, про задачу.

Comment thread Danil_Grezin/Danil_Grezin_report.tex Outdated

\section{Постановка задачи}

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

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 Danil_Grezin/Danil_Grezin_report.tex Outdated
Для достижения поставленной цели были решены следующие задачи:
\begin{itemize}
\item провести экспериментальное исследование производительности различных реализаций умножения матриц, представленных в проекте myGEMM;
\item проанализировать влияние отдельных методов оптимизации на производительность графического процессора;

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.

Ну и да. Вряд ли Вы влияете на производительность процессора. Графического.

Comment thread Danil_Grezin/Danil_Grezin_report.tex Outdated
\item провести экспериментальное исследование производительности различных реализаций умножения матриц, представленных в проекте myGEMM;
\item проанализировать влияние отдельных методов оптимизации на производительность графического процессора;
\item автоматизировать подбор параметров оптимизации;
\item определить оптимальные значения параметров для используемого графического процессора и сравнить их со значениями, предлагаемыми в проекте по умолчанию.

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 Danil_Grezin/Danil_Grezin_report.tex Outdated

В качестве основы для выполнения работы был использован проект myGEMM\footnote{Cedric Nugteren. Репозиторий проекта myGEMM. URL: \url{https://github.com/CNugteren/myGEMM} (дата обращения: 10.03.2026).}, реализующий набор методов оптимизации умножения матриц с использованием OpenCL.

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

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 Danil_Grezin/Danil_Grezin_report.tex Outdated

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

В рамках работы были разработаны программы на языке 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.

Это тот же проект по той же ссылке?

Comment thread Danil_Grezin/Danil_Grezin_report.tex Outdated
\item флаги компиляции \texttt{-O3 -arch=sm\_89 -Xcompiler -Wall}.
\end{itemize}

Для каждой конфигурации выполнялось 40 измерений производительности после серии предварительных запусков. Между компиляциями и сменами размеров матриц делалась пауза для стабилизации температурного режима графического процессора. В качестве исследуемой задачи использовалось умножение квадратных матриц размера \(8192 \times 8192\) (степень двойки) и \(8320 \times 8320\) (не степень двойки, для проверки ядер с поддержкой неполных плиток). По результатам измерений вычислялись среднее значение производительности (GFLOPS), стандартное отклонение и 95\%-й доверительный интервал, а также выполнялась проверка нормальности распределения результатов с использованием тестов Д'Агостино и Шапиро--Уилка.

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.

А ещё неплохо бы сказать, как Вы секунды (или что там у Вас) в гигафлопсы переводили. Вроде и очевидно, но есть тонкости.


Время выполнения каждого измерения определялось с использованием функции \texttt{gettimeofday}, обеспечивающей получение времени в секундах. Число арифметических операций при умножении плотных квадратных матриц размера \(N \times N\) составляет \(2N^3\), поскольку каждый элемент результирующей матрицы вычисляется как скалярное произведение строки и столбца длины \(N\), включающее \(N\) операций умножения и \(N\) операций сложения. Итоговая производительность вычислялась по формуле:
\[
GFLOPS = \frac{2N^3}{t \cdot 10^9},

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.

А откуда 2? А что насчёт учёта fma?

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.

а у Вас есть fma?

Comment thread Danil_Grezin/Danil_Grezin_report.tex
Comment thread Danil_Grezin/Danil_Grezin_report.tex Outdated
\item выполнен автоматический перебор параметров и определены оптимальные конфигурации для NVIDIA GeForce RTX 4060.
\end{itemize}

Репозиторий: \url{https://github.com/Snaffys/myGEMM}

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 Danil_Grezin/Danil_Grezin_report.tex Outdated
\[
GFLOPS = \frac{2N^3}{t \cdot 10^9},
\]
где \(t\) — время выполнения одного измерения в секундах.

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.

Не внемательно перечитывали после нейронки?


Время выполнения каждого измерения определялось с использованием функции \texttt{gettimeofday}, обеспечивающей получение времени в секундах. Число арифметических операций при умножении плотных квадратных матриц размера \(N \times N\) составляет \(2N^3\), поскольку каждый элемент результирующей матрицы вычисляется как скалярное произведение строки и столбца длины \(N\), включающее \(N\) операций умножения и \(N\) операций сложения. Итоговая производительность вычислялась по формуле:
\[
GFLOPS = \frac{2N^3}{t \cdot 10^9},

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.

а у Вас есть fma?

@gsvgit

gsvgit commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Ещё про графики. Чем no changes отличается от default?

@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.

  1. Таки у Вас есть fma?
  2. Про no changes так и не понял. НА графиках есть ядра (например, 9), у которых аж три конфигурации: tuned, default, no changes. В чём между ними разница? Опишите все три. Поясните, почему для некоторых есть все три, а для некоторых только часть.

Comment thread Danil_Grezin/Danil_Grezin_report.tex Outdated

Результаты измерений для базовой конфигурации, а также после автоматического подбора параметров представлены на странице репозитория в файле \texttt{README.md}.

Сравнение производительности ядер до и после подбора параметров для матриц приведено на рисунке~\ref{fig:kernel-comparison}. Бордовым и малиновым цветами показаны результаты выполнения через CUDA и OpenCL соответственно, а белыми отрезками обозначено стандартное отклонение результатов измерений. В рамках сравнения рассматриваются 2 набора параметров: <<default>> (параметры по умолчанию) и <<tuned>> (оптимальные параметры, полученные в результате автоматического подбора). Обозначение <<no changes>> используется в случаях, когда оптимальный набор параметров совпадает с параметрами по умолчанию.

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.

Всё ещё не понимаю. Откуда взялись умолчательные значения? И зачем два обозначения если ничего не менялось? Ну остадись некие дефолтные парамтры лучшими, пусть оно так и называется.

@gsvgit

gsvgit commented Jul 14, 2026

Copy link
Copy Markdown
Owner

нфликты разрешите, пожалуйста. В остальном --- пойдёт.

@Snaffys
Snaffys requested a review from gsvgit July 14, 2026 11:07
@Snaffys

Snaffys commented Jul 14, 2026

Copy link
Copy Markdown
Author

нфликты разрешите, пожалуйста. В остальном --- пойдёт.

Здравствуйте! Разрешил.

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