mtazzari / galario

Gpu Accelerated Library for Analysing Radio Interferometer Observations

Home Page:https://mtazzari.github.io/galario/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build CUDA version on conda-forge

mtazzari opened this issue · comments

Now that many users have started using GALARIO on GPUS, it would significantly increase user-friendliness to ship the GPU version through conda.
It seems that conda-forge now supports CUDA packages quite straightforwardily. I think that adding cudatoolkit as a dependency would be sufficient:
https://github.com/conda-forge/cudatoolkit-dev-feedstock

A solution adopted by some packages is to offer two versions of the conda package, i.e. galario and galario-gpu.
Since we structured galario to have the CPU/GPU libraries inside rather than the whole library compiled for CPU or GPU, a possible solution is to use a docker image to prepare the recipe.

Here there is some discussion:
conda-forge/caffe-feedstock#27

Here two example recipes that use cuda 8:
https://github.com/loopbio/caffe-feedstock/blob/f401380a3b63271ddfe2d89a5c68d2448e80ec00/recipe/meta.yaml#L23

this recipe uses a docker image (could be the neatest way for us):
https://github.com/loopbio/caffe-feedstock/blob/f401380a3b63271ddfe2d89a5c68d2448e80ec00/conda-forge.yml#L12-L21

Here two example recipes that use cuda 8:

I need to check this out, we should always use the latest cuda version so people with the latest hardware benefit. I hope the conda forge system allows us to use the latest cuda automatically

I hope the conda forge system allows us to use the latest cuda automatically

Of course nothing comes for free but it seems that conda is supported by nvidia guys, and they already moved cudatoolkit-dev to the latest version 10. That's great

I think it would be easiest to always build on ci using cudatoolkit-dev but not require that for installation. Instead, the user would have to have cuda installed as usual. I wonder if there is a problem if a user has cuda 9 installed and we build galario with cuda 10. But I thought nvidia would strive hard for backwards compatibility.