Глобальная память NVIDIA CUDA

Автор работы: Пользователь скрыл имя, 21 Декабря 2012 в 12:19, доклад

Краткое описание

В документации CUDA в качестве одного из основных достижений технологии приводится возможность произвольной адресации глобальной памяти. То есть можно читать из любой ячейки памяти, и писать можно тоже в произвольную ячейку (на GPU это обычно не так).
Однако за универсальность в данном случае приходится расплачиваться скоростью. Глобальная память не кэшируется. Она работает очень медленно, количество обращений к глобальной памяти следует в любом случае минимизировать.

Вложенные файлы: 1 файл

Глобальная память.doc

— 47.00 Кб (Скачать файл)

 int c = a.x * b.y;   

 ...

}

 

! Использование текстурной памяти.

При рассмотрении разделяемой  памяти, мы предполагали, чтоиспользование памяти внутри блока сильно локализовано, то есть что блокудля его работы требуется лишь какой-то определенный участок массива,если же локализовать обращение не удается, а скорость обращения к памятиявляется узким местом программы, можно попробовать использоватьразделяемую память.Основная особенность текстурной памяти – это использования КЭШа.Однако существуют дополнительные стадии конвейера (преобразованиеадресов, фильтрация, преобразование данных), которые снижают скоростьпервого обращения. Поэтому текстурную память разумно использовать сследующих случаях:

Объем данных не влезает  в shared память

Паттерн доступа хаотичный

Данные переиспользуются разными потоками

 

Особенности линейной текстурной памяти.

Линейная текстурная память не обладает никакими особыми свойствамикроме КЭШа, однако уже этого иногда достаточно для значительногоускорения работы программы. Как уже сказано выше, линейная текстурнаяпамять хранится в обычной глобальной памяти и не требует особыхфункций копирования. Для включения возможностей линейной текстурнойпамяти требуется «привязать» обычный массив в глобальной памяти кобъявленной текстуре.

 

Особенности cudaArray текстурной памяти.

В качестве основы для  такого типа памяти выступает специальныйконтейнер cudaArray, который является черным ящиком для приложений.Использование cudaArray обосновано тогда, когда мы хотим создать 2х илитрехмерную структуру, или нас важны преобразования, которые ГА можетсовершать аппаратно с исходными данными:


Информация о работе Глобальная память NVIDIA CUDA