Программирование GPU-узкие места передачи


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

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

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

EDIT (уточнение вопроса):

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

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

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

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

Еще одно редактирование (кое-что найдено):

Здесь http://www.benchmarkhq.ru/english.html?/be_mm.html (search for TexBench) - это приложение, которое измеряет пропускную способность в одну сторону...

3 4

3 ответа:

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

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

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

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

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

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

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

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