bkerby

cuda

Oct 4th, 2012
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. static const int N = 10;
  4.  
  5. void add ( int *a, int *b, int *c ) {
  6.     for ( int id = 0; id < N; ++id ) {
  7.         c[id] = a[id] + b[id];
  8.     }
  9. }
  10.  
  11. int main () {
  12.     int a[N], b[N], c[N];
  13.     int *dev_a, *dev_b, *dev_c;
  14.  
  15.     cudaMalloc ( &dev_a, N * sizeof(int) );
  16.     cudaMalloc ( &dev_b, N * sizeof(int) );
  17.     cudaMalloc ( &dev_c, N * sizeof(int) );
  18.  
  19.     for ( int i = 0; i < N; ++i ) {
  20.         a[i] = i;
  21.         b[i] = i * i;
  22.     }
  23.  
  24.     cudaMemcpy( dev_a, a, N * sizeof(int), cudaMemcpyKind::cudaMemcpyHostToDevice );
  25.     cudaMemcpy( dev_b, b, N * sizeof(int), cudaMemcpyKind::cudaMemcpyHostToDevice );
  26.     add <<< 1,1 >>> ( dev_a, dev_b, dev_c );
  27.  
  28.     cudaMemcpy( dev_c, c, N * sizeof(int), cudaMemcpyKind::cudaMemcpyDeviceToHost );
  29.  
  30.     cudaFree( dev_a );
  31.     cudaFree( dev_b );
  32.     cudaFree( dev_c );
  33.  
  34.     for ( int i = 0; i < N; ++i ) {
  35.         std::cout << a[i] << " + " << b[i] << " = " << c[i] << std::endl;
  36.     }
  37.  
  38.     return 0;
  39. }
  40.  
  41.  
  42. -----
  43.  
  44. $> nvcc add_vector.cu -o add_vector
  45. add_vector.cu(24): error: name followed by "::" must be a class or namespace name
  46.  
  47. add_vector.cu(25): error: name followed by "::" must be a class or namespace name
  48.  
  49. add_vector.cu(26): error: a host function call cannot be configured
  50.  
  51. add_vector.cu(28): error: name followed by "::" must be a class or namespace name
  52.  
  53. 4 errors detected in the compilation of "/tmp/tmpxft_000046f1_00000000-4_add_vector.cpp1.ii".
Advertisement
Add Comment
Please, Sign In to add comment