I've gone and packaged up some snapshots for Windows users of the various
configuration options that are possible - OpenMP support, GPU support,
64-bit support, and posted them at
http://ryan.sleevi.com/files/enblend-enfuse-4.0/
In a change-up of things, I've gone ahead and linked them against the
DLL-based versions of the MS C/C++ Runtime (for various reasons), and I want
to make sure that process is working smooth for people. Most importantly, if
you're planning to mess with OpenMP, you'll need to make sure you have the
redistributable. Many already have the necessary files, as they have been
shipping for some time, but for those who have issue, the two links are:
x86 -
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-
8A4D-074B9F2BC1BF Microsoft Visual C++ 2008 Redistributable Package (x86)
x64 -
http://www.microsoft.com/downloads/details.aspx?familyid=BD2A6171-E2D6-4230-
B809-9A8D7548C1B6 Microsoft Visual C++ 2008 Redistributable Package (x64)
This isn't an "official" release of 4.0 by any means, but this is an attempt
to get dev binaries out there, as well as a chance to try out a more
automated build system that should make it easier to package enblend/enfuse
and Hugin in the future, so feedback would be appreciated.
Cheers!
the next level would be to run this kind of tests in the installer and
select the appropriate version to be installed on the system.
If a dual core is already so much faster than GPU stitching, I'd tend to
install the OpenMP version on any x86 multi-core. Not sure about the old
multi-threading pentium. Leave the GPU accelerated only for people with
old boxes and poweful GPUs.
Yuv
Any idea?
Btw, there are droplets supplied only for enfuse but not enblend. Is it
because those for enblend didn't need any changes and I can continue to
use them?
regards
Joachim
yes, there are some changes in how enblend / enfuse is called in 4.0
we will need to adapt this in Hugin - ideally with an enblend --version
to find out if we're using a "legacy" enblend-enfuse; and with the
Makefile adapted to the enblend-enfuse "generation" found on the machine.
Yuv
J. Schneider schrieb:
https://sourceforge.net/tracker/?func=detail&aid=2853823&group_id=77506&atid=550441
If I recall correctly, the cached file representation used by enblend has
not been made re-entrant/multi-threaded aware yet, so it causes some issues.
I'm not sure if any work has been done towards supporting it, but I suspect
it's not exactly an 'easy' task either, tracking 'hot' and 'cold' image
segments across multiple threads efficiently.
just trying a selfcompiled v4.0 - stitching a pretty big project now.
Inspecting the enblend run with top I see that indeed enblend sometimes
uses more than 100% cpu - but never more than like 200%, usually it is
around 100% and from time to time there is a peak using somewhat more.
As I have a quadcore and I see it is perfectly used up by nona I'm a
little disappointed about enblend - was this a malconfiguration?
enblend verbose version info tells me:
enblend 4.0-b93c2aed500d
Extra feature: dmalloc support: no
Extra feature: image cache: no
Extra feature: GPU acceleration: yes
Extra feature: OpenMP: yes - version 2005-5
- support for nested parallelism
- support for dynamic adjustment of the
number of threads
- using 4 processors and up to 3 threads
Is this the up-to date version or id I compile something wrong?
Thanks :)
Benjamin
> First of all CPU load is a silly
> measure.[...] For
> a user only wall-clock time matters.
>
sure. I did not yet take times, but the new version is definitely faster
than the old one. Of course 3 busy-waiting cpus and only one doing
something useful will stress a 4-core cpu the same as 4 useful threads -
the same in 'top', different wall clock time.
> Second, read about Amdahl's law
> http://en.wikipedia.org/wiki/Amdahl's_law
> It matters.
>
I know Amdahl's law, (good old parallel programming lectures) but I
thought enblends work was somewhat simpler to split up than it seems.
> The current implementation does _not_ scale
> well beyond two processors. The reasons for
> this are yet unknown. You are welcome to run
> Enblend with your favorite profiler, identify
> the bottleneck(s), and send me a bunch of
> patches that rectify the congestion.
>
Can you propose a (free) multi-thread profiler for linux? (Looking out
for one for some time now...) If so, I'll have a look at it, enough of
exploiting hugin/panotools now, time to give something back ;)
> IMO, you did nothing wrong. My results are
> similar.
Fine :) I will check later how much faster enblend has become. I'm
missing the output which image is processed (or, is finished being
processed) a little...
Thanks for reply :)
Benjamin
> Probably because enblend was called with "-w -f3000x1500".
Probably. The problem is that enblend doesn't correctly parse the
command line. It expects a MODE setting after -w or --wrap (which are
synonymous). This is somehow contrary to the documentation which says:
"Specifying --wrap without MODE selects horizontal wrapping".
I suspect this will be corrected in the final version.
best regards
--
Erik Krause
http://www.erik-krause.de