NVIDIA-Genomics-Research / GenomeWorks

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

[samples] fix sample compilation for gcc9 #594

Closed tijyojwad closed 3 years ago

tijyojwad commented 3 years ago

Adding missing headers to sample apps to allow for compilation with gcc9.

ohadmo commented 3 years ago

rerun tests

ohadmo commented 3 years ago

The reason the CUDA 9.0 was failing is that in the cuda9.0-ubuntu16-python 3.5 image the installed CMake version was 3.16, but for the cuda9.0-ubuntu16.04-python 3.6 image the installed version is 3.18 and It turns out that for older CMake versions than 3.18 the compute_72 is not generated, however from CMake 3.18 it does. This causes the nvcc failure we noticed.

We can see that in the pipeline ttest output from last week before the configuration changes were merged in rapidsai/gpuci-scripts/pull/313, where the python3.6 image was used for CUDA 9.0: https://gpuci.gpuopenanalytics.com/blue/rest/organizations/jenkins/pipelines/clara-genomics/pipelines/gpuci/pipelines/clara-genomics-analysis/pipelines/branches/pipelines/clara-genomics-analysis-gpu-branch-build/runs/996/log/?start=0

In the GenomeWorks setup CI script, we only specify in the conda installation command that CMake should be >= 3.10.2

Now, we asked ourselves why is this happening? after all the only difference in the way we create the above images is the python version, so it turns out that the python3.5 conda package dependencies conflicts with the newest CMake conda package, so if i try to run conda install --override-channels -c conda-forge cmake="3.18" in the gpuci/clara-genomics-base:cuda9.0-ubuntu16.04-gcc5-py3.5 container it fails with the following conflicts:

(parabricks) root@2ad31bc2aad6:/# conda install --override-channels -c conda-forge cmake="3.18"
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: | 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                                                                                                             

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package ncurses conflicts for:
python=3.5 -> ncurses[version='5.9.*|5.9|>=6.1,<6.3.0a0']
python=3.5 -> sqlite[version='>=3.24.0,<4.0a0'] -> ncurses[version='>=6.2,<6.3.0a0']

Package libgcc-ng conflicts for:
python=3.5 -> libgcc-ng[version='>=4.9']
python=3.5 -> bzip2[version='>=1.0.6,<2.0a0'] -> libgcc-ng[version='>=7.3.0|>=7.5.0']

Package libstdcxx-ng conflicts for:
python=3.5 -> libffi[version='>=3.2.1,<3.3.0a0'] -> libstdcxx-ng[version='>=7.3.0|>=7.5.0']
python=3.5 -> libstdcxx-ng[version='>=4.9']

Package xz conflicts for:
cmake=3.18 -> xz[version='>=5.2.5,<5.3.0a0']
python=3.5 -> xz[version='5.0.*|5.2.*|>=5.2.3,<5.3.0a0']