updated CUDA hybridAPI and added a CUDA hello example
[charm.git] / examples / charm++ / cuda / hello / helloCUDA.cu
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include "wr.h"
4
5 extern workRequestQueue* wrQueue; 
6 extern void kernelReturn(); 
7
8 __global__ void helloKernel() { 
9
10 }
11
12 void kernelSetup() {
13   workRequest *wr; 
14   wr = (workRequest*) malloc(sizeof(workRequest)); 
15
16   wr->dimGrid.x = 1; 
17   wr->dimBlock.x = 1; 
18   wr->smemSize = 0;
19   
20   wr->readWriteDevicePtr = NULL;
21   wr->readWriteHostPtr = NULL; 
22   wr->readWriteLen = 0; 
23
24   wr->readOnlyDevicePtr = NULL;
25   wr->readOnlyHostPtr = NULL;
26   wr->readOnlyLen = 0; 
27
28   wr->writeOnlyDevicePtr = NULL;
29   wr->writeOnlyHostPtr = NULL;
30   wr->writeOnlyLen = 0; 
31
32   wr->callbackFn = kernelReturn; 
33
34   wr->id = 0; 
35
36   wr->executing = 0; 
37
38   enqueue(wrQueue, wr); 
39
40 }
41
42 void kernelSelect(workRequest *wr) {
43   printf("inside kernelSelect\n"); 
44   switch (wr->id) {
45   case 0: 
46     printf("calling kernel\n"); 
47     helloKernel<<<wr->dimGrid,wr->dimBlock,wr->smemSize>>>();
48     break;
49   default:
50     printf("error: id %d not valid\n", wr->id); 
51     break; 
52   }
53 }