-
Notifications
You must be signed in to change notification settings - Fork 134
Troubleshooting
Described below are some common errors that people may encounter while using/building the library. We've tried to be complete - however there's always a chance that we've missed something. If you think you've found a bug, follow the guide here to submit a github issue, and we'll take a look.
ImportError: No module names tsnecuda
This means that you have not properly compiled or installed the tsne-cuda library. Please follow the instructions here to compile and install.
GPUassert: an illegal memory access was encountered <PATH>/tsne-cuda/src/util/cuda_utils.cu 30
This shouldn't happen as of the latest version of the code. This can often happen when the attractive forces get extremely large, and cannot properly be computed. To fix this, make sure that your points are suitably normalized, and that your hyper-parameters are well formatted. If this does not fix the problem, please submit a bug report as we are actively trying to track this error, and resolve its cause.
OSError: libfaiss.so: cannot open shared object file: No such file or directory
FAISS doesn't come pre-installed with the pip binaries as of right now. Please install FAISS here and then make sure the libraries are on your path (which you can often do by passing the location of the libfaiss.so file to LD_LIBRARY_PATH environment variable)
The Code Hangs
This shouldn't happen at all, but it may be because your parameters are not well founded. Check your perplexity and learning rate, and be sure that they are reasonable for your problem.
CMake Error at CMakeLists.txt:77 (add_subdirectory):
The source directory
/home/david/Classes/tsne-cuda/third_party/gtest
does not contain a CMakeLists.txt file.
or
CMake Error at CMakeLists.txt:82 (add_subdirectory):
The source directory
/home/david/Classes/tsne-cuda/third_party/faiss
does not contain a CMakeLists.txt file.
The git sub-modules were not properly initialized. To fix this run the following in the root directory of the repository:
git submodule init
git submodule update
In file included from /usr/local/cuda/include/host_config.h:50:0,
from /usr/local/cuda/include/cuda_runtime.h:78,
from <command-line>:0:
/usr/local/cuda/include/crt/host_config.h:119:2: error: #error -- unsupported GNU version! gcc versions later than 6 are not supported!
#error -- unsupported GNU version! gcc versions later than 6 are not supported!
This happens when attempting to build with GCC >= 6.04. To fix, when configuring your build use an explicit host compiler version:
cmake .. -DCMAKE_CXX_COMPILER=g++-6 -DCMAKE_C_COMPILER=gcc-6
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<int, int, int>&&; bool <anonymous> = true; _Elements = {int, int, int}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), int, int, int>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), int, int, int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), int, int, int>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {int, int, int}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), int, int, int>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), int, int, int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), int, int, int>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> = <missing>]’
/usr/include/zmq.hpp:188:8: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
return __and_<__not_<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<int, int, int>&&; bool <anonymous> = true; _Elements = {int, int, int}]’ not a return-statement
}
This is a bug with ZMQ which occurs when using a compiler with version > 6.0 with NVCC. To solve, use a compiler with version < 6.0, or use -DWITH_ZMQ=FALSE