Closed Xparx closed 3 years ago
Looking at the error closely it looks like even though i did update-alternatives to gcc version 8.4 for gcc, keops keeps picking cpp version 9.3.0 anyway. Update alternatives for cpp to version 8 did not change much.
So after some fiddling it turns out that version 8 of gcc
and g++
are not the same. To make it work I had to
update-alternative
for both. or at least the first part worked with gcc
<9 and the second error got fixed with g++
< 9.
At least it is not throwing an error at me.
Hi @Xparx ,
Thanks for your interest in the library! Indeed, this gcc/g++ confusion is a common issue: I will make it more explicit in the doc. I understand that you solved your configuration issue, with everything now working as expected. Is that correct?
On a side note, I also see that you are a genomics expert, which is very interesting :-) Would you have any feature request for the library, e.g. for string kernels, etc.? We're planning to add support for "combinatorial" formulas soon, but don't really know what types of operations would be most relevant for the genomics community. If you could suggest us some references on the subject, this would be very helpful!
Best regards, Jean
Thanks for the quick reply! I did manged to fix the issue I had. Will delve deeper as I have a specific application I want to try to use keops for when time allows (https://gitlab.com/Xparx/dewakss).
I can see the application of keops to some "genomics area" problems but it was a while since I worked with sequences specifically to any degree so my references are not very relevant but I would be happy getting back to you with this ones I mulled if over or I run into any problems that might be fitting.
I see, thanks a lot for your link! Biologist friends of mine are working with single-cell RNA sequencing data on a daily basis, and I'd be very interested to see what types of methods will be designed to handle these problems. In the short term (i.e. for the summer), our first priority will be to provide better support for UMAP and the K-NN descent algorithm, but we'd be happy to provide the necessary routines for advanced methods too.
Since your compilation problem has been solved, I'm closing the issue now - but please feel free to open a new discussion if you have any other question or feature request in the future.
Best regards, Jean
Single cell data is definitely the de facto standard at this point for high throughput expression data in biology. The largest dataset is of the size of millions of individual cells which is not possible to handle for my method currently. So an efficient knn method would be very interesting to me. I was wondering how you were handling that currently as your knn method looks pretty fast based on your benchmarks even though they are of a somewhat low dimension in those examples.
If you manage to get the descent algorithm implemented I would suggest keeping the knn part separate from the projection component of umap. This is how it is currently setup in the scanpy package and makes it possible to compute a knn for any arbitrary purpose without extra fluff.
Many thanks
Hi I met the same problem and try the code above to install pykeops-1.6 to solve this. It seems to work well with the test_torch_bindings example but fails with test_numpy_bindings. The error information (Error when compiling formula.) is too short. May I ask if you have any insights on how to fix it? See my output for two tests below.
test_numpy_bindings:
[KeOps] ../.cache/keops/build has been cleaned.
[KeOps] Compiling main dll ... OK
[KeOps] Compiling formula Sum_Reduction((Var(0,3,0)-Var(1,3,1))|(Var(0,3,0)-Var(1,3,1)),1) ...
[KeOps] Error when compiling formula.
test_torch_bindings:
[KeOps] /.cache/keops/build has been cleaned.
[KeOps] Compiling formula Sum_Reduction((Var(0,3,0)-Var(1,3,1))|(Var(0,3,0)-Var(1,3,1)),1) ... OK
/.local/lib/python3.7/site-packages/torch/cuda/__init__.py:80: UserWarning: CUDA initialization: The NVIDIA driver on your system is too old (found version 9010). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternatively, go to: https://pytorch.org to install a PyTorch version that has been compiled with your version of the CUDA driver. (Triggered internally at ./c10/cuda/CUDAFunctions.cpp:112.)
return torch._C._cuda_getDeviceCount() > 0
pyKeOps with torch bindings is working!
I am using Cuda V11.5.119 and g++ (GCC) 10.2.0.
I managed to install keops in a viritual environment on ubuntu 20.04 I'm using python3.8 and managed to downgrade gcc to use version 8 rather than 9. After that I could try to compile the knn example. It seems to compile correctly but running it results in the following error:
I'm not sure where to go from here. running
Any help would be appreciated.
I also looked into the test your install section. Running:
results in
but crashes the jupyter-kernel. The torch gpu version results in the same error as above
results in: