Skip to content

Zararest/GPU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Эксперименты c перемножением матриц

Основная папка с кодом - MatMul/

Запуск умножения

Сборка:

mkdir MatMul/build
cd MatMul/build

cmake ..
make

Запуск разных вариантов перемножения:

  1. Самый простой вариант
./MatMul --simple --matrix *высота первой* *размер смежных сторон* *длина второй*
  1. Оптимизирванный с помощью tile-ов и константной памяти:
./MatMul --tiled --matrix *высота первой* *размер смежных сторон* *длина 
  1. Оптимизированный с помощью tile-ов и транспонирования:
./MatMul --transposed --matrix *высота первой* *размер смежных сторон* *длина

Дополнительный флаги

  • --check - проверяет правильность умножения и выводит врем на cpu
  • --params - печатает характеристики системы

Анализ производительности

Сравнение с CPU

./MatMul --matrix 2048 1024 1024 --tiled --check

Сам кернел длилися 19ms, с учетом копирования памяти все умнодение длилось 150ms.

На GPU аналогичная матрица считалась 34,020ms.

Матрицы {4096, 4096} x {4096, 4096} считались на GPU 1072ms(с учеом копирования). На CPU - неизвестно сколько.

Сравнение алгоритмов

Все умножения проводились на матрицах {4096, 4096} x {4096, 4096}, везде по 16x16 трдов в блоке.

  1. Без оптимизаций: 926ms (без учета копирования памяти)
  2. С оптимизацияей shared memory: 632ms (без учета копирования памяти)
  3. С транспонированием и shared memory: 648ms (результат такой же поскольку из глобльной памяти копируются tile-ы а не строки матрицы)

Параметры компьютера

Number of the devices: 1

Parameters of the device 0:
        Global memory size: 6225002496
        Shared memory size (per block): 49152
        Constant memory size: 65536
        Regs per block: 65536
        Max threads per block: 1024
        Max threads dim: {1024, 1024, 64}
        Max grid dim: {2147483647, 65535, 65535}
        Clock rate: 1590000

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors