Bạn có thể làm một cái gì đó như thế này:
__global__ void kernelSample(int *runtime)
{
// ....
clock_t start_time = clock();
//some code here
clock_t stop_time = clock();
// ....
runtime[tidx] = (int)(stop_time - start_time);
}
Mà cho số chu kỳ đồng hồ giữa hai cuộc gọi. Hãy cẩn thận một chút mặc dù, bộ đếm thời gian sẽ tràn sau một vài giây, vì vậy bạn nên chắc chắn rằng thời lượng mã giữa các cuộc gọi liên tiếp là khá ngắn. Bạn cũng nên lưu ý rằng trình biên dịch và trình biên dịch thực hiện việc sắp xếp lại lệnh để bạn có thể muốn kiểm tra xem các cuộc gọi đồng hồ không được đặt cạnh nhau trong đầu ra SASS (sử dụng cudaobjdump
để kiểm tra).
Amin, (một vài năm trước) bạn chấp nhận câu trả lời là thông tin hữu ích nhưng không trả lời câu hỏi thực tế của bạn. Bạn có phiền không chấp nhận hoặc chỉnh sửa câu hỏi để phản ánh câu trả lời có thể? – einpoklum