Skip to content

tzrtzr000/AccPlusPlus

Repository files navigation

AccPlusPlus

Accelerator for C++ STL source code/output is collected by each profiler

TODO (11/19/2018)

For all:

  1. Run gprof on ./benchmarks/Simple_push_back/push_back.cpp and Pseudo Inverse Test by Nghia Ho's blog from ./benchmarks/test_matrix_pseudoinverse.cpp ./benchmarks/test_matrix_pseudoinverse.cpp on:

To compile & generate flat-profiled benchmark data Simple_push_back:

cd benchmarks/Simple_push_back
make 

Opencv:

cd benchmarks/opencv
make 

To install opencv, first clone to <project_dir> (parent dir of AccPlusPlus), then run ```./build_open_cv.sh`` bash:

cd ../
git clone https://github.com/opencv/opencv.git. 
cd  AccPlusPlus
./build_open_cv.sh

Eigen:

cd benchmarks/eigen
make 

Armadillo + OpenBLAS (FrankieD4C: For arma and opencv benchmark, I removed -O3 flag when compile since gprof cannot work):

cd benchmarks/arma
make openblas

Armadillo + Atlas:

cd benchmarks/arma
make altas

OpenCV

cd benchmarks/opencv
make

Full tutorial Pseudo Inverse Test by Nghia Ho's blog

To generate function directed acyclic graph (DAG), run change gprof instruction in Makefile to pipe to gprof. For example, as in Simple_push_back

gprof ./push_back.o gmon.out | tee push_back.prof  | gprof2dot  -n0 -e0| dot -Tpng -o func_dag.png 

sample output :

To generate line by line profliling, add similar contents as for simple_push_back (we indeed use gcov instead):

push_back_line_by_line.o: push_back.cpp
	g++ -std=c++11 -fprofile-arcs -ftest-coverage push_back.cpp
	gcov push_back.cpp
	mv *.gcov gcov_out
  1. Plot the histogram of leaf function like Figure 3 by Gope et al

alt text

  1. Find the "bottleneck" (performance, power, etc)

    • Granularity of the analysis: Memory address, Memory size, leaf function, "semantic operations" (what the program mainly does)
  2. Discuss with Prof. by this Friday (11/22)

    • Memory slab plot for memory allocation like Figure 8(a), similar to the idea of "heap manager" for PHP acceleration.

    alt text

  3. Opencv:

    • Image Processing: ela digits pca dft kmeanst kalman minarea
    • Algorithm: convexhull travelsalesman
    • Video: disopticalflow smiledetect
    • IO: filestorage treeengine

About

Accelerator for C++ STL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published