查看 git 存储库 ( https://github.com/cupy/cupy ) 和文档 ( https://docs-cupy.chainer.org/en/stable/install.html ) 我没有找到任何生成仅与当前硬件(GPU)相关的可执行文件。
举个例子,在opencv
(为了大大减少旧环境下可能超过8h的编译时间),你可以指定GPU的架构。opencv
(这里是从仅与硬件相关的源代码编译的示例)
> 导出 JAVA_HOME=/opt/DEVOPS/SDK/jvm/jdk-11.0.4/ ;cmake3 .. -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_CUDA=ON -D WITH_GTK=ON -D WITH_OPENGL=ON -D ENABLE_CXX11=ON -D BUILD_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/opt/SP/packages/opencv_contrib /modules -D BUILD_opencv_java=ON -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D CUDA_FAST_MATH=ON -D CUDA_GENERATION="Maxwell" -D WITH_OPENMP=ON -D BUILD_TESTS=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_TIFF=ON -D WITH_OPENCL=ON -D WITH_IPP=ON -D WITH_TBB=ON -D WITH_EIGEN=ON -D WITH_V4L=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -D PYTHON3_EXECUTABLE=$(which python3) -D PYTHON3_INCLUDE_DIR=$(python3 -c"从 distutils.sysconfig 导入 get_python_inc; print(get_python_inc())") -D PYTHON3_PACKAGES_PATH=$(python3 -c "从 distutils.sysconfig 导入 get_python_lib; print(get_python_lib())") -D PYTHON3_LIBRARY=/opt/DEVOPS/SDK /anaconda3/lib -D OPENCV_PYTHON3_INSTALL_PATH=/opt/DEVOPS/SDK/anaconda3/lib/python3.7/site-packages -D PYTHON3_DEFAULT_EXECUTABLE=/opt/DEVOPS/SDK/anaconda3/bin/python -D OPENCV_ENABLE_NONFREE=ON
通过这种方式,将只为给定的架构生成代码。
我发现了这个有用的提交。(https://github.com/cupy/cupy/commit/4d3b05c4f010d62f9daf92a049fa2e8a789f6cc2)
是否有人尝试仅针对给定架构强制将“--generate-code”参数编译为“ --generate-code=arch=compute_XX ,code=compute_XX ”而不是默认使用所有可能的拱门来编译Cupy ?