Closed sam598 closed 4 years ago
Hi @sam598 ,
Generally speaking, the manifold.exe did not (for some reason) execute / save an upsampled mesh (and then the error happens when the code tries to load it). Can we try a couple things?
First, did you change line 6 in options.py to be the full windows path of the manifold/build location?
If the above is correct, try removing > /dev/null 2>&1
from lines 14/ 18. Are there errors printed?
If it still doesn't work, then set a break point at utils (line 15), and copy the cmd into windows bash terminal. Does it execute? If not, try to follow the example manifold code, and see if this works.
-Rana
Ah okay. So it was a couple of different things.
I had built manifold in a sub folder of this project, so my initial path was:
.\code\Manifold\build
However visual studio built the executables into a release folder so it became:
.\code\Manifold\build\Release
However \b is a string operator so in the command line output:
.\code\Manifoluild\Release\manifold
So I simply placed both executrices in the .\code
folder.
However I still had an issue with > /dev/null 2>&1
so removing that worked. But now I am getting a GPU out of memory exception after manifold is done processing.
RuntimeError: CUDA out of memory. Tried to allocate 448.00 MiB (GPU 0; 8.00 GiB total capacity; 5.04 GiB already allocated; 46.25 MiB free; 5.84 GiB reserved in total by PyTorch)
Is that a result of removing > /dev/null 2>&1
? Or is it a result of the upsampling? I have an RTX2080 with 8GB of memory.
Hi @sam598 ,
Great, so it seems that we have solved the manifold problem (your new error is related to GPU memory). Since your GPU only has 8GB of VRAM, you should modify the --faces-to-part
flag. This specifies after how many faces to split the mesh into parts. Currently, up the default is --faces-to-part 8000 16000 20000
, which means that the mesh is "split" into 1 "part" up to 8k faces, then between 8k-16k faces it uses 2 parts. It seems you have run out of memory likely right before the 8k faces (probably at the 7316 faces mark). So I think that --faces-to-part 7000 13000 20000
will probably work for your GPU.
About the old errors you fixed: the > /dev/null 2>&1
just suppresses the output of the manifold script, but I have removed it now in db930ac1f385a9f253fe9efcd73d5be14f4247ed so it will work on windows as well. About the \b, I think using raw string in the manifold build path will fix it, I pushed a fix for this as well here aeff7cf815fc74243a601ad4d26a7b47d39abc72, hopefully now it will work on your windows machine 'out-of-the-box'.
-Rana
Yup, that now works perfectly out of the box.
Thank you so much for all of your help and for making such a great project. I'm excited to try it on some point cloud scans.
The default examples crash after the first 1000 iterations. I'm not sure if this is because Manifold.exe is not running properly, or if this is a windows filepath issue.
Once it crashes there are only 3 objects in the checkpoints\giraffe folder:
opt.txt - 1kb recon_5000.obj - 159kb recon_iter - 0kb
OS: Windows 10 Python: 3.6.4 pytorch: 1.5.0 pytorch3D: 0.2.0