python - 找不到 libOpenCL.so 文件
问题描述
我正在尝试在 AWS EC2 实例、linux 20.04 映像上安装带有 gpu 版本的 LightGBM。首先,我安装了 cuda 和 nvidia,如下所示:
sudo apt update
sudo apt install nvidia-cuda-toolkit
sudo ubuntu-drivers autoinstall
sudo apt install nvidia-driver-440
然后,这是 LightGBM 的安装步骤:
git clone --recursive https://github.com/Microsoft/LightGBM
apt-get install -y -qq libboost-all-dev
cd LightGBM
rm -r build
mkdir build
cd build
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..
到目前为止一切正常,现在make
给我一个问题:
make -j$(nproc)
错误:
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libOpenCL.so', needed by '../lightgbm'. Stop.
make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/lightgbm.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libOpenCL.so', needed by '../lib_lightgbm.so'. Stop.
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/_lightgbm.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
我是在错误的目录中安装了一些东西还是什么?我已经安装cuda and nvidia-graphic
在根目录下。
实例信息:
Ubuntu Server 20.04 LTS (HVM), p3.2Xlarge
所以我的 Cuda 安装在不同的目录中,所以我使用正确的目录再次执行了此步骤:
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/lib/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/lib/cuda/include/ ..
然后:
make -j$(nproc)
输出:
[ 1%] Building CXX object CMakeFiles/_lightgbm.dir/src/boosting/boosting.cpp.o
[ 2%] Building CXX object CMakeFiles/lightgbm.dir/src/main.cpp.o
[ 4%] Building CXX object CMakeFiles/_lightgbm.dir/src/boosting/gbdt.cpp.o
[ 5%] Building CXX object CMakeFiles/lightgbm.dir/src/application/application.cpp.o
[ 7%] Building CXX object CMakeFiles/_lightgbm.dir/src/boosting/gbdt_model_text.cpp.o
[ 10%] Building CXX object CMakeFiles/lightgbm.dir/src/boosting/boosting.cpp.o
[ 10%] Building CXX object CMakeFiles/_lightgbm.dir/src/boosting/gbdt_prediction.cpp.o
[ 11%] Building CXX object CMakeFiles/_lightgbm.dir/src/boosting/prediction_early_stop.cpp.o
[ 13%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/bin.cpp.o
[ 14%] Building CXX object CMakeFiles/lightgbm.dir/src/boosting/gbdt.cpp.o
[ 15%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/config.cpp.o
[ 17%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/config_auto.cpp.o
[ 18%] Building CXX object CMakeFiles/lightgbm.dir/src/boosting/gbdt_model_text.cpp.o
[ 20%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/dataset.cpp.o
[ 21%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/dataset_loader.cpp.o
[ 23%] Building CXX object CMakeFiles/lightgbm.dir/src/boosting/gbdt_prediction.cpp.o
[ 24%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/file_io.cpp.o
[ 26%] Building CXX object CMakeFiles/lightgbm.dir/src/boosting/prediction_early_stop.cpp.o
[ 27%] Building CXX object CMakeFiles/lightgbm.dir/src/io/bin.cpp.o
[ 28%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/json11.cpp.o
[ 30%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/metadata.cpp.o
[ 31%] Building CXX object CMakeFiles/lightgbm.dir/src/io/config.cpp.o
[ 33%] Building CXX object CMakeFiles/lightgbm.dir/src/io/config_auto.cpp.o
[ 34%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/parser.cpp.o
[ 36%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/train_share_states.cpp.o
[ 37%] Building CXX object CMakeFiles/_lightgbm.dir/src/io/tree.cpp.o
[ 39%] Building CXX object CMakeFiles/lightgbm.dir/src/io/dataset.cpp.o
[ 40%] Building CXX object CMakeFiles/_lightgbm.dir/src/metric/dcg_calculator.cpp.o
[ 42%] Building CXX object CMakeFiles/_lightgbm.dir/src/metric/metric.cpp.o
[ 43%] Building CXX object CMakeFiles/_lightgbm.dir/src/network/ifaddrs_patch.cpp.o
[ 44%] Building CXX object CMakeFiles/_lightgbm.dir/src/network/linker_topo.cpp.o
[ 46%] Building CXX object CMakeFiles/lightgbm.dir/src/io/dataset_loader.cpp.o
[ 47%] Building CXX object CMakeFiles/_lightgbm.dir/src/network/linkers_mpi.cpp.o
[ 49%] Building CXX object CMakeFiles/_lightgbm.dir/src/network/linkers_socket.cpp.o
[ 50%] Building CXX object CMakeFiles/_lightgbm.dir/src/network/network.cpp.o
[ 52%] Building CXX object CMakeFiles/_lightgbm.dir/src/objective/objective_function.cpp.o
[ 53%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/cuda_tree_learner.cpp.o
[ 55%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/data_parallel_tree_learner.cpp.o
[ 56%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/feature_parallel_tree_learner.cpp.o
[ 57%] Building CXX object CMakeFiles/lightgbm.dir/src/io/file_io.cpp.o
[ 59%] Building CXX object CMakeFiles/lightgbm.dir/src/io/json11.cpp.o
[ 60%] Building CXX object CMakeFiles/lightgbm.dir/src/io/metadata.cpp.o
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/parallel_tree_learner.h:16,
from /home/ubuntu/LightGBM/src/treelearner/data_parallel_tree_learner.cpp:9:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
[ 62%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/gpu_tree_learner.cpp.o
[ 63%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/linear_tree_learner.cpp.o
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/parallel_tree_learner.h:16,
from /home/ubuntu/LightGBM/src/treelearner/feature_parallel_tree_learner.cpp:8:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
[ 65%] Building CXX object CMakeFiles/lightgbm.dir/src/io/parser.cpp.o
[ 66%] Building CXX object CMakeFiles/lightgbm.dir/src/io/train_share_states.cpp.o
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.cpp:7:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
[ 68%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/serial_tree_learner.cpp.o
[ 69%] Building CXX object CMakeFiles/lightgbm.dir/src/io/tree.cpp.o
[ 71%] Building CXX object CMakeFiles/lightgbm.dir/src/metric/dcg_calculator.cpp.o
[ 72%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/tree_learner.cpp.o
[ 73%] Building CXX object CMakeFiles/lightgbm.dir/src/metric/metric.cpp.o
[ 75%] Building CXX object CMakeFiles/_lightgbm.dir/src/treelearner/voting_parallel_tree_learner.cpp.o
[ 76%] Building CXX object CMakeFiles/lightgbm.dir/src/network/ifaddrs_patch.cpp.o
[ 78%] Building CXX object CMakeFiles/lightgbm.dir/src/network/linker_topo.cpp.o
[ 79%] Building CXX object CMakeFiles/lightgbm.dir/src/network/linkers_mpi.cpp.o
[ 81%] Building CXX object CMakeFiles/lightgbm.dir/src/network/linkers_socket.cpp.o
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/tree_learner.cpp:8:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/parallel_tree_learner.h:16,
from /home/ubuntu/LightGBM/src/treelearner/voting_parallel_tree_learner.cpp:11:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
[ 82%] Building CXX object CMakeFiles/lightgbm.dir/src/network/network.cpp.o
make[2]: *** No rule to make target '/usr/lib/cuda/lib64/libOpenCL.so', needed by '../lib_lightgbm.so'. Stop.
make[2]: *** Waiting for unfinished jobs....
[ 84%] Building CXX object CMakeFiles/_lightgbm.dir/src/c_api.cpp.o
[ 85%] Building CXX object CMakeFiles/lightgbm.dir/src/objective/objective_function.cpp.o
[ 86%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/cuda_tree_learner.cpp.o
[ 88%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/data_parallel_tree_learner.cpp.o
[ 89%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/feature_parallel_tree_learner.cpp.o
[ 91%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/gpu_tree_learner.cpp.o
[ 92%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/linear_tree_learner.cpp.o
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/parallel_tree_learner.h:16,
from /home/ubuntu/LightGBM/src/treelearner/data_parallel_tree_learner.cpp:9:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/parallel_tree_learner.h:16,
from /home/ubuntu/LightGBM/src/treelearner/feature_parallel_tree_learner.cpp:8:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.cpp:7:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
[ 94%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/serial_tree_learner.cpp.o
[ 95%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/tree_learner.cpp.o
make[2]: *** No rule to make target '/usr/lib/cuda/lib64/libOpenCL.so', needed by '../lightgbm'. Stop.
make[2]: *** Waiting for unfinished jobs....
[ 97%] Building CXX object CMakeFiles/lightgbm.dir/src/treelearner/voting_parallel_tree_learner.cpp.o
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/tree_learner.cpp:8:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
In file included from /usr/include/CL/cl.h:32,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/cl.hpp:19,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/config.hpp:16,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/buffer.hpp:14,
from /home/ubuntu/LightGBM/external_libs/compute/include/boost/compute/core.hpp:18,
from /home/ubuntu/LightGBM/src/treelearner/gpu_tree_learner.h:33,
from /home/ubuntu/LightGBM/src/treelearner/parallel_tree_learner.h:16,
from /home/ubuntu/LightGBM/src/treelearner/voting_parallel_tree_learner.cpp:11:
/usr/include/CL/cl_version.h:34:104: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)
34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)")
| ^
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/_lightgbm.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/lightgbm.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
我安装libOpenCL.so
并将其从复制/usr/lib/x86_64-linux-gnu/libOpenCL.so
到/usr/lib/cuda/lib64/
. 它会是我需要的相同文件还是会有所不同?
解决方案
推荐阅读
- sql-server - 如何在 Angular 6 中使用 Sql 服务器连接?
- python - Python从列表中删除常用词
- jquery - 主干视图中的多个 jQuery 对象
- vue.js - 是否有可能让哪个组件调用一些动作 Vuex?
- sql - SQL Server 2014 无法连接
- html - 如何使用 CSS 显示时间线
- angularjs - 比较两个 API 调用的结果并在 MEAN 应用程序中返回它们的差异
- javascript - 基于键如何从 JavaScript 中的数组中过滤?
- mysql - 将一个 CSV 上传到 Mysql 中的两个不同表中
- typescript - 可选属性与非可选属性?