Программирование на GPU - перенос узких мест - PullRequest
4 голосов
/ 10 марта 2010

Поскольку я хотел бы, чтобы мой графический процессор выполнял некоторые вычисления для меня, меня интересует тема измерения скорости загрузки и загрузки «текстур», поскольку мои «текстуры» - это данные, которые должен обрабатывать графический процессор.

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

В любом случае, есть ли такое тестовое приложение? Я имею в виду, для измерения пропускной способности основной памяти <> GPU ...

РЕДАКТИРОВАТЬ (уточнение вопроса):

Однажды появилось приложение, которое вы запустили, и оно выдало 2 числа:

  1. Скорость передачи мегабит / с между основной памятью и памятью графической карты, из основного графика TO, загрузка текстуры

  2. Скорость передачи мегабит / с между основной памятью и памятью графической карты, от графика к основному, загрузка текстуры

Я бы просто хотел снова положить на это руки.

ЕЩЕ ДРУГОЕ РЕДАКТИРОВАНИЕ (нашел что-то):

Здесь http://www.benchmarkhq.ru/english.html?/be_mm.html (поиск по TexBench) - это приложение, которое измеряет пропускную способность ОДИН СПОСОБ ...

Ответы [ 3 ]

2 голосов
/ 11 марта 2010

Чтобы измерить пропускную способность памяти хост-устройства, вы можете использовать образец bandwidthTest из CUDA SDK (скачать с сайта CUDA ).

1 голос
/ 10 марта 2010

Первое: разница между глобальной (GPU) памятью и текстурой определяется кешем. Текстуры есть, глобальной памяти - нет.

Второе: скорость передачи от хоста к устройству (GPU) одинакова как для текстур, так и для глобальной памяти.

В-третьих: скорость передачи с хоста на устройство (GPU) зависит от поколения графического процессора и определяется шиной PCI-Express и размером ваших данных.

См., Например: http://www.accelereyes.com/wiki/index.php?title=GPU_Memory_Transfer

0 голосов
/ 10 марта 2010

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

Поиск CUDA_PROFILE и как его использовать. http://www.drdobbs.com/cpp/209601096?pgno=2

Ваш вопрос немного сложен для понимания, вы хотите измерить передачу между хостом и графическим процессором (кеш текстур на самом деле не актуален чем) или чтение текстур из ядра?

...