Skip to content

Troubleshooting

David Chan edited this page Aug 8, 2018 · 6 revisions

Common Errors

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.

Python Errors


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.

C++ Errors



Build Errors


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

Clone this wiki locally