micmacIGN / micmac

Free open-source photogrammetry software tools
http://micmac.ensg.eu
Other
720 stars 155 forks source link

GPU support #103

Open Ciaran1981 opened 6 years ago

Ciaran1981 commented 6 years ago

Hello All,

GPU support does not seem to cope sets of images of 100s+ (really +200-1000s).

A block processing add on would be useful to prevent the GPU memory being rapidly overloaded

That way when calculating the correlation with CUDA GPU support could still be viable with big datasets.

Ciaran1981 commented 6 years ago

I have written a work around script that feeds a certain number of images at a time to PIMs (it only seems to cope with ~ 10-15 @4k*6k at any one time). I imagine in the end this takes longer than using CPUs though with a large amount even that is prone to compilation errors

stefanonicotri commented 3 years ago

hi @Ciaran1981, is GPU support natively available in MicMac? do you know how to compile it in order to support CUDA? (sorry for bothering you, but I have found nothing...)

Ciaran1981 commented 3 years ago

Hi,

I think the GPU support was never completed (I'm not a micmac developer). Quite honestly I don't think it is is worth the hassle as it only works for Malt on limited sizes and quantities of images so would not recommend it. If you have relatively few CPU threads it might be worthwhile....

With that disclaimer - I got it to build and run with the following (had to use an old gcc...). I also had to update the GpGpu.cmake file with the 6.1 architecture (https://github.com/Ciaran1981/Sfm/blob/master/GpGpu.cmake).

`cmake -DWITH_OPEN_MP=OFF -DCMAKE_C_COMPILER=/usr/bin/gcc-5 -DCMAKE_CXX_COMPILER=/usr/bin/g++-5 -DCUDA_ENABLED=1 -DCUDA_SDK_ROOT_DIR=/path/to/NVIDIA_CUDA-9.2_Samples/common -DCUDA_SAMPLE_DIR=/path/to/NVIDIA_CUDA-9.2_Samples -DCUDA_CPP11THREAD_NOBOOSTTHREAD=ON ..

make install -j k`

stefanonicotri commented 3 years ago

hi @Ciaran1981, thanks a lot for your reply. I had tried that set of flags (with newer versions of GCC and CUDA), but compilation failed. I think I will use CPUs :) cheers