Frequently Asked Questions¶
How should I cite GraphVite?¶
If you find GraphVite helps your research, please cite it in your publications.
@inproceedings{zhu2019graphvite,
title={GraphVite: A High-Performance CPU-GPU Hybrid System for Node Embedding},
author={Zhu, Zhaocheng and Xu, Shizhen and Qu, Meng and Tang, Jian},
booktitle={The World Wide Web Conference},
pages={2494--2504},
year={2019},
organization={ACM}
}
Why is there a PackagesNotFoundError
in conda installation?¶
Some dependencies of the library aren’t present in the default channels of conda. Config your conda with the following command, and try installation again.
conda config --add channels conda-forge
Why is my CUDA driver version insufficient for CUDA runtime version?¶
This is because you have installed a GraphVite compiled for some later CUDA version.
You can check your CUDA version with nvcc -V
, and then install the corresponding
package by
conda install -c milagraph graphvite cudatoolkit=x.x
where x.x
is your CUDA version, e.g. 9.2 or 10.0.
Note graphvite does not support CUDA version earlier than 9.2, due to a failure of
old version nvcc
.
Why is there a compilation error for template deduction?¶
This is due to a failure of old version nvcc
in compiling the templates in
pybind11
. Generally, nvcc 9.2
or later will work.
Why is the access to embeddings so slow?¶
Due to the binding mechanism, the numpy view of embeddings is generated each time when you access the embeddings in Python. Such generation may take a non-trivial overhead. To avoid that cost, we recommend you to copy the reference of the embeddings.
embeddings = solver.vertex_embeddings
Now the access to embeddings
should be good.
How can I speed up compliation?¶
The compilation can be accelerated by reducing the number of template instantiations.
You can pass -DFAST_COMPILE=True
to cmake, which will only compile commonly used
embedding dimensions. You may also comment out unnecessary instantiations in
src/graphvite.cu
for further speed-up.