1 #include iostream 2 #include stdio.h 3 #include " book.h " 4 5 __global__ void add( int a, int b, int * c) { 6 *c = a + b; 7 } 8 9 __global__ void kernel() { 10 printf( " tttt\n " ); 11 } 12 13 int main( void ) { 14 int c; 15 int * dev_c;
1 #include <iostream> 2 #include <stdio.h> 3 #include "book.h" 4 5 __global__ void add(int a, int b, int *c) { 6 *c = a + b; 7 } 8 9 __global__ void kernel() { 10 printf("tttt\n"); 11 } 12 13 int main(void) { 14 int c; 15 int *dev_c; 16 HANDLE_ERROR( cudaMalloc((void**)&dev_c, sizeof(int) ) ); 17 int count; 18 HANDLE_ERROR( cudaGetDeviceCount(&count) ); 19 printf("count: %d\n", count); 20 add<<<1,1>>>(2,7,dev_c); 21 HANDLE_ERROR( cudaMemcpy( &c, dev_c, sizeof(int), 22 cudaMemcpyDeviceToHost ) ); 23 printf("2 + 7 = %d\n", c); 24 cudaFree(dev_c); 25 return 0; 26 }fircuda.cu nvcc -g -G fircuda.cu
-g 表示将CPU代码(host)编译成可调式版本,-G表示将GPU代码(kernel)编译成可调式版本。
Breakpoint 2, add<<<(1,1,1),(1,1,1)>>> (a=2, b=7, c=0x7fffc7800000) at fircuda.cu:6 6 *c = a + b;
(cuda-gdb) p a
Python Exception <type ‘exceptions.AttributeError‘> ‘gdb.Type‘ object has no attribute ‘name‘:
Python Exception <type ‘exceptions.AttributeError‘> ‘gdb.Type‘ object has no attribute ‘name‘:
$1 = 2
...
(cuda-gdb) p *c
Python Exception <type ‘exceptions.AttributeError‘> ‘gdb.Type‘ object has no attribute ‘name‘: Python Exception <type ‘exceptions.AttributeError‘> ‘gdb.Type‘ object has no attribute ‘name‘: $6 = 9