1 package net.bmahe.genetics4j.gpu.spec.fitness.multistage;
2
3 import java.util.Map;
4
5 import org.immutables.value.Value;
6
7 import net.bmahe.genetics4j.gpu.spec.fitness.cldata.DataLoader;
8 import net.bmahe.genetics4j.gpu.spec.fitness.cldata.LocalMemoryAllocator;
9 import net.bmahe.genetics4j.gpu.spec.fitness.cldata.ResultAllocator;
10 import net.bmahe.genetics4j.gpu.spec.fitness.kernelcontext.KernelExecutionContextComputer;
11
12
13
14
15
16 @Value.Immutable
17 public interface StageDescriptor {
18
19
20
21
22
23
24 String kernelName();
25
26
27
28
29
30
31 KernelExecutionContextComputer kernelExecutionContextComputer();
32
33
34
35
36
37
38 Map<Integer, DataLoader> dataLoaders();
39
40
41
42
43
44
45 Map<Integer, LocalMemoryAllocator> localMemoryAllocators();
46
47
48
49
50
51
52 Map<Integer, ResultAllocator> resultAllocators();
53
54
55
56
57
58
59
60 Map<Integer, Integer> reusePreviousResultAsArguments();
61
62
63
64
65
66
67
68 Map<Integer, Integer> reusePreviousResultSizeAsArguments();
69
70
71
72
73 Map<String, Integer> mapStaticDataAsArgument();
74
75 static class Builder extends ImmutableStageDescriptor.Builder {
76 }
77
78 static Builder builder() {
79 return new Builder();
80 }
81 }