Am 01.03.21 um 17:07 schrieb Harry van der Wolf:
> Hi,
>
> I understand that ARM is different. That's also why I mentioned to not
> put too much effort into it.
It should not be too hard to get pv to run on ARM, the question is how
*fast* I can make it. I can set up the compilation to not use Vc for the
SIMD code, which makes everything standard C++11, with no hardware
dependencies. If Vc can be used, this should make it faster.
> Yes, I'm willing to cooperate in porting to armhf for the raspberry pi'
> s. I also have another rpi4 which runs Ubuntu Mate 20.04 (currently),
> but my (headless) server is always on.
> But I use the other one for all kind of things, so helping to port pv
> could be another option.
I'll set up a branch called 'native' which will offer three targets:
- scalar version, not making an attempt at SIMD whatsoever
- vspline SIMD implementation, using vspline's SIMD emulation
- Vc SIMD implementation, attempting to use Vc on ARM.
All of the targets will be compiled with '--march=native', telling the
compiler to compile for the ISA it's running on. The binaries will only
run on the build machine or better. Then we can take it from there -
especially the Vc target may not build without tweaking.
I'll get in touch once I have the branch set up, and you can pull the
branch and see whether it compiles on your ARM machine.
> I have no idea though how much the "normal" ARM chips vary from the new
> Apple Intel M1. That might be a completely different beast (the 8-core
> is at least when it comes to performance).
> I read that Apple uses the same Rosetta (V2) for running Intel based
> programs on the new M1./(Just like 10-12 years ago when they switched
> from PowerPC to Intel to run PowerPC apps on Intel. I also guess the
> universal binaries will come to life again. At that time I took over
> from Ippei Ukai for building Hugin on Mac. A platform I left in 2012 or
> so for being too closed)./
> So maybe you do not have to port immediately,but can simply run your
> intel based MacOS version on the new M1' s.
No, let's give it a go. It's not much work on my side, a first try at
your side takes a few minutes, and if it succeeds, we have an ARM port
of pv to play with. I anticipate that the 'native' approach should even
function on all platforms (including intel/AMD), but the resulting
binaries will be hardware-dependent, this is why I went for automatic
ISA detection in the intel/AMD version, to make it easier for users and
packagers.
>
>
> On the RPi4 I also did the:
> git clone https://github.com/VcDevel/Vc.git
> cd Vc
> git checkout 1.4
> mkdir build
> cd build
> cmake -DCMAKE_CXX_COMPILER=clang++ -DBUILD_TESTING=0 ..
> make
> sudo make install
> And then tried to rebuild pv, but that doesn' t make a difference. The
> exact same error.
Wait for the new branch, hopefully the outcome will be better.
> ======================================
> With regard to Intel MacOS: I had just built multiblend for David on my
> old (by now terribly slow) 2008 MacBook Pro, so I tried the same for pv
> also using macports (as home brew does not have vigra and I want to
> keep it simple).
> (install macports using pkg)
> (from terminal do a: sudo port -v selfupdate)
>
> Getting dependencies:
> sudo port install sfml
> sudo port install exiv2
> sudo port install vigra -python38 -python39
> sudo port install Vc
> (This installs a whole lot of other dependencies as well. Note also the
> uppercase in Vc )
>
> Get and build pv:
> git clone https://bitbucket.org/kfj/pv
> cd pv
> git checkout mac
> git status (to check whether you have the mac branch)
> make
>
> It builds fine and I only did some viewing of images until now.
Thank you for confirmig a mac build! This is great, you're now only the
third person I know of who's succeeded in building pv on a mac. I don't
have a mac myself, so it's hard for me to code for it. Please note that
the mac branch has not yet been updated to contain my new code, I'll do
that soon-ish. Old macs are like old pcs, they won't have fast SIMD
units. I routinely build on an old IBM Thinkpad R60e with a core2 Duo,
to confirm that the code works on 32bit intel hardware with SSE only. It
works, but it takes forever... My desktop is a Haswell core-i5, which
has AVX2. This is where it starts being fun :D
Since you're the one who's building hugin on the mac, maybe you can give
me a hint on how to write a 'port file' to provide a pv package for
macports? Is that hard? And is it hard to provide a package which users
can simply download from the app store? I proposed to bundle pv with
hugin, because it would make a good addition to the suite, what do you say?
Kay
--
A list of frequently asked questions is available at:
http://wiki.panotools.org/Hugin_FAQ
---
You received this message because you are subscribed to the Google Groups "hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/hugin-ptx/d88e4cba-d832-d9ae-07c3-e045a32f6e0e%40yahoo.com.