Презентация "Иерархия памяти CUDA" по информатике – проект, доклад

Слайд 1
Слайд 2
Слайд 3
Слайд 4
Слайд 5
Слайд 6
Слайд 7
Слайд 8
Слайд 9
Слайд 10
Слайд 11
Слайд 12
Слайд 13
Слайд 14
Слайд 15
Слайд 16
Слайд 17
Слайд 18
Слайд 19
Слайд 20
Слайд 21
Слайд 22
Слайд 23
Слайд 24
Слайд 25
Слайд 26

Презентацию на тему "Иерархия памяти CUDA" можно скачать абсолютно бесплатно на нашем сайте. Предмет проекта: Информатика. Красочные слайды и иллюстрации помогут вам заинтересовать своих одноклассников или аудиторию. Для просмотра содержимого воспользуйтесь плеером, или если вы хотите скачать доклад - нажмите на соответствующий текст под плеером. Презентация содержит 26 слайд(ов).

Слайды презентации

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

Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.

Лекторы: Боресков А.В. (ВМиК МГУ) Харламов А.А. (NVidia)

Типы памяти в CUDA
Слайд 2

Типы памяти в CUDA

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

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

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

Работа с памятью в CUDA

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

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

Умножение матриц

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

Умножение матриц. Простейшая реализация. #define BLOCK_SIZE 16 __global__ void matMult ( float * a, float * b, int n, float * c ) { int bx = blockIdx.x; int by = blockIdx.y; int tx = threadIdx.x; int ty = threadIdx.y; float sum = 0.0f; int ia = n * BLOCK_SIZE * by + n * ty; int ib = BLOCK_SIZE * bx
Слайд 6

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

#define BLOCK_SIZE 16 __global__ void matMult ( float * a, float * b, int n, float * c ) { int bx = blockIdx.x; int by = blockIdx.y; int tx = threadIdx.x; int ty = threadIdx.y; float sum = 0.0f; int ia = n * BLOCK_SIZE * by + n * ty; int ib = BLOCK_SIZE * bx + tx; int ic = n * BLOCK_SIZE * by + BLOCK_SIZE * bx; for ( int k = 0; k

int numBytes = N * N * sizeof ( float ); float * adev, * bdev, * cdev ; dim3 threads ( BLOCK_SIZE, BLOCK_SIZE ); dim3 blocks ( N / threads.x, N / threads.y); cudaMalloc ( (void**)&adev, numBytes );	// allocate DRAM cudaMalloc ( (void**)&bdev, numBytes ); // allocate DRAM cudaMalloc ( (void**
Слайд 7

int numBytes = N * N * sizeof ( float ); float * adev, * bdev, * cdev ; dim3 threads ( BLOCK_SIZE, BLOCK_SIZE ); dim3 blocks ( N / threads.x, N / threads.y); cudaMalloc ( (void**)&adev, numBytes ); // allocate DRAM cudaMalloc ( (void**)&bdev, numBytes ); // allocate DRAM cudaMalloc ( (void**)&cdev, numBytes ); // allocate DRAM cudaMemcpy ( adev, a, numBytes, cudaMemcpyHostToDevice ); // from CPU to DRAM cudaMemcpy ( bdev, b, numBytes, cudaMemcpyHostToDevice ); // from CPU to DRAM matMult>> ( adev, bdev, N, cdev ); cudaThreadSynchronize(); cudaMemcpy ( c, cdev, numBytes, cudaMemcpyDeviceToHost ); cudaFree ( adev ); cudaFree ( bdev ); cudaFree ( cdev );

Простейшая реализация. На каждый элемент 2*N арифметических операций 2*N обращений к глобальной памяти Memory bound (тормозит именно доступ к памяти)
Слайд 8

Простейшая реализация.

На каждый элемент 2*N арифметических операций 2*N обращений к глобальной памяти Memory bound (тормозит именно доступ к памяти)

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

Оптимизация работы с глобальной памятью.

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

Использование выравнивания. struct vec3 { float x, y, z; }; struct __align__(16) vec3 { float x, y, z; }; Размер равен 12 байт Элементы массива не будут выровнены в памяти. Размер равен 16 байт Элементы массива всегда будут выровнены в памяти
Слайд 10

Использование выравнивания.

struct vec3 { float x, y, z; };

struct __align__(16) vec3 { float x, y, z; };

Размер равен 12 байт Элементы массива не будут выровнены в памяти

Размер равен 16 байт Элементы массива всегда будут выровнены в памяти

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

RTM Appendix A.1 CUDA Programming Guide
Слайд 12

RTM Appendix A.1 CUDA Programming Guide

Объединение запросов к глобальной памяти. GPU умеет объединять рад запросов к глобальной памяти в один блок (транзакцию) Независимо происходит для каждого half-warp’а Длина блока должна быть 32/64/128 байт Блок должен быть выровнен по своему размеру
Слайд 13

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

GPU умеет объединять рад запросов к глобальной памяти в один блок (транзакцию) Независимо происходит для каждого half-warp’а Длина блока должна быть 32/64/128 байт Блок должен быть выровнен по своему размеру

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

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

Нити обращаются к 32-битовым словам, давая 64-байтовый блок 64-битовым словам, давая 128-байтовый блок Все 16 слов лежат в пределах блока k-ая нить half-warp’а обращается к k-му слову блока

Coalescing
Слайд 15

Coalescing

Not Coalescing
Слайд 16

Not Coalescing

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

Объединение (coalescing) для GPU с CC 1.2/1.3

Нити обращаются к 8-битовым словам, дающим один 32-байтовы сегмент 16-битовым словам, дающим один 64-байтовый сегмент 32-битовым словам, дающим один 128-байтовый сегмент Получающийся сегмент выровнен по своему размеру

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

Объединение (coalescing)

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

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

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

Использование отдельных массивов. struct vec3 { float x, y, z; }; vec3 * a; float x = a [threadIdx.x].x; float y = a [threadIdx.x].y; float z = a [threadIdx.x].z; float * ax, * ay, * az; float x = ax [threadIdx]; float y = ay [threadIdx]; float z = az [threadIdx]; Не можем использовать coalescing пр
Слайд 20

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

struct vec3 { float x, y, z; }; vec3 * a; float x = a [threadIdx.x].x; float y = a [threadIdx.x].y; float z = a [threadIdx.x].z;

float * ax, * ay, * az; float x = ax [threadIdx]; float y = ay [threadIdx]; float z = az [threadIdx];

Не можем использовать coalescing при чтении данных

Поскольку нити одновременно обращаются к последовательно лежащим словам памяти, то будет происходить coalescing

Решение системы линейных алгебраических уравнений. Традиционные методы ориентированы на последовательное вычисление элементов и нам не подходят Есть еще итеративные методы. Ax=f, A – матрица размера N*N, f – вектор размера N
Слайд 21

Решение системы линейных алгебраических уравнений

Традиционные методы ориентированы на последовательное вычисление элементов и нам не подходят Есть еще итеративные методы

Ax=f, A – матрица размера N*N, f – вектор размера N

Итеративные методы. Эффективны когда Матрица А сильна разрежена Параллельные вычисления В обоих случаях цена (по времени) одной итерации O(N)
Слайд 22

Итеративные методы

Эффективны когда Матрица А сильна разрежена Параллельные вычисления В обоих случаях цена (по времени) одной итерации O(N)

Сходимость. Если есть сходимость, то только к решению системы Записав уравнения для погрешности получаем достаточное условие сходимости За счет выбора достаточно малого значения параметра получаем сходимость
Слайд 23

Сходимость

Если есть сходимость, то только к решению системы Записав уравнения для погрешности получаем достаточное условие сходимости За счет выбора достаточно малого значения параметра получаем сходимость

Код на CUDA. // // one iteration // __global__ void kernel ( float * a, float * f, float alpha, float * x0, float * x1, int n ) { int idx = blockIdx.x * blockDim.x + threadId.x; int ia = n * idx; float sum = 0.0f; for ( int I = 0; i
Слайд 24

Код на CUDA

// // one iteration // __global__ void kernel ( float * a, float * f, float alpha, float * x0, float * x1, int n ) { int idx = blockIdx.x * blockDim.x + threadId.x; int ia = n * idx; float sum = 0.0f; for ( int I = 0; i

Ресуры нашего курса. CUDA.CS.MSU.SU Место для вопросов и дискуссий Место для материалов нашего курса Место для ваших статей! Если вы нашли какой-то интересный подход! Или исследовали производительность разных подходов и знаете, какой из них самый быстрый! Или знаете способы сделать работу с CUDA про
Слайд 25

Ресуры нашего курса

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

Вопросы
Слайд 26

Вопросы

Список похожих презентаций

Представление чисел в памяти компьютера

Представление чисел в памяти компьютера

Как представляются в компьютере целые числа? Целые числа могут представляться в компьютере со знаком или без знака. Целые числа без знака обычно занимают ...
Представление чисел в памяти компьютера

Представление чисел в памяти компьютера

Электронный калькулятор Перевод чисел Практическая работа № 15 Числа в памяти компьютера. Оглавление. Электронный калькулятор. - специализированное ...
Представление чисел в памяти компьютера

Представление чисел в памяти компьютера

Сегодня вы познакомитесь с алгоритмом представления целых чисел в компьютере; Развивающая: способствовать развитию у учащихся интереса к теоретическим ...
Характеристики процессора и оперативной памяти

Характеристики процессора и оперативной памяти

Архитектура ПК. Внутренняя память. Внутренняя память — совокупность специальных электронных ячеек, каждая из которых может хранить конкретную комбинацию ...
Виды памяти

Виды памяти

Память персонального компьютера. Память предназначена для хранения программ и данных, с которыми процессор непосредственно работает. Она состоит из ...
Тексты в памяти

Тексты в памяти

Преимущества:. Компактное размещение 500 страниц на дискету (1,44 Мб) Изменение быстро, без траты бумаги Копирование просто, быстро Передача быстро ...
Типы памяти ПК

Типы памяти ПК

В последние два десятилетия массовое производство персональных компьютеров и стремительный рост Интернета существенно ускорили становление информационного ...
Микросхемы памяти

Микросхемы памяти

SRAM. Статическая оперативная память с произвольным доступом (SRAM, static random access memory) — полупроводниковая оперативная память, в которой ...
Назначение и основные характеристики памяти

Назначение и основные характеристики памяти

Память компьютера – совокупность устройств для хранения информации. (ЗУ ЭВМ– запоминающее устройство ЭВМ). LET A=5. Запись (сохранение) –. процесс ...
Информация в памяти компьютера. Системы счисления

Информация в памяти компьютера. Системы счисления

Как представлена информация в компьютере? Информация в компьютере представлена двумя цифрами 0 и 1. Системы счисления. Позиционные Непозиционные. ...
Использование оперативной памяти RAM и ROM

Использование оперативной памяти RAM и ROM

Физические виды ОЗУ На сегодня наибольшее распространение имеют два вида ОЗУ: SRAM (Static RAM) ОЗУ, собранное на триггерах, называется статической ...
Информация в памяти компьютера

Информация в памяти компьютера

Информация в памяти компьютера. Языки делятся на естественные (разговорные) и формальные. Представление информации с помощью какого-либо языка часто ...
Изображения в памяти компьютера

Изображения в памяти компьютера

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

Виды памяти, вытесняющие статическую память

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

Системы счисления и двоичное представление информации в памяти компьютера

Пример задания:. Сколько единиц в двоичной записи числа 1025? 1) 1 2) 2 3) 10 4) 11. Решение (вариант 1, прямой перевод): 1) переводим число 1025 ...
Организация и основные характеристики памяти компьютера

Организация и основные характеристики памяти компьютера

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

Тексты в компьютерной памяти

Тексты в компьютерной памяти. 1. Работа с текстами – одна из областей применения компьютера. Преимущества компьютерного документа по сравнению с ...
Основные устройства внешней памяти

Основные устройства внешней памяти

Внешняя (долговременная) память. Это память, предназначенная для длительного хранения программ и данных. Целостность содержимого данной памяти не ...
Тексты в памяти компьютера

Тексты в памяти компьютера

В чем преимущества компьютера при работе с текстом? 1 - создавать тексты не тратя на это бумаги. 2 - компактное размещение текста на магнитном носителе ...
Полупроводниковые модули памяти для мобильных устройств

Полупроводниковые модули памяти для мобильных устройств

Карты флеш-памяти. Флеш-карты SmartMedia. На изображении (сверху вниз): пластиковый корпус карты памяти; «канифольный футляр»; связующие проводки; ...

Конспекты

Тексты в памяти компьютера

Тексты в памяти компьютера

Учитель информатики МБОУ «Гимназия № 5» г. Брянска. . Прокопович Елена Вячеславна. План-конспект урока. Предмет: Информатика. Класс: 8. ...
Тексты в памяти компьютера. Редактирование и форматирование текста. Создание надписей

Тексты в памяти компьютера. Редактирование и форматирование текста. Создание надписей

6 класс Урок 6. Тексты в памяти компьютера. Практическая работа №3 (задание 1). Редактирование и форматирование текста. Создание надписей. Краткая ...
Тексты в компьютерной памяти

Тексты в компьютерной памяти

Разработка урока по теме : "Тексты в компьютерной памяти". Тема: Тексты в компьютерной памяти. Цель урока. Познакомить учащихся со способами представления ...
Тексты в памяти компьютера

Тексты в памяти компьютера

Музыка Екатерина Николаевна, МБОУ СОШ №7, г. Сургут. 6 класс. Раздел программы: Компьютер и информация. Тема урока: Тексты в памяти компьютера. ...
Развитие зрительной памяти

Развитие зрительной памяти

Тема урока: «Развитие зрительной памяти». Автор курса: О.А.Холодова, 2 класс. Цель:. развивать зрительную память. Задачи:. . Образовательные:. ...
Тексты в компьютерной памяти

Тексты в компьютерной памяти

Конспект урока по теме: "Тексты в компьютерной памяти". . . Автор:. Стасева Маргарита Сергеевна. . . Цель урока. :. Ввести понятие кодирование ...
Представление чисел в памяти компьютера

Представление чисел в памяти компьютера

Методическая разработка урока информатики в 9 классе. . с использованием Сингапурской методики обучения. . . . Учитель: Гатауллина Э.Р. ...
Представление чисел в памяти ЭВМ

Представление чисел в памяти ЭВМ

Конспект урока. . «Представление чисел в памяти ЭВМ». Цель. – научиться производить арифметические действия в основных системах счисления и переводить ...
Представление текстов в памяти компьютера. Кодировочные таблицы

Представление текстов в памяти компьютера. Кодировочные таблицы

. Государственное бюджетное общеобразовательное учреждение средняя общеобразовательная школа № 247 Красносельского района Санкт-Петербурга. ...
Назначение и устройство компьютера. Принципы организации внутренней и внешней памяти

Назначение и устройство компьютера. Принципы организации внутренней и внешней памяти

Технологическая карта урока. 1. Ф. И. О.учителя:  Бобина Алла Владимировна, учитель информатики. ГБОУ школа№494 Выборгского района г.Санкт-Петербурга. ...

Советы как сделать хороший доклад презентации или проекта

  1. Постарайтесь вовлечь аудиторию в рассказ, настройте взаимодействие с аудиторией с помощью наводящих вопросов, игровой части, не бойтесь пошутить и искренне улыбнуться (где это уместно).
  2. Старайтесь объяснять слайд своими словами, добавлять дополнительные интересные факты, не нужно просто читать информацию со слайдов, ее аудитория может прочитать и сама.
  3. Не нужно перегружать слайды Вашего проекта текстовыми блоками, больше иллюстраций и минимум текста позволят лучше донести информацию и привлечь внимание. На слайде должна быть только ключевая информация, остальное лучше рассказать слушателям устно.
  4. Текст должен быть хорошо читаемым, иначе аудитория не сможет увидеть подаваемую информацию, будет сильно отвлекаться от рассказа, пытаясь хоть что-то разобрать, или вовсе утратит весь интерес. Для этого нужно правильно подобрать шрифт, учитывая, где и как будет происходить трансляция презентации, а также правильно подобрать сочетание фона и текста.
  5. Важно провести репетицию Вашего доклада, продумать, как Вы поздороваетесь с аудиторией, что скажете первым, как закончите презентацию. Все приходит с опытом.
  6. Правильно подберите наряд, т.к. одежда докладчика также играет большую роль в восприятии его выступления.
  7. Старайтесь говорить уверенно, плавно и связно.
  8. Старайтесь получить удовольствие от выступления, тогда Вы сможете быть более непринужденным и будете меньше волноваться.

Информация о презентации

Ваша оценка: Оцените презентацию по шкале от 1 до 5 баллов
Дата добавления:1 марта 2019
Категория:Информатика
Содержит:26 слайд(ов)
Поделись с друзьями:
Скачать презентацию
Смотреть советы по подготовке презентации