2016-01-19 2 views
0

Я пытаюсь создать caffe на кластере GGPU. Я установил много зависимостей во вложенной папке моего дома, используя linuxbrew. Одна из этих зависимостей - это обновленная версия cmake (необходима).linuxbrew установлен cmake на кластере не может найти lib в/usr/lib64

Когда я запускаю команду

cmake .. 

я получаю этот выход

-- Boost version: 1.59.0 
-- Found the following Boost libraries: 
-- system 
-- thread 
-- filesystem 
-- Found gflags (include: /home/cgvg/.linuxbrew/include, library: /home/cgvg/.linuxbrew/lib/libgflags.so) 
-- Found glog (include: /home/cgvg/.linuxbrew/include, library: /home/cgvg/.linuxbrew/lib/libglog.so) 
-- Found PROTOBUF Compiler: /home/cgvg/.linuxbrew/bin/protoc 
-- Found lmdb (include: /home/cgvg/.linuxbrew/include, library: /home/cgvg/.linuxbrew/lib/liblmdb.a) 
-- Found LevelDB (include: /home/cgvg/.linuxbrew/include, library: /home/cgvg/.linuxbrew/lib/libleveldb.so) 
-- Found Snappy (include: /home/cgvg/.linuxbrew/include, library: /home/cgvg/.linuxbrew/lib/libsnappy.so) 
-- CUDA detected: 7.5 
-- Automatic GPU detection failed. Building for all known architectures. 
-- Added CUDA NVCC flags for: sm_20 sm_21 sm_30 sm_35 sm_50 
-- OpenCV found (/home/cgvg/sottile/opencv/share/OpenCV) 
CMake Error at /home/cgvg/.linuxbrew/Cellar/cmake/3.4.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message): 
    Could NOT find Atlas (missing: Atlas_LAPACK_LIBRARY) 
Call Stack (most recent call first): 
    /home/cgvg/.linuxbrew/Cellar/cmake/3.4.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE) 
    cmake/Modules/FindAtlas.cmake:42 (find_package_handle_standard_args) 
    cmake/Dependencies.cmake:88 (find_package) 
    CMakeLists.txt:38 (include) 


-- Configuring incomplete, errors occurred! 
See also "/home/cgvg/sottile/caffe/build/CMakeFiles/CMakeOutput.log". 
See also "/home/cgvg/sottile/caffe/build/CMakeFiles/CMakeError.log". 

и кажется, что нет ничего я могу сделать, чтобы правильно связать ATLAS LIBS. Недостающих ЛИЭСЫ находятся под

/usr/lib64/atlas-sse3 

Возможно ли, что существует ограничение такого, что мой linuxbrewed CMake не может связать с верхней папкой?

В сообщении об ошибке говорится, что:

cmake/Modules/FindAtlas.cmake:42 

Я попытался изменить этот файл, добавив правильные пути:

set(Atlas_INCLUDE_SEARCH_PATHS 
    /usr/include 
    $ENV{Atlas_ROOT_DIR} 
    $ENV{Atlas_ROOT_DIR}/include 
) 

set(Atlas_LIB_SEARCH_PATHS 
    /usr/lib64/atlas 
    /usr/lib64/atlas-sse3 
    $ENV{Atlas_ROOT_DIR} 
    $ENV{Atlas_ROOT_DIR}/lib 
) 

и ничего не произошло.

я попытался изменить PATH и LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/atlas-sse3 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/include/atlas-x86_64-base-sse3/ 

и ничего не произошло.

Я не ветеран linux, поэтому прошу прощения, если я пропустил важную информацию. Любое предложение приветствуется.

EDIT: это содержание/USR/lib64/atlas3-SSE3:

libatlas.a  libcblas.so.3.0 libf77blas.so.3.0 libptcblas.so.3 
libatlas.so  libclapack.so  liblapack.a  libptcblas.so.3.0 
libatlas.so.3 libclapack.so.3 liblapack.so  libptf77blas.a 
libatlas.so.3.0 libclapack.so.3.0 liblapack.so.3  libptf77blas.so 
libcblas.a  libf77blas.a  liblapack.so.3.0 libptf77blas.so.3 
libcblas.so  libf77blas.so  libptcblas.a  libptf77blas.so.3.0 
libcblas.so.3 libf77blas.so.3 libptcblas.so 
libatlas.a  libcblas.so.3.0 libf77blas.so.3.0 libptcblas.so.3 
libatlas.so  libclapack.so  liblapack.a  libptcblas.so.3.0 
libatlas.so.3 libclapack.so.3 liblapack.so  libptf77blas.a 
libatlas.so.3.0 libclapack.so.3.0 liblapack.so.3  libptf77blas.so 
libcblas.a  libf77blas.a  liblapack.so.3.0 libptf77blas.so.3 
libcblas.so  libf77blas.so  libptcblas.a  libptf77blas.so.3.0 
libcblas.so.3 libf77blas.so.3 libptcblas.so 
+0

Пропущенная переменная заполняется путём к библиотеке, возможные имена которой: 'alapack_r',' alapack' и 'lapack_atlas'. Существует ли библиотека с одним из заданных имен под '/ usr/lib64/atlas-sse3'? Если да, то каков его точный путь (с расширением файла)? – Tsyvarev

+0

Я отредактировал сообщение – NLK511

+0

Итак, в каталоге нет такого файла библиотеки. Возможно, вы используете установку библиотеки inccorect. Или найти скрипт устарел. – Tsyvarev

ответ

0

Кажется, что LAPACK поставляется в атласе, по этой причине FindAtlas.cmake не в состоянии найти alapack_r, alapck или lapack_atlas.

Достаточно отредактировать caffe_folder/cmake/Module/FindAtlas.cmake, найдите имена Atlas_LAPACK_LIBRARY и добавьте clapack в список libs.

Это полностью решает проблему.

+1

Другая возможность заключается в том, чтобы вручную установить переменную кэша 'Atlas_LAPACK_LIBRARY' вручную, например, как параметр' -D' для cmake. В любом случае это выглядит как ошибка в скрипте 'FindAtlas.cmake'. – Tsyvarev