Подскажите пожалуйста правильное понимание того что возвращает функция clock() в Cuda.
Хотя бы на примере из SDK Cuda.
- clock_t * dtimer = NULL;
- clock_t timer[NUM_BLOCKS * 2];
- timedReduction<<<NUM_BLOCKS, NUM_THREADS, sizeof(float) * 2 * NUM_THREADS>>>(dinput, doutput, dtimer);
- clock_t minStart = timer[0];
- clock_t maxEnd = timer[NUM_BLOCKS];
- for (int i = 1; i < NUM_BLOCKS; i++)
- {
- minStart = timer[i] < minStart ? timer[i] : minStart;
- maxEnd = timer[NUM_BLOCKS+i] > maxEnd ? timer[NUM_BLOCKS+i] : maxEnd;
- }
Допустим, что мне скажет разница между maxEnd и minStart ?
P.S. Хелп я читал, но в английском честно сказать слаб :)
Comments
clock() возвращает значение счетчика тактов того мультипроцессора, на котором работает поток.
А в примере из SDK разница между maxEnd и minStart дает время работы всего kernel-а в целом, т.е. после прохода по циклу for в строках 6-10 в minStart содержится значение такта, в котором начал работать первый по времени запуска блок, а в maxEnd - значение такта, в котором закончил работать последний повремени завершения блок.