Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern __shared__ unsigned char smem[];
- int* cache = (int*)(&smem[0])
- Illegal access to address (@global)0x100002d detected
- #include <cstdio>
- __device__
- void myPrint()
- {
- extern __shared__ unsigned char cache[];
- int* r1 = (int*)(&cache[0]);
- int* r2 = &r1[3];
- int* r3 = &r2[3];
- for(int i = 0; i < 9; i += 1)
- {
- cache[i] = i;
- }
- printf("%dn", r1[0]);
- printf("%dn", r2[0]);
- printf("%dn", r3[0]);
- }
- __global__
- void childKernel()
- {
- myPrint();
- }
- __global__
- void parentKernel()
- {
- childKernel<<<1,1, sizeof(int) * 3 * 3>>>(); // 3x3 matrix, row major
- cudaDeviceSynchronize();
- }
- int main(void)
- {
- parentKernel<<<1,1>>>();
- cudaDeviceSynchronize();
- return 0;
- }
- extern __shared__ int cache[];
Add Comment
Please, Sign In to add comment