Guest User

Untitled

a guest
Jan 16th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. extern __shared__ unsigned char smem[];
  2. int* cache = (int*)(&smem[0])
  3.  
  4. Illegal access to address (@global)0x100002d detected
  5.  
  6. #include <cstdio>
  7.  
  8. __device__
  9. void myPrint()
  10. {
  11. extern __shared__ unsigned char cache[];
  12. int* r1 = (int*)(&cache[0]);
  13. int* r2 = &r1[3];
  14. int* r3 = &r2[3];
  15.  
  16. for(int i = 0; i < 9; i += 1)
  17. {
  18. cache[i] = i;
  19. }
  20.  
  21. printf("%dn", r1[0]);
  22. printf("%dn", r2[0]);
  23. printf("%dn", r3[0]);
  24. }
  25.  
  26. __global__
  27. void childKernel()
  28. {
  29. myPrint();
  30. }
  31.  
  32. __global__
  33. void parentKernel()
  34. {
  35. childKernel<<<1,1, sizeof(int) * 3 * 3>>>(); // 3x3 matrix, row major
  36. cudaDeviceSynchronize();
  37. }
  38.  
  39. int main(void)
  40. {
  41.  
  42. parentKernel<<<1,1>>>();
  43. cudaDeviceSynchronize();
  44.  
  45. return 0;
  46. }
  47.  
  48. extern __shared__ int cache[];
Add Comment
Please, Sign In to add comment