ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

ubuntu安装libtorch

ubuntu安装libtorch Ubuntu20.04安装libtorch〇、前期准备1、查看NVIDIA显卡算力和CUDA版本支持的算力2、查看CUDA与显卡驱动的版本对应一、NVIDIA显卡驱动安装1、下载显卡驱动2、安装驱动A. 安装依赖B. 禁用nouveau驱动C. 显卡驱动安装3、参考二、CUDA安装1、下载安装CUDA2、测试CUDA是否安装成功3、卸载CUDA三、CUDNN安装1、查看CUDNN支持的CUDA版本2、安装3、测试4、卸载CUDNN5、参考四、libtorch安装1、下载libtorch2、安装3、测试4、参考〇、前期准备1、查看NVIDIA显卡算力和CUDA版本支持的算力这一步很重要一定要确定好安装的CUDA版本是否支持显卡的算力否则安装成功也无法使用GPU加速。如果显卡比较新通常低版本的CUDA是不支持 的。查看NVIDIA显卡算力https://developer.nvidia.com/cuda-gpus这里以GeForce RTX 3090为例对应的算力是8.6。不同版本CUDA支持的算力https://en.wikipedia.org/wiki/CUDA#GPUs_supportedGeForce RTX 3090的算力是8.6因此只能安装高于11.1的CUDA版本。这里选择安装CUDA 12.1。2、查看CUDA与显卡驱动的版本对应确定了CUDA版本后需要确定支持该版本的最低显卡驱动版本。查看CUDA版本与显卡驱动版本对应https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html因为选择了CUDA 12.1因此显卡驱动必须要大于525.60.13。一、NVIDIA显卡驱动安装1、下载显卡驱动进入NVIDIA显卡驱动官网https://www.nvidia.cn/drivers/results/输入显卡型号和操作系统查找可以安装的驱动版本这里选择550.107.022、安装驱动下载完成后使用命令进行安装A. 安装依赖sudoaptupdatesudoaptinstallgccsudoaptinstallgsudoaptinstallmakeB. 禁用nouveau驱动nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动ubuntu默认集成了nouveau驱动安装NVIDIA驱动前必须禁用系统自带的显卡驱动nouveau否则安装NVIDIA驱动时会报错。查看nouveau是否启用lsmod|grepnouveau如果有输出说明已启用。打开blacklist.conf文件sudogedit /etc/modprobe.d/blacklist.conf在文件最后添加以下内容禁用nouveaublacklist nouveau options nouveaumodeset0修改后更新并重启sudoupdate-initramfs-u# 重启sudoreboot重启后再次执行以下命令如果没有输出表示已经成功禁用nouveaulsmod|grepnouveauC. 显卡驱动安装停止当前显示服务安装NVIDIA显卡驱动需要停止当前的显示服务。最简单的方法就是使用 telinit 命令更改系统运行级别为3。sudotelinit3如果上面的命令不行可以通过以下命令进行tty模式Ctrl Alt F2~F6进入命令行后关闭 X-window 服务安装NVIDIA显卡驱动过程中通常会提示关闭lightdm但ubuntu20.04和ubuntu 22.04自带的是 gdm3 显示管理器可以先安装 lightdm再禁用或者直接禁用 gdm3。lightdm和gdm3直观的区别就是gdm3的登录窗口在显示器中间而lightdm的登录窗口在偏左边正常使用没有区别。方式一先安装lightdm再禁用sudoaptinstalllightdm# 安装# 禁用现面两个命令任选一个sudoservicelightdm stopsudo/etc/init.d/lightdm stop方式二直接禁用 gdm3sudoservicegdm3 stop# 或者sudo/etc/init.d/gdm3 stop安装驱动cd~/Downloadschmodx NVIDIA-Linux-x86_64-550.107.02.runsudoshNVIDIA-Linux-x86_64-550.107.02.run --no-opengl-files# 参数 --no-opengl-files 只安装驱动文件不安装 OpenGL 文件。# 台式机安装不加这个参数也可以正常安装笔记本不加可能会出现循环登录。驱动安装过程中的一些选项An alternate method of installing the NVIDIA driver was detected.选择 continue installation 。这个应该是推荐你通过 Ubuntu 的 “Software application” 中的 “Additional Drivers” 安装驱动不用管继续安装The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择NO继续Install NVIDIA’s 32-bit compatibility libraries? 选择No 继续Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续Would you like to sign the NVIDIA kernel module? 选择Install without signing重启显示服务安装完成后输入以下命令重启 X-window 显示服务即可自动进行登录界面如果无法进入按CtrlAltF1或者重启电脑。(如果重启后仍无法进入图形界面尝试进行BIOS将Secure Boot设置为disable)# lightdmsudoservicelightdm start# gdm3sudoservicegdm3 start检查是否安装成功nvidia-smi# 查看图形界面nvidia-settings3、参考Ubuntu20.04 安装 NVIDIA 显卡驱动NVIDIA CUDA Installation Guide for Linux二、CUDA安装1、下载安装CUDA最新版CUDAhttps://developer.nvidia.com/cuda-downloads之前版本CUDAhttps://developer.nvidia.com/cuda-toolkit-archive按照官方的指令进行下载和安装wgethttps://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.runsudoshcuda_12.1.0_530.30.02_linux.runcontinue输入accept因为已经安装了显卡驱动这里去掉Driverkernel objects也默认不选安装完成这里会提示安装未完成是因为没有选显卡驱动不用管配置环境变量# 打开 /etc/profilesudogedit /etc/profile# 添加以下内容保存退出exportPATH/usr/local/cuda-12.1/bin:$PATHexportLD_LIBRARY_PATH/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH# source使配置生效source/etc/profile2、测试CUDA是否安装成功下载示例代码CUDA 12.1的安装目录中没有直接安装示例代码需要自己下载cd/usr/local/cuda-12.1/sudogitclone https://github.com/NVIDIA/cuda-samples.git-bv12.1cdcuda-samples/Samples/1_Utilities/deviceQuerysudomake./deviceQuery# 有如下输入说明安装成功3、卸载CUDAcd/usr/local/cuda-12.1/binsudo./cuda-uninstaller# 卸载CUDAsudorm-rf/usr/local/cuda*# 重启sudoreboot三、CUDNN安装1、查看CUDNN支持的CUDA版本最新版cudnn的Support Matrix网址https://docs.nvidia.com/deeplearning/cudnn/latest/reference/support-matrix.html#support-matrix之前版本cudnn的Support Matrix网址可以将其中的 cudnn-892 修改成对应的版本号https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-892/support-matrix/index.html因为安装的CUDA版本为12.1这里选择最新版的CUDNN 9.4.0进行安装。2、安装按照官网的安装指导进行安装下载安装包wgethttps://developer.download.nvidia.com/compute/cudnn/9.4.0/local_installers/cudnn-local-repo-ubuntu2004-9.4.0_1.0-1_amd64.deb之前版本的cuDNN下载地址https://developer.nvidia.com/rdp/cudnn-archive新的地址https://developer.nvidia.com/cudnn-archive安装sudodpkg-icudnn-local-repo-ubuntu2004-9.4.0_1.0-1_amd64.deb导入CUDA GPG密钥到 /usr/share/keyrings/ 目录sudocp/var/cudnn-local-repo-ubuntu2004-9.4.0/cudnn-*-keyring.gpg /usr/share/keyrings/更新软件包列表sudoaptupdate安装对应的运行时库(元包)sudoaptinstallcudnn# 为最新的 CUDA 版本安装最新的 cuDNN# 如果安装的cuda不是最新版需要指定cuda的版本sudoaptinstallcudnn-cuda-12# 为最新的 CUDA12 版本安装最新的cuDNNsudoaptinstallcudnn9# 为最新的 CUDA 版本安装最新的 cuDNN 9sudoaptinstallcudnn9-cuda-12# 为最新的 CUDA12 版本安装最新的 cuDNN 9NOTE这里需要注意如果安装的CUDA不是最新版直接使用以上命令安装cuDNN可能存在CUDA和cuDNN版本不匹配的问题在更新软件列表后可以先不要安装运行时库可以多下载几个cuDNN版本的deb包通过以下命令查看当前的cuDNN版本是否有与已经安装的CUDA版本匹配的运行时库。sudoapt-cachepolicy libcudnn8我试了5个版本发现8.9.2.26和cuda12.1匹配然后分别安装运行时库、开发人员库和示例sudoaptinstalllibcudnn88.9.2.26-1cuda12.1sudoaptinstalllibcudnn8-dev8.9.2.26-1cuda12.1sudoaptinstalllibcudnn8-samples8.9.2.26-1cuda12.1最后再进入 /etc/apt/sources.list.d/ 目录将不需要的与cudnn相关的repository删掉进入 /var/ 目录删除不匹配的cudnn进入 /usr/share/keyrings/ 目录删除不需要的密钥# 删除apt update不需要的repositorycd/etc/apt/sources.list.dsudormcudnn-local-ubuntu2004-9.4.0.list# 删除不匹配的cudnncd/var/sudorm-rfcudnn-local-repo-ubuntu2004-9.4.0/# 删除不需要的密钥cd/usr/share/keyringssudormcudnn-local-0AA868E1-keyring.gpg或者也可以直接以下命令卸载sudodpkg-rpackage_name# 似乎会有问题3、测试安装 cuDNN 示例sudoaptinstalllibcudnn9-samples验证是否安装成功NOTE:需要注意的是这里要使用root权限否则会出现 “test.c no such file” 的报错cd/usr/src/cudnn_samples_v9/mnistCUDNNsudomakecleansudomake# 新的cuDNN采用CMAKE进行项目管理因此编译有所区别cd/usr/src/cudnn_samples_v9sudomkdirbuildcdbuildsudocmake..sudomakecd/usr/src/cudnn_samples_v9/mnistCUDNN../build/mnistCUDNN/mnistCUDNN如果出现找不到 FreeImage.h 的报错执行以下命令进行安装sudoaptinstalllibfreeimage3 libfreeimage-dev重新编译后运行 mnistCUDNN 示例./mnistCUDNN出现Test passed!就说明安装成功。4、卸载CUDNNsudoaptremove cudnn5、参考NVIDIA cuDNN 9.4.0 DownloadsInstalling cuDNN on Linux四、libtorch安装1、下载libtorch可以从官网下载最新版的libtorch如果需要的版本不是最新版也可以根据最新版下载链接自行修改为需要的版本。比如需要 libtorch2.1.2cuda12.1对应的下载地址为https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.1.2%2Bcu121.zip2、安装解压下载好的压缩包cdDownloadsunziplibtorch-cxx11-abi-shared-with-deps-2.1.2cu121.zip3、测试main.cpp文件#includeiostream#includetorch/script.h#includetorch/torch.hintmain(){std::coutHello, World!std::endl;std::coutCUDA available:torch::cuda::is_available()std::endl;std::coutCUDNN available:torch::cuda::cudnn_is_availablestd::endl;std::clock_t sclock();torch::Tensor tensortorch::randn({3,5},torch::device(torch::kCUDA));std::couttensorstd::endl;std::clock_t eclock();std::coutRun time:e-s usstd::endl;return0;}CMakeLists.txt文件cmake_minimum_required(VERSION 3.16) project(cpp_libtorch_test) set(CMAKE_CXX_STANDARD 17) find_package(PythonInterp REQUIRED) set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /home/dell/3rdparty/libtorch212_cuda121) find_package(Torch REQUIRED) add_executable(libtorch_test libtorch_test.cpp) target_link_libraries(libtorch_test ${TORCH_LIBRARIES})问题1如果cmake版本低于3.18会出现下面的报错这是由于低于3.18的cmake不支持CUDA17的编译需要更新cmake版本。TargetcmTC_ee350requires the language dialectCUDA17(with compiler extensions), but CMake does not know the compile flags to use toenableit.解决方法NOTE:如果已经安装ROS那千万不要使用apt remove命令卸载低版本的CMake否则会删掉ROS中的文件导致ROS无法使用。直接下载高版本CMake进行安装然后在 “~/.bashrc” 文件中指定高版本的CMake即可。下载高版本的cmake: https://github.com/Kitware/CMake/tags下载完成后解压并进行安装# 解压tar-zxvfCMake-3.29.8.tar.gz# 安装cdCMake-3.29.8 ./bootstrap --qt-gui# 如果不需要GUI可以去掉 --qt-guimakesudomakeinstall# 卸载sudomakeuninstall执行 ./bootstrap --qt-gui 时可能的报错1. 如果找不到OpenSSLCould notfindOpenSSL. Install an OpenSSL development package or...安装OpenSSLsudoaptinstalllibssl-dev2. 找不到Qt安装Qtsudoaptinstallqt5-default默认会安装 /usr/local/bin 目录下将该目录添加到source文件中# 打开 .bashrc 文件gedit ~/.bashrc# 在最后添加以下内容exportPATH$PATH:/usr/local/bin# 如果 .bashrc 中已经有了就不需要添加了保存 .bashrc 文件查看CMake版本source~/.bashrc# 使修改生效cmake--version更新CMake后重新编译即可。问题2上面的Warning是由于从CMake 3.12开始FindPythonInterp 和 FindPythonLibs 模块被删除了需要用 FindPython3, FindPython2, FindPython 替换find_package(PythonInterp REQUIRED) # 替换为 find_package(Python3 REQUIRED)问题3如果在CMakeLists.txt文件中设置的最小CMake版本大于 3.16可能会出现如下的报错CUDA_ARCHITECTURES is emptyfortargetcmTC_0f8a3解决方法在CMakeLists.txt中加入以下内容指定使用的CUDA架构set(CMAKE_CUDA_ARCHITECTURES 86)问题4Failed to compute shorthash for libnvrtc.so如果出现上面的警告可能是因为Ubuntu自带的Python版本太低安装更高版本的Python即可。问题5Find two conflicting CUDA installs:这个问题应该是Libtorch自身的问题更新为libtorch 2.2.0即可解决。参考https://github.com/microsoft/vcpkg/issues/368444、参考【系统配置】深度学习环境配置Target “cmTC_e7e07“ requires the language dialect “CUDA17“ (with compiler extensions),解决。Ubuntu20.04安装LibTorch并完成高斯溅射环境搭建
返回列表