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

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

more testing

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

  • Property mode set to 100644
File size: 2.5 KB
RevLine 
[4b31bcf]1 /*
2 cl_kernel kernel;
3 kernel = clCreateKernel(arguments, "nothing");
4
5 ((args*)kernel.arguments)->param[0] = (int*)malloc(sizeof(int));
6 memcpy(((args*)kernel.arguments)->param[0], &star, sizeof(int));
7
8 ((args*)kernel.arguments)->param[1] = one;
9
10 clReleaseKernel(kernel);
11
12 printf("single kernel works\n");
13 */
14
[6fce7853]15
16#include "cl.cvl"
17#include <stdio.h>
18#include <stdlib.h>
19#include <string.h>
20#include <civlc.h>
21
22typedef struct
23{
24 void * param[2];
25}args;
26
27cl_kernel clCreateKernel(args * argument, char * function)
28{
29 cl_kernel kernel;
30 kernel.arguments = argument;
31 kernel.method = function;
32
33 return kernel;
34}
35
36void clReleaseKernel(cl_kernel kernel)
37{
38 for (int i = 0; i < 2; i++)
39 {
40 free(((args*)kernel.arguments)->param[i]);
41 }
42}
43
44int main(int argc, char** argv)
45{
46 args * arguments;
47 arguments = (args*)malloc(sizeof(args));
48
49 int star = 1;
50
51 int * one = (int*)malloc(sizeof(int));
52 memcpy(one, &star, sizeof(int));
[4b31bcf]53
[6fce7853]54 //cl_kernel *kernels = (cl_kernel*)malloc(3 * sizeof(cl_kernel));
[193af13]55 cl_kernel kernels[3];
[6fce7853]56
[4b31bcf]57 printf("%d, %d\n", star, *one);
[193af13]58
[4b31bcf]59 for (int i = 0; i < 3; i++)
60 {
61 kernels[i] = clCreateKernel(arguments, "eh");
62 }
[6fce7853]63
64 for (int i = 0; i < 3; i++)
65 {
[b144b24]66 printf("starts here\n");
67 ((args*)kernels[i].arguments)->param[0] = (int*)malloc(sizeof(int));
68 printf("malloc works\n");
69 memcpy(((args*)kernels[i].arguments)->param[0], &star, sizeof(int));
70
71 printf("I am kernel of index %d, with a value of %d\n", i, ((args*)kernels[i].arguments)->param[0]);
72
[4b31bcf]73 //((args*)kernels[i].arguments)->param[1] = one;
[6fce7853]74 }
[193af13]75
76 printf("assigned properly\n");
[4b31bcf]77 /*
[193af13]78 for (int i = 0; i < 3; i++)
79 {
[b144b24]80 //clReleaseKernel(kernels[i]);
[193af13]81 }
[4b31bcf]82 */
[b144b24]83
84 for (int i = 0; i < 3; i++)
85 {
86 free(((args*)kernels[i].arguments)->param[0]);
87 }
[4b31bcf]88 //((args*)kernels[0].arguments)->param[1] = one;
89 //free(((args*)kernels[0].arguments)->param[1]);
90
[b144b24]91 //((args*)kernels[0].arguments)->param[0] = (int*)malloc(sizeof(int));
92 //memcpy(((args*)kernels[0].arguments)->param[0], &star, sizeof(int));
93 //free(((args*)kernels[0].arguments)->param[0]);
[4b31bcf]94
95//
96
[b144b24]97 //((args*)kernels[1].arguments)->param[0] = (int*)malloc(sizeof(int));
98 //memcpy(((args*)kernels[1].arguments)->param[0], &star, sizeof(int));
[4b31bcf]99
100
[b144b24]101 //free(((args*)kernels[1].arguments)->param[0]);
[4b31bcf]102 //free(((args*)kernels[1].arguments)->param[1]);
103
104 //free(((args*)kernels[2].arguments)->param[0]);
105 //free(((args*)kernels[2].arguments)->param[1]);
[6fce7853]106
107
[4b31bcf]108 free(one);
[6fce7853]109 free(arguments);
110 return 0;
111}
112
113
Note: See TracBrowser for help on using the repository browser.