BOAST 1.0.9 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/BOAST.gemspec +1 -1
- data/lib/BOAST.rb +5 -1
- data/lib/BOAST/Language/Algorithm.rb +104 -22
- data/lib/BOAST/Language/Annotation.rb +55 -0
- data/lib/BOAST/Language/Arithmetic.rb +44 -10
- data/lib/BOAST/Language/Case.rb +89 -52
- data/lib/BOAST/Language/CodeBlock.rb +17 -0
- data/lib/BOAST/Language/Comment.rb +38 -0
- data/lib/BOAST/Language/ControlStructure.rb +7 -0
- data/lib/BOAST/Language/Error.rb +7 -0
- data/lib/BOAST/Language/Expression.rb +4 -5
- data/lib/BOAST/Language/For.rb +59 -27
- data/lib/BOAST/Language/If.rb +12 -17
- data/lib/BOAST/Language/Index.rb +5 -5
- data/lib/BOAST/Language/Intrinsics.rb +38 -32
- data/lib/BOAST/Language/OpenMP.rb +1 -1
- data/lib/BOAST/Language/Operators.rb +208 -53
- data/lib/BOAST/Language/Pragma.rb +3 -3
- data/lib/BOAST/Language/Print.rb +3 -3
- data/lib/BOAST/Language/Procedure.rb +15 -8
- data/lib/BOAST/Language/Variable.rb +45 -87
- data/lib/BOAST/Language/While.rb +3 -0
- data/lib/BOAST/Optimization/Optimization.rb +241 -0
- metadata +7 -4
- data/lib/BOAST/Language/Optimization.rb +0 -74
- data/lib/BOAST/Language/Vector.rb +0 -6
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: BOAST
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brice Videau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: narray
|
@@ -196,13 +196,17 @@ files:
|
|
196
196
|
- README.md
|
197
197
|
- lib/BOAST.rb
|
198
198
|
- lib/BOAST/Language/Algorithm.rb
|
199
|
+
- lib/BOAST/Language/Annotation.rb
|
199
200
|
- lib/BOAST/Language/Architectures.rb
|
200
201
|
- lib/BOAST/Language/Arithmetic.rb
|
201
202
|
- lib/BOAST/Language/BOAST_OpenCL.rb
|
202
203
|
- lib/BOAST/Language/CPUID_by_name.rb
|
203
204
|
- lib/BOAST/Language/Case.rb
|
205
|
+
- lib/BOAST/Language/CodeBlock.rb
|
206
|
+
- lib/BOAST/Language/Comment.rb
|
204
207
|
- lib/BOAST/Language/ControlStructure.rb
|
205
208
|
- lib/BOAST/Language/DataTypes.rb
|
209
|
+
- lib/BOAST/Language/Error.rb
|
206
210
|
- lib/BOAST/Language/Expression.rb
|
207
211
|
- lib/BOAST/Language/For.rb
|
208
212
|
- lib/BOAST/Language/FuncCall.rb
|
@@ -213,7 +217,6 @@ files:
|
|
213
217
|
- lib/BOAST/Language/Intrinsics.rb
|
214
218
|
- lib/BOAST/Language/OpenMP.rb
|
215
219
|
- lib/BOAST/Language/Operators.rb
|
216
|
-
- lib/BOAST/Language/Optimization.rb
|
217
220
|
- lib/BOAST/Language/Parens.rb
|
218
221
|
- lib/BOAST/Language/Pragma.rb
|
219
222
|
- lib/BOAST/Language/Print.rb
|
@@ -222,8 +225,8 @@ files:
|
|
222
225
|
- lib/BOAST/Language/State.rb
|
223
226
|
- lib/BOAST/Language/Transitions.rb
|
224
227
|
- lib/BOAST/Language/Variable.rb
|
225
|
-
- lib/BOAST/Language/Vector.rb
|
226
228
|
- lib/BOAST/Language/While.rb
|
229
|
+
- lib/BOAST/Optimization/Optimization.rb
|
227
230
|
- lib/BOAST/Runtime/CKernel.rb
|
228
231
|
- lib/BOAST/Runtime/CRuntime.rb
|
229
232
|
- lib/BOAST/Runtime/CUDARuntime.rb
|
@@ -1,74 +0,0 @@
|
|
1
|
-
module BOAST
|
2
|
-
|
3
|
-
class OptimizationParameter
|
4
|
-
attr_reader :name
|
5
|
-
attr_reader :values
|
6
|
-
def initialize( name, values )
|
7
|
-
@name = name
|
8
|
-
@values = values
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class BooleanParameter < OptimizationParameter
|
13
|
-
def initialize( name )
|
14
|
-
super( name, [false, true] )
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
OP = OptimizationParameter
|
19
|
-
BP = BooleanParameter
|
20
|
-
|
21
|
-
class GenericOptimization
|
22
|
-
|
23
|
-
attr_accessor :repeat
|
24
|
-
attr_reader :parameters
|
25
|
-
|
26
|
-
|
27
|
-
def size
|
28
|
-
return @parameters.size
|
29
|
-
end
|
30
|
-
|
31
|
-
def points
|
32
|
-
pts=[]
|
33
|
-
params2 = @parameters.dup
|
34
|
-
param = params2.shift
|
35
|
-
optim2 = GenericOptimization::new(*params2)
|
36
|
-
param.values.each{ |val|
|
37
|
-
pts.push({param.name.to_sym => val})
|
38
|
-
}
|
39
|
-
if optim2.size == 0 then
|
40
|
-
return pts
|
41
|
-
else
|
42
|
-
pts3=[]
|
43
|
-
pts.each{ |p1|
|
44
|
-
optim2.each { |p2|
|
45
|
-
pts3.push(p1.dup.update(p2))
|
46
|
-
}
|
47
|
-
}
|
48
|
-
return pts3
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def each(&block)
|
53
|
-
return self.points.each(&block)
|
54
|
-
end
|
55
|
-
|
56
|
-
def each_random(&block)
|
57
|
-
return self.points.shuffle.each(&block)
|
58
|
-
end
|
59
|
-
|
60
|
-
def initialize( *parameters )
|
61
|
-
if parameters.length == 1 and parameters[0].is_a?(Hash) then
|
62
|
-
@parameters = []
|
63
|
-
parameters[0].each { |key, value|
|
64
|
-
@parameters.push( OptimizationParameter::new(key, value) )
|
65
|
-
}
|
66
|
-
else
|
67
|
-
@parameters = parameters
|
68
|
-
end
|
69
|
-
@repeat = 3
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|