BOAST 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/BOAST.gemspec +2 -2
- data/lib/BOAST.rb +1 -0
- data/lib/BOAST/Language/Algorithm.rb +68 -30
- data/lib/BOAST/Language/Annotation.rb +1 -0
- data/lib/BOAST/Language/Architectures.rb +1 -0
- data/lib/BOAST/Language/Arithmetic.rb +15 -9
- data/lib/BOAST/Language/BOAST_OpenCL.rb +94 -87
- data/lib/BOAST/Language/CPUID_by_name.rb +1 -0
- data/lib/BOAST/Language/Case.rb +6 -0
- data/lib/BOAST/Language/CodeBlock.rb +1 -0
- data/lib/BOAST/Language/Comment.rb +14 -11
- data/lib/BOAST/Language/Config.rb +23 -15
- data/lib/BOAST/Language/ControlStructure.rb +10 -2
- data/lib/BOAST/Language/DataTypes.rb +23 -15
- data/lib/BOAST/Language/Expression.rb +3 -0
- data/lib/BOAST/Language/For.rb +31 -26
- data/lib/BOAST/Language/FuncCall.rb +7 -0
- data/lib/BOAST/Language/Functors.rb +56 -19
- data/lib/BOAST/Language/If.rb +3 -0
- data/lib/BOAST/Language/Index.rb +11 -9
- data/lib/BOAST/Language/Intrinsics.rb +2 -0
- data/lib/BOAST/Language/OpenMP.rb +57 -40
- data/lib/BOAST/Language/Operators.rb +27 -19
- data/lib/BOAST/Language/Pragma.rb +1 -0
- data/lib/BOAST/Language/Print.rb +3 -0
- data/lib/BOAST/Language/Procedure.rb +81 -76
- data/lib/BOAST/Language/Slice.rb +16 -14
- data/lib/BOAST/Language/State.rb +126 -55
- data/lib/BOAST/Language/Transitions.rb +26 -26
- data/lib/BOAST/Language/Variable.rb +89 -58
- data/lib/BOAST/Language/While.rb +3 -0
- data/lib/BOAST/Runtime/AffinityProbe.rb +65 -0
- data/lib/BOAST/Runtime/CKernel.rb +44 -1
- data/lib/BOAST/Runtime/CRuntime.rb +3 -0
- data/lib/BOAST/Runtime/CUDARuntime.rb +3 -0
- data/lib/BOAST/Runtime/CompiledRuntime.rb +4 -0
- data/lib/BOAST/Runtime/Compilers.rb +6 -5
- data/lib/BOAST/Runtime/Config.rb +1 -1
- data/lib/BOAST/Runtime/FFIRuntime.rb +3 -0
- data/lib/BOAST/Runtime/FORTRANRuntime.rb +3 -0
- data/lib/BOAST/Runtime/MPPARuntime.rb +2 -0
- data/lib/BOAST/Runtime/NonRegression.rb +5 -3
- data/lib/BOAST/Runtime/OpenCLRuntime.rb +7 -10
- data/lib/BOAST/Runtime/Probe.rb +2 -0
- metadata +7 -6
@@ -34,6 +34,8 @@ module BOAST
|
|
34
34
|
attr_accessor :binary
|
35
35
|
attr_accessor :source
|
36
36
|
|
37
|
+
private
|
38
|
+
|
37
39
|
@@extensions = {
|
38
40
|
C => ".c",
|
39
41
|
CUDA => ".cu",
|
@@ -391,6 +393,8 @@ EOF
|
|
391
393
|
}
|
392
394
|
end
|
393
395
|
|
396
|
+
public
|
397
|
+
|
394
398
|
def build(options={})
|
395
399
|
compiler_options = BOAST::get_compiler_options
|
396
400
|
compiler_options.update(options)
|
@@ -5,6 +5,7 @@ require 'os'
|
|
5
5
|
|
6
6
|
module BOAST
|
7
7
|
|
8
|
+
# @private
|
8
9
|
module Compilers
|
9
10
|
include Rake::DSL
|
10
11
|
|
@@ -51,7 +52,7 @@ module BOAST
|
|
51
52
|
cflags += " -DHAVE_NARRAY_H" if narray_path
|
52
53
|
cflags += " -I/usr/local/k1tools/include" if @architecture == MPPA
|
53
54
|
objext = RbConfig::CONFIG["OBJEXT"]
|
54
|
-
if options[:openmp] and @lang == C and not disable_openmp then
|
55
|
+
if (options[:openmp] or options[:OPENMP]) and @lang == C and not disable_openmp then
|
55
56
|
openmp_cflags = get_openmp_flags(c_compiler)
|
56
57
|
raise "unkwown openmp flags for: #{c_compiler}" if not openmp_cflags
|
57
58
|
cflags += " #{openmp_cflags}"
|
@@ -79,7 +80,7 @@ module BOAST
|
|
79
80
|
cxx_compiler = options[:CXX]
|
80
81
|
cxxflags = options[:CXXFLAGS]
|
81
82
|
cxxflags += " -fPIC #{includes}"
|
82
|
-
if options[:openmp] and @lang == C and not disable_openmp then
|
83
|
+
if (options[:openmp] or options[:OPENMP]) and @lang == C and not disable_openmp then
|
83
84
|
openmp_cxxflags = get_openmp_flags(cxx_compiler)
|
84
85
|
raise "unkwown openmp flags for: #{cxx_compiler}" if not openmp_cxxflags
|
85
86
|
cxxflags += " #{openmp_cxxflags}"
|
@@ -97,7 +98,7 @@ module BOAST
|
|
97
98
|
fcflags += " -march=#{get_model}"
|
98
99
|
fcflags += " -fPIC"
|
99
100
|
fcflags += " -fno-second-underscore" if f_compiler == 'g95'
|
100
|
-
if options[:openmp] and @lang == FORTRAN and not disable_openmp then
|
101
|
+
if (options[:openmp] or options[:OPENMP]) and @lang == FORTRAN and not disable_openmp then
|
101
102
|
openmp_fcflags = get_openmp_flags(f_compiler)
|
102
103
|
raise "unkwown openmp flags for: #{f_compiler}" if not openmp_fcflags
|
103
104
|
fcflags += " #{openmp_fcflags}"
|
@@ -152,7 +153,7 @@ module BOAST
|
|
152
153
|
c_compiler = "cc" if not c_compiler
|
153
154
|
linker = options[:LD]
|
154
155
|
linker = c_compiler if not linker
|
155
|
-
if options[:openmp] and not disable_openmp then
|
156
|
+
if (options[:openmp] or options[:OPENMP]) and not disable_openmp then
|
156
157
|
openmp_ldflags = get_openmp_flags(linker)
|
157
158
|
raise "unknown openmp flags for: #{linker}" if not openmp_ldflags
|
158
159
|
ldflags += " #{openmp_ldflags}"
|
@@ -171,7 +172,7 @@ module BOAST
|
|
171
172
|
|
172
173
|
def setup_compilers(options = {})
|
173
174
|
Rake::Task::clear
|
174
|
-
verbose = options[:
|
175
|
+
verbose = options[:VERBOSE]
|
175
176
|
verbose = get_verbose if not verbose
|
176
177
|
Rake::verbose(verbose)
|
177
178
|
Rake::FileUtilsExt.verbose_flag=verbose
|
data/lib/BOAST/Runtime/Config.rb
CHANGED
@@ -2,11 +2,11 @@ module BOAST
|
|
2
2
|
|
3
3
|
class CKernel
|
4
4
|
|
5
|
-
def load_ref_inputs(path = "", suffix = ".in" )
|
5
|
+
def load_ref_inputs(path = ".", suffix = ".in" )
|
6
6
|
return load_ref_files( path, suffix, :in )
|
7
7
|
end
|
8
8
|
|
9
|
-
def load_ref_outputs(path = "", suffix = ".out" )
|
9
|
+
def load_ref_outputs(path = ".", suffix = ".out" )
|
10
10
|
return load_ref_files( path, suffix, :out )
|
11
11
|
end
|
12
12
|
|
@@ -32,6 +32,8 @@ module BOAST
|
|
32
32
|
return res
|
33
33
|
end
|
34
34
|
|
35
|
+
private
|
36
|
+
|
35
37
|
def get_array_type(param)
|
36
38
|
if param.type.class == Real then
|
37
39
|
case param.type.size
|
@@ -130,7 +132,7 @@ module BOAST
|
|
130
132
|
return res
|
131
133
|
end
|
132
134
|
|
133
|
-
def load_ref_files( path
|
135
|
+
def load_ref_files( path, suffix, intent )
|
134
136
|
proc_path = path + "/#{@procedure.name}/"
|
135
137
|
res_h = {}
|
136
138
|
begin
|
@@ -1,4 +1,6 @@
|
|
1
1
|
module BOAST
|
2
|
+
|
3
|
+
# @private
|
2
4
|
module OpenCLRuntime
|
3
5
|
|
4
6
|
attr_reader :context
|
@@ -6,11 +8,7 @@ module BOAST
|
|
6
8
|
|
7
9
|
def select_cl_platforms(options)
|
8
10
|
platforms = OpenCL::get_platforms
|
9
|
-
if options[:
|
10
|
-
platforms.select!{ |p|
|
11
|
-
p.vendor.match(options[:platform_vendor])
|
12
|
-
}
|
13
|
-
elsif options[:CLVENDOR] then
|
11
|
+
if options[:CLVENDOR] then
|
14
12
|
platforms.select!{ |p|
|
15
13
|
p.vendor.match(options[:CLVENDOR])
|
16
14
|
}
|
@@ -30,12 +28,11 @@ module BOAST
|
|
30
28
|
devices = context.devices
|
31
29
|
else
|
32
30
|
platforms = select_cl_platforms(options)
|
33
|
-
type = options[:
|
31
|
+
type = options[:CLDEVICETYPE] ? OpenCL::Device::Type.const_get(options[:CLDEVICETYPE]) : OpenCL::Device::Type::ALL
|
34
32
|
devices = platforms.collect { |plt| plt.devices(type) }
|
35
33
|
devices.flatten!
|
36
34
|
end
|
37
|
-
name_pattern = options[:
|
38
|
-
name_pattern = options[:CLDEVICE] unless name_pattern
|
35
|
+
name_pattern = options[:CLDEVICE]
|
39
36
|
if name_pattern then
|
40
37
|
devices.select!{ |d|
|
41
38
|
d.name.match(name_pattern)
|
@@ -63,12 +60,12 @@ module BOAST
|
|
63
60
|
puts e.to_s
|
64
61
|
puts program.build_status
|
65
62
|
puts program.build_log
|
66
|
-
if options[:
|
63
|
+
if options[:VERBOSE] or get_verbose then
|
67
64
|
puts @code.string
|
68
65
|
end
|
69
66
|
raise "OpenCL Failed to build #{@procedure.name}"
|
70
67
|
end
|
71
|
-
if options[:
|
68
|
+
if options[:VERBOSE] or get_verbose then
|
72
69
|
program.build_log.each {|dev,log|
|
73
70
|
puts "#{device.name}: #{log}"
|
74
71
|
}
|
data/lib/BOAST/Runtime/Probe.rb
CHANGED
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.
|
4
|
+
version: 1.3.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: 2016-
|
11
|
+
date: 2016-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: narray
|
@@ -56,20 +56,20 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '1.
|
59
|
+
version: '1.3'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.2
|
62
|
+
version: 1.3.2
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '1.
|
69
|
+
version: '1.3'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.2
|
72
|
+
version: 1.3.2
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: systemu
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,6 +228,7 @@ files:
|
|
228
228
|
- lib/BOAST/Language/Variable.rb
|
229
229
|
- lib/BOAST/Language/While.rb
|
230
230
|
- lib/BOAST/Optimization/Optimization.rb
|
231
|
+
- lib/BOAST/Runtime/AffinityProbe.rb
|
231
232
|
- lib/BOAST/Runtime/CKernel.rb
|
232
233
|
- lib/BOAST/Runtime/CRuntime.rb
|
233
234
|
- lib/BOAST/Runtime/CUDARuntime.rb
|