trentool / TRENTOOL3

Open-Source MATLAB toolbox for transfer entropy estimation
http://trentool.github.io/TRENTOOL3/
GNU General Public License v3.0
56 stars 26 forks source link

Error during install #10

Closed delee1000 closed 6 years ago

delee1000 commented 9 years ago

I'm getting the following error:

Error using mex MEX cannot find library 'gpuKnnLibrary' specified with the -l option. MEX looks for a file with one of the names: gpuKnnLibrary.lib libgpuKnnLibrary.lib Please specify the path to this library with the -L option.

Error in install (line 4)

mex('-v',['-L' '.'], '-lgpuKnnLibrary', ['-L' CUDA_LIB_PATH],'-lcudart', 'fnearneigh_gpu.cpp');

If I rename gpuKnnLibrary.a to .lib, I get the following error:


Error using mex MEX cannot find library 'cudart' specified with the -l option. MEX looks for a file with one of the names: cudart.lib libcudart.lib Please specify the path to this library with the -L option.

Error in install (line 4)

mex('-v',['-L' '.'], '-lgpuKnnLibrary', ['-L' CUDA_LIB_PATH],'-lcudart', 'fnearneigh_gpu.cpp');

I tried the install on 2 computers with NVIDIA GPU. I can't locate any file with 'cudart' in its name.

trentool commented 9 years ago

Hi, it seems like you are trying to use the mex functions for GPU computation on a Windows machine? Unfortunately, right now GPU computation is supported for Linux and NVIDIA hardware only (see here). We may include support for Windows architectures in the future. Do you want to use the ensemble/GPU method for TE estimation? Note that you don't need to run 'install.m' if you don't want to use the GPU. Best, Patricia

delee1000 commented 9 years ago

Hi Patricia,

I do require the ensemble method for TE estimation.

I got Linux running, and now I'm getting the following error during install:

mex:  fnearneigh_gpu.cpp  not a normal file or does not exist.

Unable to complete successfully.

Error in install (line 4) mex('-v',['-L' '.'], '-lgpuKnnLibrary', ['-L' CUDA_LIB_PATH],'-lcudart', 'fnearneigh_gpu.cpp');


If it helps, I'm using Ubuntu 14.04 and MATLAB 2015a on a network license.

Thanks,

Donald

pwollstadt commented 9 years ago

Hi Donald,

are you running install.m from the TRENTOOL folder? You have to make sure that you are in the folder containing fnearneigh_gpu.cpp and range_search_all_gpu.cpp when running the script.

Best, Patricia

pwollstadt commented 9 years ago

@delee1000 if the installation is working for you, I would close this issue. Please let me know, if now everything is running as supposed.

delee1000 commented 9 years ago

Hi Patricia,

I am still having some issue with the installation, but I have put it on pause for a bit.

I think my latest issue may have something to do with permission settings. It appears that the only way I can get gcc 4.4 and everything else to work is if every file is located in the MATLAB root folder.

Thanks,

Donald

On Tue, Aug 4, 2015 at 6:48 AM, Patricia Wollstadt <notifications@github.com

wrote:

@delee1000 https://github.com/delee1000 if the installation is working for you, I would close this issue. Please let me know, if now everything is running as supposed.

— Reply to this email directly or view it on GitHub https://github.com/trentool/TRENTOOL3/issues/10#issuecomment-127618955.

ospsy commented 9 years ago

Hello,

I'm encountering a similar issue with fnearneigh_gpu (Ubuntu 14.04).

For install, MEX completed successfully - I recieved the following Warning during compilation, but it may be irrelevent to the issue: Warning: You are using gcc version '4.8.4'. The version of gcc is not supported. The version currently supported with MEX is '4.7.x'. For a list of currently supported compilers see: http://www.mathworks.com/support/compilers/current_release.

In install at 5

While running the ensemble method... I'll paste the last output with the whole exception: ################### OPTIMIZING INFORMATION TRANSFER DELAY

Estimating TE for u = 40 ms Check data and config - ok Checking number of permutations - ok Read data - ok Min. sample points left after embedding: 403 (min. required: 2.) - ok Embedding original data for channelpair 1 of 1 - ok

Starting GPU neighbour count ... Chunks in current data set: 1 (3.0932 MB per chunk, total: 3.09 MB) Number of runs: 1 (7.7329 MB per run)

channelpair 1 (u = 40) - run 1 of 1 knn search for TE ...Invalid MEX-file '/media/self/Documents/TRENTOOL3-master/fnearneigh_gpu.mexa64': libcudart.so.7.0: cannot open shared object file: No such file or directory

Error in TEcallGPUsearch (line 283) [~, distance_p21] = fnearneigh_gpu(single(pointset_p21),single(pointset_p21),k_th,TheilerT,nchunks);

Error in TEsurrogatestats_ensemble (line 826) [ncount] = TEcallGPUsearch(cfg,channelpair,pointsets_concat_1,pointsets_concat_2, ...

Error in TEfindDelay (line 49) TGA_results{uu}=TEsurrogatestats_ensemble(cfgTESS,data);

Error in InteractionDelayReconstruction_calculate (line 93) [dataprep, TEmat] = TEfindDelay(predicttimevec_u,cfgTESS,dataprep);

Error in example_script_ensemblemethod (line 80) TGA_results = InteractionDelayReconstruction_calculate(cfgTEP,cfgTESS,data);

CPU method processed without issues. Would it help to try installing again with gcc v.4.7.x? Or link against an .a static library rather than the .so dynamic library? Or compile with a version of cuda earlier than 7? Oooor..

Many thanks,

Zack

ospsy commented 9 years ago

quick update: reran install.m using older gcc - compiled without warnings; did not fix or change the issue.

ospsy commented 9 years ago

Purged and updated NVIDIA drivers and paths - problem solved.