[cig-commits] [commit] devel, master: Added a README for BOAST kernels. (4467068)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Thu Nov 6 08:27:17 PST 2014


Repository : https://github.com/geodynamics/specfem3d_globe

On branches: devel,master
Link       : https://github.com/geodynamics/specfem3d_globe/compare/bc58e579b3b0838a0968725a076f5904845437ca...be63f20cbb6f462104e949894dbe205d2398cd7f

>---------------------------------------------------------------

commit 44670682e0fdce33f807ae32e4bf9ffafea06096
Author: Brice Videau <brice.videau at imag.fr>
Date:   Mon Jul 28 10:09:59 2014 +0200

    Added a README for BOAST kernels.


>---------------------------------------------------------------

44670682e0fdce33f807ae32e4bf9ffafea06096
 src/gpu/boast/README | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/src/gpu/boast/README b/src/gpu/boast/README
new file mode 100644
index 0000000..01ef372
--- /dev/null
+++ b/src/gpu/boast/README
@@ -0,0 +1,46 @@
+This directory contains source files necessary to genrate SPECFEM3D kernels in both cuda and OpenCL flavor.
+
+using ruby you can regenerate the list of kernels. You might need to create an "output" directory in this folder during development.
+so:
+
+cd specfem3d_globe/src/gpu/boast/
+mkfir output
+ruby kernels.rb
+
+will generate the kernels in the output directory.
+
+if non regression data are installed in specfem3d_globe/src/gpu/kernels.test/ then you can test the kernels by
+ruby kernels.rb -c
+it will use the non regression testing data to give you information about the behavior of the kernels (accuracy and performance).
+If tests are not installed it will just compile the kernels and check for compilation errors.
+
+you might have to manually deactivate CUDA kernels test:
+
+diff --git a/src/gpu/boast/kernels.rb b/src/gpu/boast/kernels.rb
+index 4d2b31d..e4a678f 100644
+--- a/src/gpu/boast/kernels.rb
++++ b/src/gpu/boast/kernels.rb
+@@ -76,7 +76,7 @@ kernels = [
+ :compute_iso_undo_att_kernel
+ ]
+ 
+-langs = [ :CUDA, :CL]
++langs = [:CL]
+ BOAST::set_default_real_size(4)
+ BOAST::set_replace_constants(false)
+ class Float
+
+
+If you want Intel vectorization report you can execute BOAST in verbose mode:
+VERBOSE=true ruby kernels.rb -c
+or use different CL flags:
+CLFLAGS=-cl-fast-relaxed-math ruby kernels.rb -c
+That should be the default in SPECFEM3D (even if for now if seems the default is no flags for OpenCL, which gives a certain advantage to CUDA).
+
+If you have a problem of platform selection or want to restrict the test to 1 kernel:
+ruby kernels.rb -c -k crust_mantle_impl_kernel_forward -p INTEL
+
+Once you want to test your kernels in SPECFEM3D then you can
+ruby kernels.rb -c -o ../kernels.gen/
+
+At this point you may need to reactivate cuda support in order to have all the files correctly generated (never tested without cuda kernels being generated)



More information about the CIG-COMMITS mailing list