2016-09-19 7 views
0

Я выполняю параллельное ядро ​​на графическом процессоре с использованием OpenCL и JOCL.выполнение и распределение времени в gpu

Я хочу знать:

1/Есть ли какие-либо функции, чтобы знать размер ядра в срок работы-элементов и рабочих групп, и как она выполняется в моей платформе GPU Nvidia?

2/есть ли возможность узнать время выполнения ядра без передачи данных GPU/CPU, потому что? Я использовал java-инструменты System.currentTimeMillis(); перед запуском ядра и после, но он включает время передачи данных.

3/более точно есть ли возможность узнать время выполнения каждого ядра графического процессора?

+0

Существует специальный пример, показывающий, как получить время выполнения ядер с использованием событий, по адресу http://jocl.org/samples/JOCLEventSample.java – Marco13

+0

Спасибо, полезно –

ответ

0

1) В ядре

get_global_size(0) gives number of items in x dimension 
get_global_size(1) gives number of item arrays in y dimension 
get_global_size(2) gives number of item matrices in z dimension 

общее число Умножение из них, но если ядро ​​запускается только 1-тусклым, то только первая функция достаточно.

get_local_size(0 or 1 or 2); 

дает то же самое для предметов в группах, а не для всех предметов.

get_num_groups (0 or 1 or 2) 

похоже, но дает количество групп в группах.

Количество измерений взяты из

int dims=get_work_dim() 

2) событий на основе запросов производительности от кода хоста:

http://www.jocl.org/cloth/docs/doc-utils/org/jocl/utils/Events.html

computeExecutionTimeMs (org.jocl.cl_event событий) Compute время выполнения для данного события, в миллисекундах.

1), 2) и 3) профайлер

может показать все, кроме «каждое ядро» (но дает информацию о «переулки», которые не могут сопоставляться же ядра во все времена, но вы можете увидеть, что одиночный нить сделал) часть. https://developer.nvidia.com/nvidia-nsight-visual-studio-edition Визуальные таблицы и таблицы дают достаточно информации о узких местах и ​​горячих точках ядра

+0

Спасибо, у меня есть вопрос о профилировщике, могу ли я использовать его с eclipse ?? В ссылке они цитировали только визуальную студию. –

+0

Если это работает как «привязанное» к процессу, тогда есть возможность присоединить его к jvm или тому, что связано с процессом выполнения jar. Возможно, что-то из командной строки, запущенной из visual studio, тоже может работать. –

 Смежные вопросы

  • Нет связанных вопросов^_^