source: CIVL/examples/translation/openclversion2/README@ 4540352

1.23 2.0 main test-branch
Last change on this file since 4540352 was 4540352, checked in by Jacob Trieu <fuufusuu@…>, 12 years ago

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

  • Property mode set to 100644
File size: 1.4 KB
Line 
1After a sudden realization, I find that I need almost none of the openCL stuff
2The programs can be broken into these very simple parts:
31. Get the number of devices, give them ids
4 Related to clGetDevices
52. Prepare to make threads threads using device ids as "ranks"
6 based either on array index or their device id
7 Give them variables from __global or __local, remember that local is default
8 global means that each one gets from a pointer to the same variable
9 Use the kernel text for the above
10*
11
123. Get the paramater inputs from what would be from clSetKernelArg, possibly clEnqueueWriteBuffer
13
144. Spawn processes in the same order as clEnqueueNDRangeKernel
15 Stick data in the arrays
16
175. Store output somewhere else
18 May come from arrays
19
206. Possibly free
21
22Considerations:
23 Make a struct for the array that holds:
24 Rank
25 Any variables that go in
26
27Figure out something to do with local variables
28
29How to make sure that none of the numbers are
30
31Should the user be expected to change variables that end up too big for civl?
32
33Remove mentions of "unsigned" as they are not supported yet
34Same for vector types
35
36Basic idea of conversion program:
37Kernel - After getting input on where the kernel is (or not):
38 Get all of the parameters, they will become variables and part of a struct
39 put all of the rest in, add device_id as a parameter, convert get_global_id(0) to something else
40
41
42
Note: See TracBrowser for help on using the repository browser.