source: CIVL/examples/translation/openclversion2.15/arrKernels.cvl@ 6fce7853

1.23 2.0 acw/focus-triggers main test-branch
Last change on this file since 6fce7853 was 6fce7853, checked in by Jacob Trieu <fuufusuu@…>, 12 years ago

example of kernels

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@1372 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.5 KB
Line 
1
2#include "cl.cvl"
3#include <stdio.h>
4#include <stdlib.h>
5#include <string.h>
6#include <civlc.h>
7
8typedef struct
9{
10 void * param[2];
11}args;
12
13cl_kernel clCreateKernel(args * argument, char * function)
14{
15 cl_kernel kernel;
16 kernel.arguments = argument;
17 kernel.method = function;
18
19 return kernel;
20}
21
22void clReleaseKernel(cl_kernel kernel)
23{
24 for (int i = 0; i < 2; i++)
25 {
26 free(((args*)kernel.arguments)->param[i]);
27 }
28}
29
30int main(int argc, char** argv)
31{
32 args * arguments;
33 arguments = (args*)malloc(sizeof(args));
34
35 int star = 1;
36
37 int * one = (int*)malloc(sizeof(int));
38 memcpy(one, &star, sizeof(int));
39
40 cl_kernel kernel;
41 kernel = clCreateKernel(arguments, "nothing");
42
43 ((args*)kernel.arguments)->param[0] = (int*)malloc(sizeof(int));
44 memcpy(((args*)kernel.arguments)->param[0], &star, sizeof(int));
45
46 ((args*)kernel.arguments)->param[1] = one;
47
48 clReleaseKernel(kernel);
49
50 printf("single kernel works\n");
51
52 //cl_kernel *kernels = (cl_kernel*)malloc(3 * sizeof(cl_kernel));
53 //cl_kernel kernels[3];
54
55 //memcpy(one, &star, sizeof(int));
56 //printf("%d, %d", star, *one);
57
58 //((args*)(kernels[0].arguments))->param[0] = (int*)malloc(sizeof(int));
59 //memcpy(((args*)(kernels[0].arguments))->param[0], &star, sizeof(int));
60
61 /*
62 for (int i = 0; i < 3; i++)
63 {
64 ((args*)kernels[i].arguments)->param[0] = (int*)malloc(sizeof(int));
65 memcpy(((args*)kernels[i].arguments)->param[0], &star, sizeof(int));
66
67 ((args*)kernels[i].arguments)->param[1] = one;
68 }
69 */
70
71
72 free(arguments);
73 return 0;
74}
75
76
Note: See TracBrowser for help on using the repository browser.