NVIDIA-Genomics-Research / GenomeWorks

SDK for GPU accelerated genome assembly and analysis
https://clara-parabricks.github.io/GenomeWorks/
Apache License 2.0
286 stars 76 forks source link

GenomeWorks compiling error #554

Closed asan-emirsaleh closed 4 years ago

asan-emirsaleh commented 4 years ago

Hi! I am working around two days trying to compile GenomeWorks which included into racon genome assembler. GCC = 9.3.0 cmake = 3.18.20200908-g1d74a64 make = 4.3 nvcc = 11.0 cuDNN = 8.0.2 nvidia driver = 450.51.06

CMakeCache.txt was manually edited with including CMAKE_CXX_FLAGS:STRING=-DFMT_USE_USER_DEFINED_LITERALS=0 string the error occured whyle the most of work was done: [ 81%] Linking CXX static library ../../lib/libcudaaligner.a Reaping winning child 0x55c2e3d8eaf0 PID 14870 Live child 0x55c2e3d8eaf0 (lib/libcudaaligner.a) PID 14872 Reaping winning child 0x55c2e3d8eaf0 PID 14872 Live child 0x55c2e3d8eaf0 (lib/libcudaaligner.a) PID 14874 Reaping winning child 0x55c2e3d8eaf0 PID 14874 Removing child 0x55c2e3d8eaf0 PID 14874 from chain. Considering target file 'GenomeWorks/cudaaligner/CMakeFiles/cudaaligner.dir/build'. File 'GenomeWorks/cudaaligner/CMakeFiles/cudaaligner.dir/build' does not exist. Considering target file 'lib/libcudaaligner.a'. File 'lib/libcudaaligner.a' was considered already. Finished prerequisites of target file 'GenomeWorks/cudaaligner/CMakeFiles/cudaaligner.dir/build'. Must remake target 'GenomeWorks/cudaaligner/CMakeFiles/cudaaligner.dir/build'. Successfully remade target file 'GenomeWorks/cudaaligner/CMakeFiles/cudaaligner.dir/build'. Reaping winning child 0x558a0914daf0 PID 14802 Live child 0x558a0914daf0 (GenomeWorks/cudaaligner/CMakeFiles/cudaaligner.dir/all) PID 14879 [ 81%] Built target cudaaligner Reaping winning child 0x558a0914daf0 PID 14879 Removing child 0x558a0914daf0 PID 14879 from chain. Reaping losing child 0x560a19aabcb0 PID 14245 make: *** [Makefile:171: all] Error 2 Removing child 0x560a19aabcb0 PID 14245 from chain.

I updated cmake and make, but compilation still aborting. I have no a great experience on C-like languages and compilation. May be I don't understand some configs or I have to change something in cmake-generated files?

I hope you can help me to find answers. Thanks.

ahehn-nv commented 4 years ago

Hi @asantat I can't really say what's wrong from the output you sent. Does it compile fine if you do not edit the CMakeCache.txt? Could you try to compile with make VERBOSE=1 2>&1 | tee verbose_build.log and share the verbose_build.log?

asan-emirsaleh commented 4 years ago

Thank you @ahehn-nv for reply. I tried compilation both with and without an editing. Log files attached. verbose_build_with_editing.log verbose_build_without_editing.log

tijyojwad commented 4 years ago

Hi @asantat - I just went through the log and it looks like an issue with a deleted class constructor. However, what's interesting is that we didn't see it in our CI tests, and I think one reason for that is we're only testing for GCC 5 and 7 (but not 9 yet). Is there a chance you can try with gcc 5.xx or 7.xx?

asan-emirsaleh commented 4 years ago

I can do with gcc-7 (wich is enabled by update-alternatives) but all of my environment configured and much of soft compiled with gcc-9. If there were a chance to make it working with newer gcc version I'll be very glad. The gcc-10 doesn't do stuff too. Also I tried to define compiler version be 9 at cmake stage and a compilation has broken too, but the c++ version automatically selected was 14.

asan-emirsaleh commented 4 years ago

In the cmake file that was generated automatically CUPTI library path is usually missing. But the alias to library is located beside of the others. I wright the path manually every time. And the -DFMT_USE_USER_DEFINED_LITERALS=0 string if added as a cmake command line argument, doesn't appear in generated cmake file.

asan-emirsaleh commented 4 years ago

while compiling with gcc-7 compiled successfully

tijyojwad commented 4 years ago

Got it, thanks for the update @asantat . Let me see if I can fix it up, but the fix may not be very quick. Another potential option is running this in a docker container that has the right build versions and environment. Is that something you might be interested in?

tijyojwad commented 4 years ago

Hi @asantat are you unblocked with the gcc-7 support or is the gcc 9 a requirement? And would the docker image workaround be sufficient for you? We're tracking CUDA 11 support in https://github.com/clara-parabricks/GenomeWorks/issues/460 and we'll investigate adding gcc-9 to it as well

ahehn-nv commented 4 years ago

Hi @asantat. We fixed the problem you saw with GCC 9 in our latest release (v0.5.3). Could you try again?

tijyojwad commented 4 years ago

Oops this got closed because it was linked to the issue - reopening again till @asantat verifies the fix in racon (https://github.com/lbcb-sci/racon/pull/47)

asan-emirsaleh commented 4 years ago

With these fixes merged into racon it was successfully compiled with gcc-9 and CUDA 11 enabled.

ahehn-nv commented 4 years ago

Perfect! Thanks for confirming. Closing the bug then.