Explorar o código

NOTES: Added some notes

Added in the notes directory some files containing notes on problems to
fix, things to improve and references for compiling the report
Andrea Gussoni %!s(int64=8) %!d(string=hai) anos
pai
achega
bb63c97c2c
Modificáronse 3 ficheiros con 59 adicións e 0 borrados
  1. 17 0
      notes/benchmarks-problems.txt
  2. 36 0
      notes/notes.txt
  3. 6 0
      notes/to-fix.txt

+ 17 - 0
notes/benchmarks-problems.txt

@@ -0,0 +1,17 @@
+error in compilation:
+    bfs solved, the build tried to compile the timer.cc file even if not in profiling mode(timer.cc contained x86 specialized code to profile the application with asm instructions), eliminated the timer.cc dependency and all works fine
+    cfd add #include <cstdlib> in util.h (on the laptop is not necessary, why boh?)
+    leukocyte
+
+errors at runtime:
+    lavaMD  ensure device can handle, error at line 443: CL_INVALID_KERNEL_ARGS
+    srad    ensure device can handle, error at line 546: CL_INVALID_ARG_SIZE
+    particlefilter Compiler frontend failed (error code 59) only on some executables only naive executable compiles
+    
+
+Things to fix:
+    lud when run on CPU with the verif option enabled (-v to command line) there is a problem with the correctness of the matrix, check what is the cause of this error.
+    gaussian when run on CPU it gives an error of context type not supported, but then continues nonetheless. Eliminate that error.
+    heartwall when run on CPU gives an CL_OUT_OF_HOST_MEMORY
+    hybridsort doesn't actually instantiate OpenCL kernels (seems now solved, the trick was to modify the sources of all the implementations of the sorting algorithms).
+    srad when executed through the measurement script doesn't actually run.

+ 36 - 0
notes/notes.txt

@@ -0,0 +1,36 @@
+LLC Triple of the target board:
+armv7-unknown-linux-gnueabihf
+
+Build time of pocl (make -j8):
+    Target-cpu a7: 2m28.200s
+    target-cpu a15: 2m32.560s
+
+Tests on pocl 0.14:
+    2 tests failed:
+    69 runtime/clBuildProgram
+    111 EinsteinToolkit
+
+Benchmarks of rodinia_3.1 not compiling on the board:
+    opencl/bfs
+    opencl/cfd
+    opencl/leukocyte
+
+Problems encountered with the power measurement:
+
+The library libHIDAPI.a was statically compiled and included in the repo, so no compatible with arm.
+Recompiled for arm, installing the package libusb1.0.0-dev and other qt libraries needed. (qt4core et similia)
+
+Switched on branch no_qt of the repo, removed reference to the qmake directive file to the need of QtCore and QtGui, thanks to the guy that removed them
+Libusb can only be accessed by root user by default, so gdb and find the problem. Add an ad-hoc rule in /etc/udev/rules.d (also blocked the keyboard), references on the bitbucket repo for the actual procedure.
+
+Missing library to identify endianess of the architecture, reinstalled all the llvm-3.8 development packages to solve the problem (no more fine grained approach found)
+
+Re-run the tests after having reinstalled all above, now 100% pass tests, wowowowa, log in log-tests.txt
+
+Il pacchetto che abilita la mali interface è mali-fbdev, ricordarsi di eliminare prima i file che vengono sovrascritti:
+
+ln: failed to create symbolic link '/usr/lib/arm-linux-gnueabihf/libGLESv2.so': File exists
+ln: failed to create symbolic link '/usr/lib/arm-linux-gnueabihf/libGLESv1_CM.so': File exists
+ln: failed to create symbolic link '/usr/lib/arm-linux-gnueabihf/libOpenCL.so': File exists
+
+rimuovendo i pacchetti che hanno sovrascritto (solitamente ocl-icd-opencl-dev)

+ 6 - 0
notes/to-fix.txt

@@ -0,0 +1,6 @@
+lavaMD:
+    The problem is with the arguments of the kernel, probabl they are too large for the memory of the mali GPU. the memory dedicated to constant is only 64KiB on the device, try change them to glibals as indicated in this post https://devtalk.nvidia.com/default/topic/457558/what-could-be-wrong-with-this-kernel-code-provided/
+
+srad:
+    the default dimension of long on the mali architecture is 4 byte instead of 8 byte, so I dubled what the sizeof(long) return, but at this point we have an CL_OUT_OF_RESOURCES error when calling clEnqueueNDRangeKernel. Also check if this bug is solvable using double instead of long. Seems solved compiling with make KERNEL_DIM="-DRD_WG_SIZE_0=32"
+