1 // Attention : Extension .cu
\r
4 #include "cudaTools.h"
\r
10 /*----------------------------------------------------------------------*\
\r
12 \*---------------------------------------------------------------------*/
\r
14 /*--------------------------------------*\
\r
16 \*-------------------------------------*/
\r
18 /*--------------------------------------*\
\r
20 \*-------------------------------------*/
\r
22 __host__ bool helloCuda(void); //__host__ facultatif
\r
24 /*--------------------------------------*\
\r
26 \*-------------------------------------*/
\r
28 __global__ static void kernelHello(void);
\r
29 __device__ static void doSomethingHello(void);
\r
31 /*----------------------------------------------------------------------*\
\r
32 |* Implementation *|
\r
33 \*---------------------------------------------------------------------*/
\r
35 /*--------------------------------------*\
\r
37 \*-------------------------------------*/
\r
40 * resumer commande cuda:
\r
41 * http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/index.html
\r
43 __host__ bool helloCuda(void) //__host__ facultatif
\r
45 cout << endl << "[Hello Cuda 1]" << endl;
\r
47 // Specifier nb thread : ici 1 thread au total !
\r
48 dim3 dg = dim3(1, 1, 1);
\r
49 dim3 db = dim3(1, 1, 1);
\r
52 //Device::print(dg, db);
\r
53 Device::checkDimError(dg,db);
\r
55 kernelHello<<<dg,db>>>(); // asynchrone !!
\r
56 Device::checkKernelError("kernelHello"); // facultatif
\r
61 /*--------------------------------------*\
\r
63 \*-------------------------------------*/
\r
69 __global__ void kernelHello(void)
\r
75 * Can be call only by device
\r
76 * inliner by nvcc (nvidia compiler)
\r
78 __device__ void doSomethingHello(void)
\r
83 /*----------------------------------------------------------------------*\
\r
85 \*---------------------------------------------------------------------*/
\r