BOAST 1.3.4 → 1.3.5
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 +1 -1
- data/lib/BOAST/Language/Algorithm.rb +3 -3
- data/lib/BOAST/Language/Architectures.rb +58 -0
- data/lib/BOAST/Language/CPUID_by_name.rb +1871 -1871
- data/lib/BOAST/Language/Config.rb +10 -0
- data/lib/BOAST/Language/Intrinsics.rb +87 -44
- data/lib/BOAST/Language/Operators.rb +92 -10
- data/lib/BOAST/Language/Variable.rb +11 -4
- data/lib/BOAST/Optimization/Optimization.rb +58 -7
- data/lib/BOAST/Runtime/CRuntime.rb +1 -1
- data/lib/BOAST/Runtime/CompiledRuntime.rb +1 -0
- data/lib/BOAST/Runtime/EnergyProbe.rb +18 -8
- data/lib/BOAST/Runtime/FFIRuntime.rb +12 -6
- data/lib/BOAST/Runtime/FORTRANRuntime.rb +7 -2
- data/lib/BOAST/Runtime/MPPARuntime.rb +1 -1
- metadata +2 -2
@@ -32,7 +32,7 @@ module BOAST
|
|
32
32
|
module #{module_name}
|
33
33
|
extend FFI::Library
|
34
34
|
ffi_lib "#{library_path}"
|
35
|
-
attach_function :#{method_name}, [ #{@procedure.parameters.collect{ |p| ":"+p.decl_ffi(false,@lang).to_s }.join(", ")} ], :#{@procedure.properties[:return] ? @procedure.properties[:return].type.decl_ffi
|
35
|
+
attach_function :#{method_name}, [ #{@procedure.parameters.collect{ |p| ":"+p.decl_ffi(false,@lang).to_s }.join(", ")} ], :#{@procedure.properties[:return] ? @procedure.properties[:return].type.decl_ffi : "void" }
|
36
36
|
def run(*args)
|
37
37
|
raise "Wrong number of arguments for \#{@procedure.name} (\#{args.length} for \#{@procedure.parameters.length})" if args.length < @procedure.parameters.length or args.length > @procedure.parameters.length + 1
|
38
38
|
ev_set = nil
|
@@ -58,11 +58,11 @@ module BOAST
|
|
58
58
|
}
|
59
59
|
else
|
60
60
|
@procedure.parameters.each_with_index { |p, i|
|
61
|
-
if p.scalar_output? then
|
61
|
+
if p.scalar_output? or p.reference? then
|
62
62
|
arg_p = FFI::MemoryPointer::new(p.decl_ffi(true, @lang))
|
63
63
|
arg_p.send("write_\#{p.decl_ffi(true,@lang)}",args[i])
|
64
64
|
t_args.push(arg_p)
|
65
|
-
r_args[p] = arg_p
|
65
|
+
r_args[p] = arg_p if p.scalar_output?
|
66
66
|
else
|
67
67
|
t_args.push( args[i] )
|
68
68
|
end
|
@@ -72,9 +72,15 @@ module BOAST
|
|
72
72
|
counters = nil
|
73
73
|
ev_set.start if ev_set
|
74
74
|
begin
|
75
|
-
|
76
|
-
|
77
|
-
|
75
|
+
if options[:repeat] then
|
76
|
+
start = Time::new
|
77
|
+
options[:repeat].times { ret = #{method_name}(*t_args) }
|
78
|
+
stop = Time::new
|
79
|
+
else
|
80
|
+
start = Time::new
|
81
|
+
ret = #{method_name}(*t_args)
|
82
|
+
stop = Time::new
|
83
|
+
end
|
78
84
|
ensure
|
79
85
|
if ev_set then
|
80
86
|
counters = ev_set.stop
|
@@ -25,7 +25,7 @@ module BOAST
|
|
25
25
|
chunks = line.scan(/.{1,#{fortran_line_length-4}}/)
|
26
26
|
s += chunks.join("&\n!$&") + "\n"
|
27
27
|
end
|
28
|
-
elsif line.match(/^\s*!/) then
|
28
|
+
elsif line.match(/^\s*!/) or line.match(/^\s*#include/) then
|
29
29
|
s += line
|
30
30
|
else
|
31
31
|
chunks = line.scan(/.{1,#{fortran_line_length-2}}/)
|
@@ -36,7 +36,12 @@ module BOAST
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def fill_library_source
|
39
|
-
|
39
|
+
if fortran_line_length == 0 then
|
40
|
+
@code.rewind
|
41
|
+
get_output.write @code.read
|
42
|
+
else
|
43
|
+
get_output.print line_limited_source
|
44
|
+
end
|
40
45
|
end
|
41
46
|
|
42
47
|
def create_procedure_call_parameters
|
@@ -205,7 +205,7 @@ EOF
|
|
205
205
|
#Parameters declaration
|
206
206
|
@procedure.parameters.each { |param|
|
207
207
|
get_output.print " #{param.type.decl} "
|
208
|
-
get_output.print "*" if param.dimension or param.scalar_output?
|
208
|
+
get_output.print "*" if param.dimension or param.scalar_output? or param.reference?
|
209
209
|
get_output.puts "#{param.name};"
|
210
210
|
if param.dimension then
|
211
211
|
get_output.puts " size_t _mppa_#{param}_size;"
|
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.3.
|
4
|
+
version: 1.3.5
|
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-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: narray
|