[vspline] 48/72: documentation
Kay F. Jahnke
kfj-guest at moszumanska.debian.org
Sun Jul 2 09:02:42 UTC 2017
This is an automated email from the git hooks/post-receive script.
kfj-guest pushed a commit to branch master
in repository vspline.
commit aaaedc2833767d33bbf35cb7b59c583456685703
Author: Kay F. Jahnke <kfjahnke at gmail.com>
Date: Thu Apr 20 11:51:43 2017 +0200
documentation
---
README.rst | 45 +++++++++++++--------------------------------
1 file changed, 13 insertions(+), 32 deletions(-)
diff --git a/README.rst b/README.rst
index 20e3621..feaf541 100644
--- a/README.rst
+++ b/README.rst
@@ -69,7 +69,7 @@ On the evaluation side I provide
- evaluation of nD arrays of coordinates (generalized remap() function)
- coordinate-transformation based remap function
-The code at the very core of my B-spline coefficient generation code evolved from the code by Philippe Thévenaz which he published here_, with some of the boundary condition treatment code derived from formulae which Philippe Thévenaz communicated to me. Next I needed code to handle multidimensional arrays in a generic fashion in C++. I chose to use Vigra_. Since my work has a focus on signal (and, more specifically image) processing, it's an excellent tool, as it provides a large body o [...]
+The code at the very core of my B-spline coefficient generation code evolved from the code by Philippe Thévenaz which he published here_, with some of the boundary condition treatment code derived from formulae which Philippe Thévenaz communicated to me. Next I needed code to handle multidimensional arrays in a generic fashion in C++. I chose to use Vigra_. Since my work has a focus on signal (and, more specifically image) processing, it's an excellent tool, as it provides a large body o [...]
I did all my programming on a Kubuntu_ system, running on an intel(R) Core (TM) i5-4570 CPU, and used GNU gcc_ 5.4.0 and clang_ 3.8.0 to compile the code in C++11 dialect. While I am confident that the code runs on other CPUs, I have not tested it with other compilers or operating systems (yet).
@@ -104,46 +104,27 @@ TODO: construction site! link here to static HTML once it's online
Speed
-----
-While performance will vary widely from system to system and between different compiles, I'll quote some measurements from my own system. I include benchmarking code (roundtrip.cc in the examples folder). Here are some measurements done with "roundtrip", working on a full HD (1920*1080) RGB image, using single precision floats internally - the figures are averages of ten runs:
+While performance will vary widely from system to system and between different compiles, I'll quote some measurements from my own system. I include benchmarking code (roundtrip.cc in the examples folder). Here are some measurements done with "roundtrip", working on a full HD (1920*1080) RGB image, using single precision floats internally - the figures are averages of several runs:
testing bc code MIRROR spline degree 3
-
-avg 10 x prefilter:........................ 13.500000 ms
-
-avg 10 x remap1 from pre-split coordinates: 62.599998 ms
-
-avg 10 x remap1 from unsplit coordinates:.. 69.099998 ms
-
-avg 10 x remap with internal spline:....... 88.199997 ms
-
-avg 10 x remap with functor & internal bspl 90.599998 ms
-
-avg 10 x remap with functor & external bspl 70.500000 ms
-
+avg 32 x prefilter:........................ 13.093750 ms
+avg 32 x remap from unsplit coordinates:... 59.218750 ms
+avg 32 x remap with internal spline:....... 75.125000 ms
+avg 32 x index_remap ...................... 57.781250 ms
testing bc code MIRROR spline degree 3 using Vc
+avg 32 x prefilter:........................ 9.562500 ms
+avg 32 x remap from unsplit coordinates:... 22.406250 ms
+avg 32 x remap with internal spline:....... 35.687500 ms
+avg 32 x index_remap ...................... 21.656250 ms
-avg 10 x prefilter:........................ 9.600000 ms
-
-avg 10 x remap1 from pre-split coordinates: 20.000000 ms
-
-avg 10 x remap1 from unsplit coordinates:.. 21.299999 ms
-
-avg 10 x remap with internal spline:....... 37.000000 ms
-
-avg 10 x remap with functor & internal bspl 37.599998 ms
-
-avg 10 x remap with functor & external bspl 21.700001 ms
-
-As can be seen from these test results, using Vc on my system speeds evaluation up a good deal. When it comes to prefiltering, a lot of time is spent buffering data to make them available for fast vector processing. The time spent on actual calculations is much less. Therefore prefiltering for higer-degree splines doesn't take much more time (when using Vc):
+As can be seen from these test results, using Vc on my system speeds evaluation up a good deal. When it comes to prefiltering, a lot of time is spent buffering data to make them available for fast vector processing. The time spent on actual calculations is much less. Therefore prefiltering for higher-degree splines doesn't take much more time (when using Vc):
testing bc code MIRROR spline degree 5 using Vc
-
-avg 10 x prefilter:........................ 11.000000 ms
+avg 32 x prefilter:........................ 10.687500 ms
testing bc code MIRROR spline degree 7 using Vc
-
-avg 10 x prefilter:........................ 12.700000 ms
+avg 32 x prefilter:........................ 13.656250 ms
Using double precision arithmetics, vectorization doesn't help so much, and prefiltering is actually slower on my system when using Vc. Doing a complete roundtrip run on your system should give you an idea about which mode of operation best suits your needs.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/vspline.git
More information about the debian-science-commits
mailing list