Комментировать

- файл solid.cu : #include

- файл solid.cu :

  1. #include <iostream>
  2. using namespace std;
  3. #include "clock.h"
  4.  
  5. #include "clock.c"  // реализация clock_cycles()
  6.  
  7. // Kernel definition
  8. __global__ void VecAdd( void ) {
  9.     return;
  10. }
  11.  
  12. int main() {
  13.     int N = 100;
  14.     uint64_t t1, t2;
  15.     t1 = clock_cycles();
  16.     // Kernel invocation with N threads
  17.     VecAdd<<<1, N>>>();
  18.     t2 = clock_cycles();
  19.     cout << "execution time was " << ( t2 - t1 ) << " cycles" << endl;
  20. }

Он текстуально (по #include) включает файл C-кода (который должен компилироваться как C++ !) clock.c :

  1. #include "clock.h"
  2.  
  3. uint64_t clock_cycles( void ) {
  4.     uint64_t x;
  5.     asm volatile ( "rdtsc" : "=A" (x) );
  6.     return x;
  7. }