Add report - #16
Conversation
| \usepackage{csquotes} | ||
|
|
||
|
|
||
| \title{GEMM OpenCL} |
There was a problem hiding this comment.
Название должно максимально точно отражать суть проделанной работы. Это точно не про текущее название.
|
|
||
| Работа выполнялась в рамках учебного исследования методов оптимизации вычислений на графическом процессоре NVIDIA GeForce RTX 4060 с использованием технологии OpenCL на основе существующего набора реализаций умножения матриц. | ||
|
|
||
| \textbf{Целью работы является} экспериментальное исследование влияния различных методов оптимизации умножения матриц на производительность графического процессора, а также автоматизация подбора параметров оптимизации и определение наиболее эффективной конфигурации для используемого графического процессора. |
There was a problem hiding this comment.
Всё таки вряд ли проделанные оптимизации влияли на производительность именно графического процессора.
There was a problem hiding this comment.
Чтобы было хоть немного понятно, что ща параметры и зачем их автоматически подбирать, надо чуть подробнее сказать про оптимизации, про задачу.
|
|
||
| \section{Постановка задачи} | ||
|
|
||
| Умножение матриц является одной из наиболее важных вычислительных операций в высокопроизводительных вычислениях, поэтому производительность многих приложений напрямую зависит от эффективности ее реализации на графических процессорах. |
There was a problem hiding this comment.
Не линим будет явн сказать, что речь про плотные матриц (ещё и конкртеного типа). У Вас, вон, коллеги разреженными матрицами занимаются. Там своя атмосфера.
| Для достижения поставленной цели были решены следующие задачи: | ||
| \begin{itemize} | ||
| \item провести экспериментальное исследование производительности различных реализаций умножения матриц, представленных в проекте myGEMM; | ||
| \item проанализировать влияние отдельных методов оптимизации на производительность графического процессора; |
There was a problem hiding this comment.
У Вас фигурируют какие-то "методы оптимизации". О чём речь?
There was a problem hiding this comment.
Ну и да. Вряд ли Вы влияете на производительность процессора. Графического.
| \item провести экспериментальное исследование производительности различных реализаций умножения матриц, представленных в проекте myGEMM; | ||
| \item проанализировать влияние отдельных методов оптимизации на производительность графического процессора; | ||
| \item автоматизировать подбор параметров оптимизации; | ||
| \item определить оптимальные значения параметров для используемого графического процессора и сравнить их со значениями, предлагаемыми в проекте по умолчанию. |
There was a problem hiding this comment.
О. Какой-то проект есть, оказывается. А что за проект?
|
|
||
| В качестве основы для выполнения работы был использован проект myGEMM\footnote{Cedric Nugteren. Репозиторий проекта myGEMM. URL: \url{https://github.com/CNugteren/myGEMM} (дата обращения: 10.03.2026).}, реализующий набор методов оптимизации умножения матриц с использованием OpenCL. | ||
|
|
||
| В проекте представлено 11 вариантов вычислительных ядер, каждое из которых реализует новый метод оптимизации умножения матриц. Наличие нескольких реализаций позволяет проследить влияние методов оптимизации на производительность графического процессора и делает проект удобной платформой для экспериментального исследования подходов к повышению эффективности вычислений. |
There was a problem hiding this comment.
Производительность графического процессора снова.
|
|
||
| В проекте представлено 11 вариантов вычислительных ядер, каждое из которых реализует новый метод оптимизации умножения матриц. Наличие нескольких реализаций позволяет проследить влияние методов оптимизации на производительность графического процессора и делает проект удобной платформой для экспериментального исследования подходов к повышению эффективности вычислений. | ||
|
|
||
| В рамках работы были разработаны программы на языке Python, обеспечивающие автоматический запуск вычислительных ядер, сбор результатов измерений, их статистическую обработку и подбор оптимальных параметров. Все программы расположены в корневом каталоге проекта: |
There was a problem hiding this comment.
Это тот же проект по той же ссылке?
| \item флаги компиляции \texttt{-O3 -arch=sm\_89 -Xcompiler -Wall}. | ||
| \end{itemize} | ||
|
|
||
| Для каждой конфигурации выполнялось 40 измерений производительности после серии предварительных запусков. Между компиляциями и сменами размеров матриц делалась пауза для стабилизации температурного режима графического процессора. В качестве исследуемой задачи использовалось умножение квадратных матриц размера \(8192 \times 8192\) (степень двойки) и \(8320 \times 8320\) (не степень двойки, для проверки ядер с поддержкой неполных плиток). По результатам измерений вычислялись среднее значение производительности (GFLOPS), стандартное отклонение и 95\%-й доверительный интервал, а также выполнялась проверка нормальности распределения результатов с использованием тестов Д'Агостино и Шапиро--Уилка. |
There was a problem hiding this comment.
Хотя бы пару слов про то, что за плитки. Речь же про шоколад, да?
There was a problem hiding this comment.
А ещё неплохо бы сказать, как Вы секунды (или что там у Вас) в гигафлопсы переводили. Вроде и очевидно, но есть тонкости.
|
|
||
| Время выполнения каждого измерения определялось с использованием функции \texttt{gettimeofday}, обеспечивающей получение времени в секундах. Число арифметических операций при умножении плотных квадратных матриц размера \(N \times N\) составляет \(2N^3\), поскольку каждый элемент результирующей матрицы вычисляется как скалярное произведение строки и столбца длины \(N\), включающее \(N\) операций умножения и \(N\) операций сложения. Итоговая производительность вычислялась по формуле: | ||
| \[ | ||
| GFLOPS = \frac{2N^3}{t \cdot 10^9}, |
There was a problem hiding this comment.
А откуда 2? А что насчёт учёта fma?
| \item выполнен автоматический перебор параметров и определены оптимальные конфигурации для NVIDIA GeForce RTX 4060. | ||
| \end{itemize} | ||
|
|
||
| Репозиторий: \url{https://github.com/Snaffys/myGEMM} |
| \[ | ||
| GFLOPS = \frac{2N^3}{t \cdot 10^9}, | ||
| \] | ||
| где \(t\) — время выполнения одного измерения в секундах. |
There was a problem hiding this comment.
Не внемательно перечитывали после нейронки?
|
|
||
| Время выполнения каждого измерения определялось с использованием функции \texttt{gettimeofday}, обеспечивающей получение времени в секундах. Число арифметических операций при умножении плотных квадратных матриц размера \(N \times N\) составляет \(2N^3\), поскольку каждый элемент результирующей матрицы вычисляется как скалярное произведение строки и столбца длины \(N\), включающее \(N\) операций умножения и \(N\) операций сложения. Итоговая производительность вычислялась по формуле: | ||
| \[ | ||
| GFLOPS = \frac{2N^3}{t \cdot 10^9}, |
|
Ещё про графики. Чем no changes отличается от default? |
gsvgit
left a comment
There was a problem hiding this comment.
- Таки у Вас есть fma?
- Про no changes так и не понял. НА графиках есть ядра (например, 9), у которых аж три конфигурации: tuned, default, no changes. В чём между ними разница? Опишите все три. Поясните, почему для некоторых есть все три, а для некоторых только часть.
|
|
||
| Результаты измерений для базовой конфигурации, а также после автоматического подбора параметров представлены на странице репозитория в файле \texttt{README.md}. | ||
|
|
||
| Сравнение производительности ядер до и после подбора параметров для матриц приведено на рисунке~\ref{fig:kernel-comparison}. Бордовым и малиновым цветами показаны результаты выполнения через CUDA и OpenCL соответственно, а белыми отрезками обозначено стандартное отклонение результатов измерений. В рамках сравнения рассматриваются 2 набора параметров: <<default>> (параметры по умолчанию) и <<tuned>> (оптимальные параметры, полученные в результате автоматического подбора). Обозначение <<no changes>> используется в случаях, когда оптимальный набор параметров совпадает с параметрами по умолчанию. |
There was a problem hiding this comment.
Всё ещё не понимаю. Откуда взялись умолчательные значения? И зачем два обозначения если ничего не менялось? Ну остадись некие дефолтные парамтры лучшими, пусть оно так и называется.
|
нфликты разрешите, пожалуйста. В остальном --- пойдёт. |
Здравствуйте! Разрешил. |
No description provided.