-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Micro benchmarks #9
Comments
I am now considering to overhaul the benchmarking tools. |
I think we should do this after the transition from Makefile to cmake, as all the components will be easier to integrate. I think that it would be better to implement this in the following order:
I am happy for you to use Java+gnuplot, but I think that it would be better to use python+mathplotlib, as it might be easier to maintain and run. It will require less configuration than setting up a Java VM, and I think it will be easier to deploy on Travis. |
Do we need to deploy it on Travis? |
Then, Java + gnuplot is, you are right, we cannot run benchmarks on the cloud. I still think you should first use the micro benchmark system of google and then plot the data, because the output of Google benchmark might be different from what you expect in the plotting scripts. You might need to rework the scripts if that is going to be the case. Also, Google benchmark has some report facilities (see [1] for example), which might be used instead of the plotting tool. I recommend you to leave the scripts for plotting as the last (optional) part of this work. [1] http://1.bp.blogspot.com/-wk7hsdYodo8/UtS75FZag6I/AAAAAAAAAks/cQFiCXPbtwk/s1600/image00.png |
Could you explain a little bit about how you are planning to use the output data? |
Getting numbers is very important. Using google framework should guarantee that we have reliable evaluations. If the aim of setting up this is only to get the numbers in the paper, I think we don't need to store any script in here for that. My goal here was to make sure that the numbers we were getting where reliable, and I believe that those we could get with google micro benchmarks framework have such property. They would be reliable not only for us, but also for people reading these numbers are they are produce via a standard tool. Also, using google micro benchmarks would make easier for other people to verify our claims on their own machines. For the paper, maybe we could store the scripts that generate the graphics in the paper itself? |
I still don't understand why there could be so much difference in reliability of measured values. We are just measuring execution time of small C codes, which basically don't have conditional branch or memory access. Execution time is highly reproducible. If this were java, there would be many things to consider like JIT or garbage collection. |
…uplot. With this new tool, the graph showing execution time can be automatically drawn. It is easy to see the difference between different versions or compilers. Some results are shown at http://shibatch.github.io/ This patch implements the tool described in #9. I am planning to add another benchmarking tool based on the Google microbenchmarking framework.
This patch replaces the old benchmarking tool with a new tool with gnuplot. With this new tool, the graph showing execution time can be automatically drawn. It is now easy to see the difference between different library versions or compilers. This tool is used to draw the graphs on sleef.org web site. This patch implements the tool described in #9. A makefile is used In this patch. It is used to compile the necessary tools. This makefile is used as a script for measurement. It is handy since ProcData.java has to be also compiled.
Reviving discussion in this issue, as new changes are predicted to come in place in order to close it. Above it's discussed introducing googlebench framework. I decided to investigate a bit on this, and the following points made it appealing to the project:
In order to close this issue I propose the following plan:
Future work not necessary to close this issue:
|
Looking very good! Looking forward to seeing new results.
I don't know how useful it would be to run in GHA, these are shared resources so results might be polluted. Last time I googled it, it seemed that benchmarks in GHA were not that common. But maybe in practice figures can still be useful. |
Use the google benchmark library [1] to write micro-benchmarks for the vector math routines.
Each benchmark should be invoking the function with random values in the input range.
[1] https://github.com/google/benchmark
The text was updated successfully, but these errors were encountered: