@Pushunter

Разница в подсчете времени?

Здравствуйте, подскажите пожалуйста, в чем разница между:
clock_t start1 = clock();
...
clock_t end1 = clock();
	double seconds1 = (double)(end1 - start1) / CLOCKS_PER_SEC;
	cout << "Time:  " << seconds1 << " sec" << endl;

и
cudaEvent_t start, stop;
	cudaEventCreate(&start);
	cudaEventCreate(&stop);
	cudaEventRecord(start, 0);
...
        cudaThreadSynchronize();
	cudaEventRecord(stop, 0);
	cudaEventSynchronize(stop);
	float elapsedtime;
	cudaEventElapsedTime(&elapsedtime, start, stop);
	printf("Time = %3.1f ms\n", elapsedtime);
	cudaEventDestroy(start);
	cudaEventDestroy(stop);

Понимаю, что один для cuda, а второй на CPU, но в чем их принципиальное различие. Почему один и тот же фрагмент кода они меряют по-разному( разное время показывают?).
Заранее спасибо за ответ, и простите новичку, такие глупые вопросы...
  • Вопрос задан
  • 22 просмотра
Решения вопроса 1
tumbler
@tumbler
бекенд-разработчик на python
Принципиально разница в том, что интерфейс cuda асинхронный, т.е. время между start/stop будет менять скорость отправки кода на GPU.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы