Here is a simple code that i compile with
nvcc -deviceemu -o code -O3 code.cu --compiler-options -fno-inline -I./NVIDIA_GPU_Computing_SDK/C/common/inc -I.
// includes, system
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
// includes, project
#include <cutil.h>
__global__ void helloWorld( )
{
// Synchronize to make sure data is loaded
__syncthreads();
// printf only works in Emulation mode, you must comment out all
// printfs this when running on actual GPU.
printf("Hello World! I am a thread with BlockID: {%d, %d}, ThreadID: {%d, %d, %d}\n",
blockIdx.x, blockIdx.y, threadIdx.x, threadIdx.y, threadIdx.z);
// Synchronize to make sure that the preceding
// computation is done before loading data for
// the next iteration
__syncthreads();
}
////////////////////////////////////////////////////////////////////////////////
// Program main
////////////////////////////////////////////////////////////////////////////////
void myfunc()
{
// setup execution parameters
dim3 threads( 1, 2, 2 );
dim3 grid( 2, 2 );
// execute the kernel
helloWorld<<< grid, threads >>>( );
}
int main(int argc, char** argv)
{
CUT_DEVICE_INIT(argc, argv);
myfunc();
return EXIT_SUCCESS;
}
and i get the following output:
Hello World! I am a thread with BlockID: {0, 0}, ThreadID: {0, 0, 0}
Hello World! I am a thread with BlockID: {0, 0}, ThreadID: {0, 1, 0}
Hello World! I am a thread with BlockID: {0, 0}, ThreadID: {0, 0, 1}
Hello World! I am a thread with BlockID: {0, 0}, ThreadID: {0, 1, 1}
Hello World! I am a thread with BlockID: {1, 0}, ThreadID: {0, 0, 0}
Hello World! I am a thread with BlockID: {1, 0}, ThreadID: {0, 1, 0}
Hello World! I am a thread with BlockID: {1, 0}, ThreadID: {0, 0, 1}
Hello World! I am a thread with BlockID: {1, 0}, ThreadID: {0, 1, 1}
Hello World! I am a thread with BlockID: {0, 1}, ThreadID: {0, 0, 0}
Hello World! I am a thread with BlockID: {0, 1}, ThreadID: {0, 1, 0}
Hello World! I am a thread with BlockID: {0, 1}, ThreadID: {0, 0, 1}
Hello World! I am a thread with BlockID: {0, 1}, ThreadID: {0, 1, 1}
Hello World! I am a thread with BlockID: {1, 1}, ThreadID: {0, 0, 0}
Hello World! I am a thread with BlockID: {1, 1}, ThreadID: {0, 1, 0}
Hello World! I am a thread with BlockID: {1, 1}, ThreadID: {0, 0, 1}
Hello World! I am a thread with BlockID: {1, 1}, ThreadID: {0, 1, 1}
then i compile it again but I add the cufft library:
nvcc -deviceemu -o code -O3 code.cu --compiler-options -fno-inline -I./NVIDIA_GPU_Computing_SDK/C/common/inc -I. -lcufft
When I execute ./code, I get nothing! (!)
Can someone explain me?
Thanks.