🗊 Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ. Лекторы: Боресков А.В. (ВМиК

Категория: Информатика
Нажмите для полного просмотра!
  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №1  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №2  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №3  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №4  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №5  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №6  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №7  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №8  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №9  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №10  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №11  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №12  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №13  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №14  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №15  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №16  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №17  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №18  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №19  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №20  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №21  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №22  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №23  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №24  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №25  
  Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.   Лекторы:  Боресков А.В. (ВМиК, слайд №26

Содержание

Вы можете ознакомиться и скачать Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ. Лекторы: Боресков А.В. (ВМиК. Презентация содержит 26 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ. 
Лекторы:
Боресков А.В. (ВМиК МГУ)
Харламов А.А. (NVidia)
Описание слайда:
Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ. Лекторы: Боресков А.В. (ВМиК МГУ) Харламов А.А. (NVidia)

Слайд 2





Типы памяти в CUDA
Описание слайда:
Типы памяти в CUDA

Слайд 3





Типы памяти в CUDA
Самая быстрая – shared (on-chip)
Самая медленная – глобальная (DRAM)
Для ряда случаев можно использовать кэшируемую константную и текстурную память
Доступ к памяти в CUDA идет отдельно для каждой половины warp’а (half-warp)
Описание слайда:
Типы памяти в CUDA Самая быстрая – shared (on-chip) Самая медленная – глобальная (DRAM) Для ряда случаев можно использовать кэшируемую константную и текстурную память Доступ к памяти в CUDA идет отдельно для каждой половины warp’а (half-warp)

Слайд 4





Работа с памятью в CUDA
Основа оптимизации – оптимизация работы с памятью
Максимальное использование shared-памяти
Использование специальных паттернов доступа к памяти, гарантирующих эффективный доступ
Паттерны работают независимо в пределах каждого half-warp’а
Описание слайда:
Работа с памятью в CUDA Основа оптимизации – оптимизация работы с памятью Максимальное использование shared-памяти Использование специальных паттернов доступа к памяти, гарантирующих эффективный доступ Паттерны работают независимо в пределах каждого half-warp’а

Слайд 5





Умножение матриц
Произведение двух квадратных матриц A и B размера N*N, N кратно 16
Матрицы расположены в глобальной памяти
По одной нити на каждый элемент произведения
2D блок – 16*16
2D grid
Описание слайда:
Умножение матриц Произведение двух квадратных матриц A и B размера N*N, N кратно 16 Матрицы расположены в глобальной памяти По одной нити на каждый элемент произведения 2D блок – 16*16 2D grid

Слайд 6





Умножение матриц. Простейшая реализация.
Описание слайда:
Умножение матриц. Простейшая реализация.

Слайд 7





Умножение матриц. Простейшая реализация.
Описание слайда:
Умножение матриц. Простейшая реализация.

Слайд 8





Простейшая реализация.
Описание слайда:
Простейшая реализация.

Слайд 9





Оптимизация работы с глобальной памятью.
Обращения идут через 32/64/128-битовые слова
При обращении к t[i]
sizeof( t [0] ) равен 4/8/16 байтам
t [i] выровнен по sizeof ( t [0] )
Вся выделяемая память всегда выровнена по 256 байт
Описание слайда:
Оптимизация работы с глобальной памятью. Обращения идут через 32/64/128-битовые слова При обращении к t[i] sizeof( t [0] ) равен 4/8/16 байтам t [i] выровнен по sizeof ( t [0] ) Вся выделяемая память всегда выровнена по 256 байт

Слайд 10





Использование выравнивания.
struct vec3
{
  float x, y, z;
};
Описание слайда:
Использование выравнивания. struct vec3 { float x, y, z; };

Слайд 11





Device Compute Capability
Compute Caps. – доступная версия CUDA
Разные возможности HW
Пример:
В 1.1 добавлены атомарные операции в global memory
В 1.2 добавлены атомарные операции в shared memory 
В 1.3 добавлены вычисления в double
Узнать доступный Compute Caps. можно через cudaGetDeviceProperties()
См. CUDAHelloWorld
Сегодня Compute Caps:
Влияет на правила работы с глобальной памятью
Описание слайда:
Device Compute Capability Compute Caps. – доступная версия CUDA Разные возможности HW Пример: В 1.1 добавлены атомарные операции в global memory В 1.2 добавлены атомарные операции в shared memory В 1.3 добавлены вычисления в double Узнать доступный Compute Caps. можно через cudaGetDeviceProperties() См. CUDAHelloWorld Сегодня Compute Caps: Влияет на правила работы с глобальной памятью

Слайд 12





Device Compute Capability
Описание слайда:
Device Compute Capability

Слайд 13





Объединение запросов к глобальной памяти.
Описание слайда:
Объединение запросов к глобальной памяти.

Слайд 14





Объединение (coalescing) для GPU с CC 1.0/1.1
Нити обращаются к 
32-битовым словам, давая 64-байтовый блок 
64-битовым словам, давая 128-байтовый блок
Все 16 слов лежат в пределах блока
k-ая нить half-warp’а обращается к k-му слову блока
Описание слайда:
Объединение (coalescing) для GPU с CC 1.0/1.1 Нити обращаются к 32-битовым словам, давая 64-байтовый блок 64-битовым словам, давая 128-байтовый блок Все 16 слов лежат в пределах блока k-ая нить half-warp’а обращается к k-му слову блока

Слайд 15





Объединение (coalescing) для GPU с CC 1.0/1.1
Описание слайда:
Объединение (coalescing) для GPU с CC 1.0/1.1

Слайд 16





Объединение (coalescing) для GPU с CC 1.0/1.1
Описание слайда:
Объединение (coalescing) для GPU с CC 1.0/1.1

Слайд 17





Объединение (coalescing) для GPU с CC 1.2/1.3
Нити обращаются к
8-битовым словам, дающим один 32-байтовы сегмент
16-битовым словам, дающим один 64-байтовый сегмент
32-битовым словам, дающим один 128-байтовый сегмент
Получающийся сегмент выровнен по своему размеру
Описание слайда:
Объединение (coalescing) для GPU с CC 1.2/1.3 Нити обращаются к 8-битовым словам, дающим один 32-байтовы сегмент 16-битовым словам, дающим один 64-байтовый сегмент 32-битовым словам, дающим один 128-байтовый сегмент Получающийся сегмент выровнен по своему размеру

Слайд 18





Объединение (coalescing)
Если хотя бы одно условие не выполнено
1.0/1.1 – 16 отдельных транзаций
1.2/1.3 – объединяет их в блоки (2,3,…) и для каждого блока проводится отдельная транзакция
Для 1.2/1.3 порядок в котором нити обращаются к словам внутри блока не имеет значения (в отличии от 1.0/1.1)
Описание слайда:
Объединение (coalescing) Если хотя бы одно условие не выполнено 1.0/1.1 – 16 отдельных транзаций 1.2/1.3 – объединяет их в блоки (2,3,…) и для каждого блока проводится отдельная транзакция Для 1.2/1.3 порядок в котором нити обращаются к словам внутри блока не имеет значения (в отличии от 1.0/1.1)

Слайд 19





Объединение (coalescing)
Можно добиться заметного увеличения скорости работы с памятью
Лучше использовать не массив структур, а набор массивов отдельных компонент – это позволяет использовать coalescing
Описание слайда:
Объединение (coalescing) Можно добиться заметного увеличения скорости работы с памятью Лучше использовать не массив структур, а набор массивов отдельных компонент – это позволяет использовать coalescing

Слайд 20





Использование отдельных массивов
Описание слайда:
Использование отдельных массивов

Слайд 21





Решение системы линейных алгебраических уравнений
Традиционные методы ориентированы на последовательное вычисление элементов и нам не подходят
Есть еще итеративные методы
Описание слайда:
Решение системы линейных алгебраических уравнений Традиционные методы ориентированы на последовательное вычисление элементов и нам не подходят Есть еще итеративные методы

Слайд 22





Итеративные методы
Описание слайда:
Итеративные методы

Слайд 23





Сходимость
Описание слайда:
Сходимость

Слайд 24





Код на CUDA
Описание слайда:
Код на CUDA

Слайд 25





Ресуры нашего курса	
CUDA.CS.MSU.SU
Место для вопросов и дискуссий
Место для материалов нашего курса
Место для ваших статей!
Если вы нашли какой-то интересный подход!
Или исследовали производительность разных подходов и знаете, какой из них самый быстрый!
Или знаете способы сделать работу с CUDA проще!
 www.steps3d.narod.ru
 www.nvidia.ru
Описание слайда:
Ресуры нашего курса CUDA.CS.MSU.SU Место для вопросов и дискуссий Место для материалов нашего курса Место для ваших статей! Если вы нашли какой-то интересный подход! Или исследовали производительность разных подходов и знаете, какой из них самый быстрый! Или знаете способы сделать работу с CUDA проще! www.steps3d.narod.ru www.nvidia.ru

Слайд 26





Вопросы
Описание слайда:
Вопросы



Похожие презентации
Mypresentation.ru
Загрузить презентацию