bones-compiler 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. data/CHANGELOG +117 -0
  2. data/LICENSE +9 -0
  3. data/README.rdoc +126 -0
  4. data/Rakefile +107 -0
  5. data/VERSION +1 -0
  6. data/bin/bones +20 -0
  7. data/examples/applications/ffos.c +552 -0
  8. data/examples/benchmarks/2mm.c +70 -0
  9. data/examples/benchmarks/3mm.c +81 -0
  10. data/examples/benchmarks/adi.c +81 -0
  11. data/examples/benchmarks/atax.c +65 -0
  12. data/examples/benchmarks/bicg.c +67 -0
  13. data/examples/benchmarks/cholesky.c +64 -0
  14. data/examples/benchmarks/common.h +168 -0
  15. data/examples/benchmarks/correlation.c +97 -0
  16. data/examples/benchmarks/covariance.c +77 -0
  17. data/examples/benchmarks/doitgen.c +63 -0
  18. data/examples/benchmarks/durbin.c +76 -0
  19. data/examples/benchmarks/dynprog.c +67 -0
  20. data/examples/benchmarks/fdtd-2d-apml.c +114 -0
  21. data/examples/benchmarks/fdtd-2d.c +74 -0
  22. data/examples/benchmarks/floyd-warshall.c +50 -0
  23. data/examples/benchmarks/gemm.c +69 -0
  24. data/examples/benchmarks/gemver.c +89 -0
  25. data/examples/benchmarks/gesummv.c +64 -0
  26. data/examples/benchmarks/gramschmidt.c +84 -0
  27. data/examples/benchmarks/jacobi-1d-imper.c +55 -0
  28. data/examples/benchmarks/jacobi-2d-imper.c +61 -0
  29. data/examples/benchmarks/lu.c +57 -0
  30. data/examples/benchmarks/ludcmp.c +91 -0
  31. data/examples/benchmarks/mvt.c +65 -0
  32. data/examples/benchmarks/overview.txt +38 -0
  33. data/examples/benchmarks/reg_detect.c +82 -0
  34. data/examples/benchmarks/saxpy.c +45 -0
  35. data/examples/benchmarks/seidel-2d.c +51 -0
  36. data/examples/benchmarks/symm.c +74 -0
  37. data/examples/benchmarks/syr2k.c +65 -0
  38. data/examples/benchmarks/syrk.c +62 -0
  39. data/examples/benchmarks/trisolv.c +57 -0
  40. data/examples/benchmarks/trmm.c +57 -0
  41. data/examples/chunk/example1.c +54 -0
  42. data/examples/chunk/example2.c +44 -0
  43. data/examples/chunk/example3.c +59 -0
  44. data/examples/chunk/example4.c +55 -0
  45. data/examples/chunk/example5.c +52 -0
  46. data/examples/element/example1.c +46 -0
  47. data/examples/element/example10.c +50 -0
  48. data/examples/element/example11.c +47 -0
  49. data/examples/element/example12.c +56 -0
  50. data/examples/element/example2.c +46 -0
  51. data/examples/element/example3.c +58 -0
  52. data/examples/element/example4.c +49 -0
  53. data/examples/element/example5.c +56 -0
  54. data/examples/element/example6.c +46 -0
  55. data/examples/element/example7.c +54 -0
  56. data/examples/element/example8.c +45 -0
  57. data/examples/element/example9.c +48 -0
  58. data/examples/neighbourhood/example1.c +54 -0
  59. data/examples/neighbourhood/example2.c +55 -0
  60. data/examples/neighbourhood/example3.c +82 -0
  61. data/examples/neighbourhood/example4.c +52 -0
  62. data/examples/shared/example1.c +45 -0
  63. data/examples/shared/example2.c +51 -0
  64. data/examples/shared/example3.c +55 -0
  65. data/examples/shared/example4.c +52 -0
  66. data/examples/shared/example5.c +48 -0
  67. data/lib/bones.rb +266 -0
  68. data/lib/bones/algorithm.rb +541 -0
  69. data/lib/bones/engine.rb +386 -0
  70. data/lib/bones/preprocessor.rb +161 -0
  71. data/lib/bones/species.rb +196 -0
  72. data/lib/bones/structure.rb +94 -0
  73. data/lib/bones/variable.rb +169 -0
  74. data/lib/bones/variablelist.rb +72 -0
  75. data/lib/castaddon.rb +27 -0
  76. data/lib/castaddon/index.rb +40 -0
  77. data/lib/castaddon/node.rb +753 -0
  78. data/lib/castaddon/type.rb +37 -0
  79. data/skeletons/CPU-C/common/epilogue.c +0 -0
  80. data/skeletons/CPU-C/common/globals.c +17 -0
  81. data/skeletons/CPU-C/common/globals_kernel.c +1 -0
  82. data/skeletons/CPU-C/common/header.c +0 -0
  83. data/skeletons/CPU-C/common/mem_copy_D2H.c +0 -0
  84. data/skeletons/CPU-C/common/mem_copy_H2D.c +0 -0
  85. data/skeletons/CPU-C/common/mem_epilogue.c +0 -0
  86. data/skeletons/CPU-C/common/mem_prologue.c +3 -0
  87. data/skeletons/CPU-C/common/prologue.c +0 -0
  88. data/skeletons/CPU-C/common/timer_1_start.c +0 -0
  89. data/skeletons/CPU-C/common/timer_1_stop.c +0 -0
  90. data/skeletons/CPU-C/common/timer_2_start.c +20 -0
  91. data/skeletons/CPU-C/common/timer_2_stop.c +8 -0
  92. data/skeletons/CPU-C/kernel/default.host.c +3 -0
  93. data/skeletons/CPU-C/kernel/default.kernel.c +15 -0
  94. data/skeletons/CPU-C/skeletons.txt +24 -0
  95. data/skeletons/CPU-OPENCL-AMD/common/epilogue.c +6 -0
  96. data/skeletons/CPU-OPENCL-AMD/common/globals.c +155 -0
  97. data/skeletons/CPU-OPENCL-AMD/common/globals_kernel.c +4 -0
  98. data/skeletons/CPU-OPENCL-AMD/common/header.c +0 -0
  99. data/skeletons/CPU-OPENCL-AMD/common/mem_copy_D2H.c +8 -0
  100. data/skeletons/CPU-OPENCL-AMD/common/mem_copy_H2D.c +4 -0
  101. data/skeletons/CPU-OPENCL-AMD/common/mem_epilogue.c +3 -0
  102. data/skeletons/CPU-OPENCL-AMD/common/mem_prologue.c +6 -0
  103. data/skeletons/CPU-OPENCL-AMD/common/prologue.c +24 -0
  104. data/skeletons/CPU-OPENCL-AMD/common/timer_1_start.c +5 -0
  105. data/skeletons/CPU-OPENCL-AMD/common/timer_1_stop.c +9 -0
  106. data/skeletons/CPU-OPENCL-AMD/common/timer_2_start.c +16 -0
  107. data/skeletons/CPU-OPENCL-AMD/common/timer_2_stop.c +11 -0
  108. data/skeletons/CPU-OPENCL-AMD/kernel/D-element-to-1-shared.host.c +67 -0
  109. data/skeletons/CPU-OPENCL-AMD/kernel/D-element-to-1-shared.kernel.cl +72 -0
  110. data/skeletons/CPU-OPENCL-AMD/kernel/default.host.c +14 -0
  111. data/skeletons/CPU-OPENCL-AMD/kernel/default.kernel.cl +13 -0
  112. data/skeletons/CPU-OPENCL-AMD/skeletons.txt +26 -0
  113. data/skeletons/CPU-OPENCL-INTEL/common/epilogue.c +3 -0
  114. data/skeletons/CPU-OPENCL-INTEL/common/globals.c +154 -0
  115. data/skeletons/CPU-OPENCL-INTEL/common/globals_kernel.c +4 -0
  116. data/skeletons/CPU-OPENCL-INTEL/common/header.c +31 -0
  117. data/skeletons/CPU-OPENCL-INTEL/common/mem_copy_D2H.c +5 -0
  118. data/skeletons/CPU-OPENCL-INTEL/common/mem_copy_H2D.c +3 -0
  119. data/skeletons/CPU-OPENCL-INTEL/common/mem_epilogue.c +3 -0
  120. data/skeletons/CPU-OPENCL-INTEL/common/mem_prologue.c +4 -0
  121. data/skeletons/CPU-OPENCL-INTEL/common/prologue.c +24 -0
  122. data/skeletons/CPU-OPENCL-INTEL/common/timer_1_start.c +5 -0
  123. data/skeletons/CPU-OPENCL-INTEL/common/timer_1_stop.c +9 -0
  124. data/skeletons/CPU-OPENCL-INTEL/common/timer_2_start.c +16 -0
  125. data/skeletons/CPU-OPENCL-INTEL/common/timer_2_stop.c +11 -0
  126. data/skeletons/CPU-OPENCL-INTEL/kernel/D-element-to-1-shared.host.c +67 -0
  127. data/skeletons/CPU-OPENCL-INTEL/kernel/D-element-to-1-shared.kernel.cl +72 -0
  128. data/skeletons/CPU-OPENCL-INTEL/kernel/default.host.c +14 -0
  129. data/skeletons/CPU-OPENCL-INTEL/kernel/default.kernel.cl +13 -0
  130. data/skeletons/CPU-OPENCL-INTEL/skeletons.txt +26 -0
  131. data/skeletons/CPU-OPENMP/common/epilogue.c +0 -0
  132. data/skeletons/CPU-OPENMP/common/globals.c +37 -0
  133. data/skeletons/CPU-OPENMP/common/globals_kernel.c +6 -0
  134. data/skeletons/CPU-OPENMP/common/header.c +0 -0
  135. data/skeletons/CPU-OPENMP/common/mem_copy_D2H.c +0 -0
  136. data/skeletons/CPU-OPENMP/common/mem_copy_H2D.c +0 -0
  137. data/skeletons/CPU-OPENMP/common/mem_epilogue.c +0 -0
  138. data/skeletons/CPU-OPENMP/common/mem_prologue.c +3 -0
  139. data/skeletons/CPU-OPENMP/common/prologue.c +0 -0
  140. data/skeletons/CPU-OPENMP/common/timer_1_start.c +12 -0
  141. data/skeletons/CPU-OPENMP/common/timer_1_stop.c +0 -0
  142. data/skeletons/CPU-OPENMP/common/timer_2_start.c +18 -0
  143. data/skeletons/CPU-OPENMP/common/timer_2_stop.c +8 -0
  144. data/skeletons/CPU-OPENMP/kernel/D-element-to-1-shared.host.c +27 -0
  145. data/skeletons/CPU-OPENMP/kernel/D-element-to-1-shared.kernel.c +46 -0
  146. data/skeletons/CPU-OPENMP/kernel/default.host.c +11 -0
  147. data/skeletons/CPU-OPENMP/kernel/default.kernel.c +18 -0
  148. data/skeletons/CPU-OPENMP/skeletons.txt +26 -0
  149. data/skeletons/GPU-CUDA/common/epilogue.c +0 -0
  150. data/skeletons/GPU-CUDA/common/globals.c +31 -0
  151. data/skeletons/GPU-CUDA/common/globals_kernel.c +4 -0
  152. data/skeletons/GPU-CUDA/common/header.c +0 -0
  153. data/skeletons/GPU-CUDA/common/mem_copy_D2H.c +3 -0
  154. data/skeletons/GPU-CUDA/common/mem_copy_H2D.c +3 -0
  155. data/skeletons/GPU-CUDA/common/mem_epilogue.c +3 -0
  156. data/skeletons/GPU-CUDA/common/mem_prologue.c +5 -0
  157. data/skeletons/GPU-CUDA/common/prologue.c +6 -0
  158. data/skeletons/GPU-CUDA/common/timer_1_start.c +6 -0
  159. data/skeletons/GPU-CUDA/common/timer_1_stop.c +10 -0
  160. data/skeletons/GPU-CUDA/common/timer_2_start.c +6 -0
  161. data/skeletons/GPU-CUDA/common/timer_2_stop.c +10 -0
  162. data/skeletons/GPU-CUDA/kernel/2xN-N-chunk-1-N-to-D-element.host.c +3 -0
  163. data/skeletons/GPU-CUDA/kernel/2xN-N-chunk-1-N-to-D-element.kernel.cu +105 -0
  164. data/skeletons/GPU-CUDA/kernel/D-element-to-1-shared.host.c +3 -0
  165. data/skeletons/GPU-CUDA/kernel/D-element-to-1-shared.kernel.cu +119 -0
  166. data/skeletons/GPU-CUDA/kernel/D-element-to-N-shared.host.c +3 -0
  167. data/skeletons/GPU-CUDA/kernel/D-element-to-N-shared.kernel.cu +166 -0
  168. data/skeletons/GPU-CUDA/kernel/N-N-chunk-1-N-to-D-element.host.c +3 -0
  169. data/skeletons/GPU-CUDA/kernel/N-N-chunk-1-N-to-D-element.kernel.cu +69 -0
  170. data/skeletons/GPU-CUDA/kernel/N-neighbourhood-N-to-N-element.host.c +3 -0
  171. data/skeletons/GPU-CUDA/kernel/N-neighbourhood-N-to-N-element.kernel.cu +42 -0
  172. data/skeletons/GPU-CUDA/kernel/default.host.c +3 -0
  173. data/skeletons/GPU-CUDA/kernel/default.kernel.cu +28 -0
  174. data/skeletons/GPU-CUDA/skeletons.txt +30 -0
  175. data/skeletons/GPU-OPENCL-AMD/common/epilogue.c +3 -0
  176. data/skeletons/GPU-OPENCL-AMD/common/globals.c +155 -0
  177. data/skeletons/GPU-OPENCL-AMD/common/globals_kernel.c +4 -0
  178. data/skeletons/GPU-OPENCL-AMD/common/header.c +0 -0
  179. data/skeletons/GPU-OPENCL-AMD/common/mem_copy_D2H.c +4 -0
  180. data/skeletons/GPU-OPENCL-AMD/common/mem_copy_H2D.c +4 -0
  181. data/skeletons/GPU-OPENCL-AMD/common/mem_epilogue.c +3 -0
  182. data/skeletons/GPU-OPENCL-AMD/common/mem_prologue.c +3 -0
  183. data/skeletons/GPU-OPENCL-AMD/common/prologue.c +24 -0
  184. data/skeletons/GPU-OPENCL-AMD/common/timer_1_start.c +5 -0
  185. data/skeletons/GPU-OPENCL-AMD/common/timer_1_stop.c +9 -0
  186. data/skeletons/GPU-OPENCL-AMD/common/timer_2_start.c +4 -0
  187. data/skeletons/GPU-OPENCL-AMD/common/timer_2_stop.c +11 -0
  188. data/skeletons/GPU-OPENCL-AMD/kernel/D-element-to-1-shared.host.c +67 -0
  189. data/skeletons/GPU-OPENCL-AMD/kernel/D-element-to-1-shared.kernel.cl +72 -0
  190. data/skeletons/GPU-OPENCL-AMD/kernel/default.host.c +14 -0
  191. data/skeletons/GPU-OPENCL-AMD/kernel/default.kernel.cl +13 -0
  192. data/skeletons/GPU-OPENCL-AMD/skeletons.txt +26 -0
  193. data/skeletons/verification/header.c +2 -0
  194. data/skeletons/verification/timer_start.c +4 -0
  195. data/skeletons/verification/timer_stop.c +6 -0
  196. data/skeletons/verification/verify_results.c +23 -0
  197. data/test/bones/test_algorithm.rb +40 -0
  198. data/test/bones/test_common.rb +54 -0
  199. data/test/bones/test_preprocessor.rb +46 -0
  200. data/test/bones/test_species.rb +21 -0
  201. data/test/bones/test_variable.rb +84 -0
  202. data/test/test_helper.rb +106 -0
  203. metadata +303 -0
@@ -0,0 +1,106 @@
1
+
2
+ # Load the test from the Ruby standard library
3
+ require 'test/unit'
4
+
5
+ # Set the path for the libraries and the installation directory
6
+ BONES_DIR = File.dirname(__FILE__) + '/../'
7
+ lib_dir = BONES_DIR+'lib'
8
+ $LOAD_PATH.unshift lib_dir unless $LOAD_PATH.include?(lib_dir)
9
+
10
+ # Set verbose output to false
11
+ VERBOSE = false
12
+
13
+ # Set command line arguments
14
+ ARGUMENTS = ['-a','test.c','-t','gpu-nvidia']
15
+
16
+ # Load the test file and the bones library
17
+ require 'castaddon'
18
+ require 'bones'
19
+
20
+ # Set some constants to test with
21
+ MAX_DIMENSIONS = 3
22
+ MAX_INPUTS = 2
23
+ MAX_OUTPUTS = 1
24
+ SIZE = 30
25
+ PATTERNS = ['element','neighbourhood','chunk','shared']
26
+ PREFIXES = ['','unordered']
27
+ PIPE = '|'
28
+
29
+ # Create a list of speciess to test with.
30
+ def setup_species
31
+ list = {:dimensions => [], :inputs => [], :outputs => [], :patterns => [], :prefixes => [], :species => [], :examples => []}
32
+ for num_outputs in 1..MAX_OUTPUTS
33
+ for num_inputs in 1..MAX_INPUTS
34
+ for num_dimensions in 1..MAX_DIMENSIONS
35
+ PREFIXES.each do |prefix|
36
+ PATTERNS.each do |pattern|
37
+
38
+ # Create the species information
39
+ range = '0'+Bones::RANGE_SEP+(SIZE-1).to_s
40
+ dimension = range+(Bones::DIM_SEP+range)*(num_dimensions-1)
41
+ pattern_parameter = (pattern == 'neighbourhood' || pattern == 'chunk') ? pattern+'('+dimension+')' : pattern
42
+ inputs = dimension+PIPE+pattern_parameter+(' '+Bones::WEDGE+' '+dimension+PIPE+pattern_parameter)*(num_inputs-1)
43
+ outputs = dimension+PIPE+pattern_parameter+(' '+Bones::WEDGE+' '+dimension+PIPE+pattern_parameter)*(num_outputs-1)
44
+
45
+ # Set the species information
46
+ list[:dimensions].push(num_dimensions)
47
+ list[:inputs].push(num_inputs)
48
+ list[:outputs].push(num_outputs)
49
+ list[:patterns].push(pattern)
50
+ list[:prefixes].push(prefix)
51
+ list[:species].push(Bones::Species.new(prefix,inputs,outputs))
52
+ list[:examples].push(prefix+' '+inputs+' '+Bones::ARROW+' '+outputs)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ return list
59
+ end
60
+
61
+ # Construct a list of primitives corresponding to the example
62
+ # speciess created in the function 'setup speciess'. This function
63
+ # also creates code examples.
64
+ def setup_algorithms(examples)
65
+ primitives_list = []
66
+ original_code_list = []
67
+ arrays_list = []
68
+ code_prefix = "void main() { \n float in[10][10]; \n"
69
+ primitive_code_start = "{\n int i = 4; \n"
70
+ primitive_code_end = "}"
71
+ code_suffix = "\n }"
72
+
73
+ # Iterate over the example speciess
74
+ examples.each do |example|
75
+
76
+ # Create an example primitive
77
+ primitive_name = 'example'
78
+ primitive_start = Bones::Preprocessor::PRIMITIVE_START+' '+example
79
+ primitive_end = Bones::Preprocessor::PRIMITIVE_END+' '+primitive_name
80
+
81
+ # Create a matching species for comparison
82
+ prefix = ''
83
+ if example =~ /^(unordered|multiple)/
84
+ partition = example.partition(' ')
85
+ example = partition[2]
86
+ prefix = partition[0]
87
+ end
88
+ example_split = example.split(' '+Bones::ARROW+' ')
89
+ species = Bones::Species.new(prefix,example_split[0].strip,example_split[1].strip)
90
+
91
+ # Set the code according to the primitive
92
+ species.outputs.length.times { |i| code_prefix += "int * out_"+i.to_s+" = malloc("+SIZE.to_s+"*sizeof(int)); \n" }
93
+ species.inputs.length.times { |i| code_prefix += "float in_"+i.to_s+"[10][10]; \n" }
94
+ primitive_code = primitive_code_start
95
+ species.inputs.length.times { |i| primitive_code += "float a; \n a = in_"+i.to_s+"[6][5]; \n" }
96
+ species.outputs.length.times { |i| primitive_code += "out_"+i.to_s+"[i] = a * 2; \n" }
97
+ primitive_code += primitive_code_end
98
+
99
+ # Create corresponding original code
100
+ original_code_list.push(code_prefix+"\n"+primitive_start+"\n"+primitive_code+"\n"+primitive_end+"\n"+code_suffix)
101
+ primitives_list.push([Bones::Algorithm.new(primitive_name,primitive_name,'0',species,primitive_code)])
102
+ arrays_list.push(['in','out'])
103
+ end
104
+ return primitives_list, original_code_list, arrays_list
105
+ end
106
+
metadata ADDED
@@ -0,0 +1,303 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bones-compiler
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Cedric Nugteren
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: trollop
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: cast
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Bones is a source-to-source compiler based on algorithmic skeletons and
63
+ algorithmic species. It takes C code as input (annotated with species information),
64
+ and generates parallel code in languages such as CUDA, OpenCL, and OpenMP. The generated
65
+ code is to be executed on a GPU or a multi-core CPU.
66
+ email: c.nugteren@tue.nl
67
+ executables:
68
+ - bones
69
+ extensions: []
70
+ extra_rdoc_files:
71
+ - README.rdoc
72
+ files:
73
+ - Rakefile
74
+ - bin/bones
75
+ - examples/applications/ffos.c
76
+ - examples/element/example5.c
77
+ - examples/element/example8.c
78
+ - examples/element/example12.c
79
+ - examples/element/example3.c
80
+ - examples/element/example7.c
81
+ - examples/element/example9.c
82
+ - examples/element/example6.c
83
+ - examples/element/example1.c
84
+ - examples/element/example2.c
85
+ - examples/element/example10.c
86
+ - examples/element/example11.c
87
+ - examples/element/example4.c
88
+ - examples/chunk/example5.c
89
+ - examples/chunk/example3.c
90
+ - examples/chunk/example1.c
91
+ - examples/chunk/example2.c
92
+ - examples/chunk/example4.c
93
+ - examples/neighbourhood/example3.c
94
+ - examples/neighbourhood/example1.c
95
+ - examples/neighbourhood/example2.c
96
+ - examples/neighbourhood/example4.c
97
+ - examples/shared/example5.c
98
+ - examples/shared/example3.c
99
+ - examples/shared/example1.c
100
+ - examples/shared/example2.c
101
+ - examples/shared/example4.c
102
+ - examples/benchmarks/saxpy.c
103
+ - examples/benchmarks/trisolv.c
104
+ - examples/benchmarks/gemm.c
105
+ - examples/benchmarks/covariance.c
106
+ - examples/benchmarks/gramschmidt.c
107
+ - examples/benchmarks/gemver.c
108
+ - examples/benchmarks/fdtd-2d.c
109
+ - examples/benchmarks/gesummv.c
110
+ - examples/benchmarks/cholesky.c
111
+ - examples/benchmarks/fdtd-2d-apml.c
112
+ - examples/benchmarks/dynprog.c
113
+ - examples/benchmarks/seidel-2d.c
114
+ - examples/benchmarks/syrk.c
115
+ - examples/benchmarks/mvt.c
116
+ - examples/benchmarks/bicg.c
117
+ - examples/benchmarks/adi.c
118
+ - examples/benchmarks/3mm.c
119
+ - examples/benchmarks/syr2k.c
120
+ - examples/benchmarks/common.h
121
+ - examples/benchmarks/trmm.c
122
+ - examples/benchmarks/atax.c
123
+ - examples/benchmarks/reg_detect.c
124
+ - examples/benchmarks/2mm.c
125
+ - examples/benchmarks/ludcmp.c
126
+ - examples/benchmarks/jacobi-2d-imper.c
127
+ - examples/benchmarks/symm.c
128
+ - examples/benchmarks/overview.txt
129
+ - examples/benchmarks/correlation.c
130
+ - examples/benchmarks/floyd-warshall.c
131
+ - examples/benchmarks/lu.c
132
+ - examples/benchmarks/durbin.c
133
+ - examples/benchmarks/doitgen.c
134
+ - examples/benchmarks/jacobi-1d-imper.c
135
+ - lib/castaddon/node.rb
136
+ - lib/castaddon/index.rb
137
+ - lib/castaddon/type.rb
138
+ - lib/castaddon.rb
139
+ - lib/bones.rb
140
+ - lib/bones/variablelist.rb
141
+ - lib/bones/structure.rb
142
+ - lib/bones/preprocessor.rb
143
+ - lib/bones/engine.rb
144
+ - lib/bones/variable.rb
145
+ - lib/bones/algorithm.rb
146
+ - lib/bones/species.rb
147
+ - skeletons/verification/verify_results.c
148
+ - skeletons/verification/timer_stop.c
149
+ - skeletons/verification/timer_start.c
150
+ - skeletons/verification/header.c
151
+ - skeletons/CPU-OPENMP/kernel/D-element-to-1-shared.kernel.c
152
+ - skeletons/CPU-OPENMP/kernel/default.host.c
153
+ - skeletons/CPU-OPENMP/kernel/default.kernel.c
154
+ - skeletons/CPU-OPENMP/kernel/D-element-to-1-shared.host.c
155
+ - skeletons/CPU-OPENMP/skeletons.txt
156
+ - skeletons/CPU-OPENMP/common/globals.c
157
+ - skeletons/CPU-OPENMP/common/epilogue.c
158
+ - skeletons/CPU-OPENMP/common/prologue.c
159
+ - skeletons/CPU-OPENMP/common/mem_copy_H2D.c
160
+ - skeletons/CPU-OPENMP/common/mem_copy_D2H.c
161
+ - skeletons/CPU-OPENMP/common/globals_kernel.c
162
+ - skeletons/CPU-OPENMP/common/timer_2_stop.c
163
+ - skeletons/CPU-OPENMP/common/timer_1_stop.c
164
+ - skeletons/CPU-OPENMP/common/timer_2_start.c
165
+ - skeletons/CPU-OPENMP/common/timer_1_start.c
166
+ - skeletons/CPU-OPENMP/common/mem_epilogue.c
167
+ - skeletons/CPU-OPENMP/common/header.c
168
+ - skeletons/CPU-OPENMP/common/mem_prologue.c
169
+ - skeletons/CPU-OPENCL-INTEL/kernel/D-element-to-1-shared.kernel.cl
170
+ - skeletons/CPU-OPENCL-INTEL/kernel/default.host.c
171
+ - skeletons/CPU-OPENCL-INTEL/kernel/default.kernel.cl
172
+ - skeletons/CPU-OPENCL-INTEL/kernel/D-element-to-1-shared.host.c
173
+ - skeletons/CPU-OPENCL-INTEL/skeletons.txt
174
+ - skeletons/CPU-OPENCL-INTEL/common/globals.c
175
+ - skeletons/CPU-OPENCL-INTEL/common/epilogue.c
176
+ - skeletons/CPU-OPENCL-INTEL/common/prologue.c
177
+ - skeletons/CPU-OPENCL-INTEL/common/mem_copy_H2D.c
178
+ - skeletons/CPU-OPENCL-INTEL/common/mem_copy_D2H.c
179
+ - skeletons/CPU-OPENCL-INTEL/common/globals_kernel.c
180
+ - skeletons/CPU-OPENCL-INTEL/common/timer_2_stop.c
181
+ - skeletons/CPU-OPENCL-INTEL/common/timer_1_stop.c
182
+ - skeletons/CPU-OPENCL-INTEL/common/timer_2_start.c
183
+ - skeletons/CPU-OPENCL-INTEL/common/timer_1_start.c
184
+ - skeletons/CPU-OPENCL-INTEL/common/mem_epilogue.c
185
+ - skeletons/CPU-OPENCL-INTEL/common/header.c
186
+ - skeletons/CPU-OPENCL-INTEL/common/mem_prologue.c
187
+ - skeletons/CPU-OPENCL-AMD/kernel/D-element-to-1-shared.kernel.cl
188
+ - skeletons/CPU-OPENCL-AMD/kernel/default.host.c
189
+ - skeletons/CPU-OPENCL-AMD/kernel/default.kernel.cl
190
+ - skeletons/CPU-OPENCL-AMD/kernel/D-element-to-1-shared.host.c
191
+ - skeletons/CPU-OPENCL-AMD/skeletons.txt
192
+ - skeletons/CPU-OPENCL-AMD/common/globals.c
193
+ - skeletons/CPU-OPENCL-AMD/common/epilogue.c
194
+ - skeletons/CPU-OPENCL-AMD/common/prologue.c
195
+ - skeletons/CPU-OPENCL-AMD/common/mem_copy_H2D.c
196
+ - skeletons/CPU-OPENCL-AMD/common/mem_copy_D2H.c
197
+ - skeletons/CPU-OPENCL-AMD/common/globals_kernel.c
198
+ - skeletons/CPU-OPENCL-AMD/common/timer_2_stop.c
199
+ - skeletons/CPU-OPENCL-AMD/common/timer_1_stop.c
200
+ - skeletons/CPU-OPENCL-AMD/common/timer_2_start.c
201
+ - skeletons/CPU-OPENCL-AMD/common/timer_1_start.c
202
+ - skeletons/CPU-OPENCL-AMD/common/mem_epilogue.c
203
+ - skeletons/CPU-OPENCL-AMD/common/header.c
204
+ - skeletons/CPU-OPENCL-AMD/common/mem_prologue.c
205
+ - skeletons/GPU-OPENCL-AMD/kernel/D-element-to-1-shared.kernel.cl
206
+ - skeletons/GPU-OPENCL-AMD/kernel/default.host.c
207
+ - skeletons/GPU-OPENCL-AMD/kernel/default.kernel.cl
208
+ - skeletons/GPU-OPENCL-AMD/kernel/D-element-to-1-shared.host.c
209
+ - skeletons/GPU-OPENCL-AMD/skeletons.txt
210
+ - skeletons/GPU-OPENCL-AMD/common/globals.c
211
+ - skeletons/GPU-OPENCL-AMD/common/epilogue.c
212
+ - skeletons/GPU-OPENCL-AMD/common/prologue.c
213
+ - skeletons/GPU-OPENCL-AMD/common/mem_copy_H2D.c
214
+ - skeletons/GPU-OPENCL-AMD/common/mem_copy_D2H.c
215
+ - skeletons/GPU-OPENCL-AMD/common/globals_kernel.c
216
+ - skeletons/GPU-OPENCL-AMD/common/timer_2_stop.c
217
+ - skeletons/GPU-OPENCL-AMD/common/timer_1_stop.c
218
+ - skeletons/GPU-OPENCL-AMD/common/timer_2_start.c
219
+ - skeletons/GPU-OPENCL-AMD/common/timer_1_start.c
220
+ - skeletons/GPU-OPENCL-AMD/common/mem_epilogue.c
221
+ - skeletons/GPU-OPENCL-AMD/common/header.c
222
+ - skeletons/GPU-OPENCL-AMD/common/mem_prologue.c
223
+ - skeletons/CPU-C/kernel/default.host.c
224
+ - skeletons/CPU-C/kernel/default.kernel.c
225
+ - skeletons/CPU-C/skeletons.txt
226
+ - skeletons/CPU-C/common/globals.c
227
+ - skeletons/CPU-C/common/epilogue.c
228
+ - skeletons/CPU-C/common/prologue.c
229
+ - skeletons/CPU-C/common/mem_copy_H2D.c
230
+ - skeletons/CPU-C/common/mem_copy_D2H.c
231
+ - skeletons/CPU-C/common/globals_kernel.c
232
+ - skeletons/CPU-C/common/timer_2_stop.c
233
+ - skeletons/CPU-C/common/timer_1_stop.c
234
+ - skeletons/CPU-C/common/timer_2_start.c
235
+ - skeletons/CPU-C/common/timer_1_start.c
236
+ - skeletons/CPU-C/common/mem_epilogue.c
237
+ - skeletons/CPU-C/common/header.c
238
+ - skeletons/CPU-C/common/mem_prologue.c
239
+ - skeletons/GPU-CUDA/kernel/D-element-to-1-shared.kernel.cu
240
+ - skeletons/GPU-CUDA/kernel/2xN-N-chunk-1-N-to-D-element.kernel.cu
241
+ - skeletons/GPU-CUDA/kernel/2xN-N-chunk-1-N-to-D-element.host.c
242
+ - skeletons/GPU-CUDA/kernel/N-N-chunk-1-N-to-D-element.host.c
243
+ - skeletons/GPU-CUDA/kernel/N-neighbourhood-N-to-N-element.host.c
244
+ - skeletons/GPU-CUDA/kernel/N-N-chunk-1-N-to-D-element.kernel.cu
245
+ - skeletons/GPU-CUDA/kernel/default.host.c
246
+ - skeletons/GPU-CUDA/kernel/D-element-to-N-shared.kernel.cu
247
+ - skeletons/GPU-CUDA/kernel/N-neighbourhood-N-to-N-element.kernel.cu
248
+ - skeletons/GPU-CUDA/kernel/D-element-to-N-shared.host.c
249
+ - skeletons/GPU-CUDA/kernel/default.kernel.cu
250
+ - skeletons/GPU-CUDA/kernel/D-element-to-1-shared.host.c
251
+ - skeletons/GPU-CUDA/skeletons.txt
252
+ - skeletons/GPU-CUDA/common/globals.c
253
+ - skeletons/GPU-CUDA/common/epilogue.c
254
+ - skeletons/GPU-CUDA/common/prologue.c
255
+ - skeletons/GPU-CUDA/common/mem_copy_H2D.c
256
+ - skeletons/GPU-CUDA/common/mem_copy_D2H.c
257
+ - skeletons/GPU-CUDA/common/globals_kernel.c
258
+ - skeletons/GPU-CUDA/common/timer_2_stop.c
259
+ - skeletons/GPU-CUDA/common/timer_1_stop.c
260
+ - skeletons/GPU-CUDA/common/timer_2_start.c
261
+ - skeletons/GPU-CUDA/common/timer_1_start.c
262
+ - skeletons/GPU-CUDA/common/mem_epilogue.c
263
+ - skeletons/GPU-CUDA/common/header.c
264
+ - skeletons/GPU-CUDA/common/mem_prologue.c
265
+ - test/test_helper.rb
266
+ - test/bones/test_preprocessor.rb
267
+ - test/bones/test_species.rb
268
+ - test/bones/test_common.rb
269
+ - test/bones/test_algorithm.rb
270
+ - test/bones/test_variable.rb
271
+ - README.rdoc
272
+ - LICENSE
273
+ - CHANGELOG
274
+ - VERSION
275
+ homepage: http://parse.ele.tue.nl/bones/
276
+ licenses:
277
+ - LICENSE
278
+ post_install_message:
279
+ rdoc_options:
280
+ - --title
281
+ - Bones
282
+ - --line-numbers
283
+ require_paths:
284
+ - lib
285
+ required_ruby_version: !ruby/object:Gem::Requirement
286
+ none: false
287
+ requirements:
288
+ - - ! '>='
289
+ - !ruby/object:Gem::Version
290
+ version: '0'
291
+ required_rubygems_version: !ruby/object:Gem::Requirement
292
+ none: false
293
+ requirements:
294
+ - - ! '>='
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ requirements: []
298
+ rubyforge_project:
299
+ rubygems_version: 1.8.24
300
+ signing_key:
301
+ specification_version: 3
302
+ summary: The Bones source-to-source compiler
303
+ test_files: []