旨在使用Nvidia
的JetPack(NVIDIA SDK Manager)轻松安装OpenCv和Cuda
使用Nividia GPU
准备机器
Nividia GPU需要安装一台PC
1 | $ apt-cache search "^nvidia-[0-9]{3}$" |
找出可以使用apt-cache在该PC上安装哪些Nvidia驱动程序。

已为NVIDIA SDK Manager安装了Cuda 10.0。将安装超过410个NVIDIA驱动程序。
请使用支持NVIDIA驱动程序410或更高版本的Windows计算机,或使用Jatson。
如果不支持NVIDIA驱动程序,请放弃NVIDIA SDK Manager,降低Cuda的版本并手动安装
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
Cuda 10.0不起作用,因为用于较旧PC的Gpu驱动程序为410或更小
使用虚拟环境软件 del>
Parallels Desktop,VMWare等。
在这里,我们使用parallels-desktop del>
后记:Geforce驱动程序无法在虚拟环境中识别
如果是Mac,则是通过拨号启动还是使用Windows 来启动Linux。
转移到外部Jetson Nano并安装
(#1)
安装Ubuntu
日语版Ubuntu发行站点
与Ctrk alt一起释放光标
Parallels Tool CD将被安装并且应该与它一起安装。 del>
1 2 3 | #更新する sudo apt-get update sudo apt-get upgrade |
NVIDIA图形驱动程序和Cuda版本之间的关系 h5>
NVIDIA SDK Manager的Cuda版本为10.0。它不适用于旧版PC Gpu和旧版Nivida驱动程序。放弃NVIDIA SDK Manager的自动安装,或者通过降低Cuda的版本或更新新PC来切换为手动安装
检查GPU是否为Nvidia h5>
1
2
3
4
sudo lshw -C display
仮想環境上だとVirtual Video Adapterとでる
仮想環境ではNivideドライバーはインストールできないので、ホストPC(Linux or Windows)上でNivideドライバをインストールする必要がある
1 2 3 4 | sudo lshw -C display 仮想環境上だとVirtual Video Adapterとでる 仮想環境ではNivideドライバーはインストールできないので、ホストPC(Linux or Windows)上でNivideドライバをインストールする必要がある |
检查Ubuntu是否可以识别GPU
1 | $ sudo ubuntu-drivers devices |
Nvidia驱动程序安装方法1
参考
检查Ubuntu是否可以识别GPU
1 | $ sudo ubuntu-drivers devices |
当GPU型号正确显示时,执行以下命令以安装驱动程序
1 | $ sudo ubuntu-drivers autoinstall |
1 2 3 4 5 | # マシンにインストール済みのNVIDIAドライバを一覧表示 $ dpkg -l | grep nvidia # apt-getでインストールできるNVIDIAドライバの一覧表示 $ apt-cache search "^nvidia-[0-9]{3}$" |
使用nvidia-smi命令
检查驱动程序版本和GPU详细信息是否显示
1 | $ nvidia-smi |
如果正确显示,请继续安装Cuda
运行nvidia-smi时出现错误 h5>
1
2
3
$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
nvidia-smiはnvidiaのドライバを確認することができなかった.最新のドライバが入ってるかどうか確認してね.
1 2 3 | $ nvidia-smi NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running. nvidia-smiはnvidiaのドライバを確認することができなかった.最新のドライバが入ってるかどうか確認してね. |
在这种情况下,可以通过禁用Nouveau来解决。首先,创建/etc/modprobe.d/blacklist-nouveau.conf并进行如下编辑。
1 | $ sudo vim /etc/modprobe.d/blacklist-nouveau.conf |
填写以下内容
1 2 | blacklist nouveau options nouveau modeset=0 |
接下来,执行以下命令以重新加载内核模块。
1 2 3 4 5 | $ sudo update-initramfs -u $ sudo reboot $ nvidia-smi |
参考
如果可以执行nvidia-smi,请重新启动PC并继续安装CUDA。
Nvidia驱动程序安装方法2
下载Nvidia驱动程序
选择已安装的GPU驱动程序,然后下载并安装运行格式文件
1 2 | $ chmod +x GPUドライバ名.run $ sudo sh GPUドライバ名.run |
使用nvidia-smi命令
检查驱动程序版本和GPU详细信息是否显示
1 | $ nvidia-smi |
重新安装时的注意事项 h6>
如果我首先安装了NVIDIA SDK Manager,则安装了最新的NVIDIA图形驱动程序,然后当我尝试安装计算机上的旧图形驱动程序时,发生了错误,无法安装。我尝试使用依赖性解析命令aptitude重新安装,但是它卡在了桌面屏幕上。
请注意,机器已挂起
sudo aptitude安装libnvidia-encode-418
参考
最好卸载并重新安装
1 2 | sudo apt-get --purge remove nvidia-* sudo apt-get --purge remove cuda-* |
安装Cuda和OpenCv
安装NVIDIA SDK Manager
除非已连接到Internet,否则无法安装。
下载,解压缩并安装JetPack存档。
您需要创建一个Nvidia帐户
选择Host Machien。
选择JetPack 4.3。
参考文章
确保在底部的下载位置检查安装后的安装
请务必检查它,因为如果在下载过程中安装它,可能会发生错误。
需要约30G的容量
安装完成
OpenCv和Cuda已自动安装。
Jetson组件中的JetPack 4.3:
1 2 3 4 5 6 7 8 9 10 11 | L4T R32.3.1 (K4.9) Ubuntu 18.04 LTS aarch64 CUDA 10.0 cuDNN 7.6.3 TensorRT 6.0.1 VisionWorks 1.6 OpenCV 4.1 (4.1.1) Nsight Systems 2019.6 Nsight Graphics 2019.5 Nsight Compute 2019.3 SDK Manager 1.0.0 |
CUDA位置
1 2 | /usr/local/cuda /usr/local/cuda-10.0 |
如何检查opencv
1 2 3 | $ sudo apt-get install python3-pip $ sudo pip3 install numpy |
1 2 3 4 5 | $ python3 >>> import cv2 >>> print(cv2) >>> cv2.__version__ 4.1.1 |
如何安装官方CUDA
官方cuda描述
添加路径设置
1 | $ sudo apt install vim |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # vimをアップデートする sudo apt install vim # xとyにバージョン数字を入れる $ sudo vim ~/.bashrc ## CUDA and cuDNN paths export PATH=/usr/local/cuda-x.y/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/cuda-x.y/lib64:${LD_LIBRARY_PATH} # 環境変数$LD_LIBRARY_PATHにNVIDIAドライバのパスを追加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-番号 #保存する $ source ~/.bashrc # 確認する $ nvcc -V # CUDA Toolkitの場所の確認 $ which nvcc #/usr/local/cuda-10.0/bin/nvcc |
参考
参考
cuDNN
运行时的安装和操作检查
cudnn-archive
Ubuntuh的cuDNN运行时库
适用于Ubuntuh的cuDNN开发人员库
适用于Ubuntu的cuDNN代码示例和用户指南
下载并双击以安装
参考
cuDNN
的运行检查
检查路径是否在cuda-10.0 / bin中
如果通过,则可以运行cuda-install-samples-10.0.sh
在您的主目录中运行它。在参数中输入文件夹名称。运行cuda-install-samples-10.0.sh将在您的主目录中创建一个示例文件夹。我有一个制作文件,所以我会制作。
将在bin文件夹中生成一个示例文件,因此请尝试运行它。
执行deviceQuery检查cuda设备是否有效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ cd /usr/local/cuda-10.0/bin # /usr/local/cuda-10.0/bin/cuda-install-samples-10.0.sh # ホームディレクトリにサンプルコードのあるディレクトリをコピー $ cuda-install-samples-10.0.sh フォルダ名 $ cd フォルダ名/NVIDIA_CUDA-10.0_Samples $ make $ cd NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release $ ./deviceQuery $ ./bandwidthTest $ ./volumeRender |
参考
cuDNN安装确认
使用
dpkg -l命令列出已安装的软件包。
1 2 | # マシンにインストール済みのcuDNNパッケージを一覧表示 $ dpkg -l | grep cudnn |
cuDNN
的存放位置
1 2 | # debパッケージが保存されているディレクトリを確認(-Lオプション) $ dpkg -L libcudnn7 |
安装Yolo
1 2 3 4 5 6 7 8 9 | $ sudo apt install git $ git clone https://github.com/AlexeyAB/darknet.git $ cd darknet darknet$ vim Makefile GPU=1 CUDNN=1 OPENCV=1 darknet$ make |
-lcuda找不到错误
查找libcuda.so在哪里
1 2 3 4 5 6 | # libcuda.soがどこにあるか検索する $ locate libcuda.so # libcuda.soの場所がヒットする /usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/loca/cuda-10.0/targets/aarch64-linux/lib/stubs/libcuda.so |
找到
libcuda.so文件后,在x86_64-linux-gnu文件夹中创建它。通过在x86_64-linux文件夹
中建立libcuda.so.1的符号链接来找到好的文章。
1 2 3 4 | sudo ln -s /usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so.1 # libcuda.so.1とlibcuda.so 両方のシンボリックリンクが必要 sudo ln -s /usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so |
参考
1 2 3 | #再びmake $ make clean $ make |
它说cudnn.h文件不存在。复制cudnn.h文件
cudnn安装官方
cudnn-archive
下载适用于Linux的cuDNN库
1 2 3 4 5 6 7 | #cuDNNパッケージを解凍する。Finderからでも解凍可能 $ tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz $ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include $ sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib64 $ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn* |
没有错误时未找到
cudnn.h
与cudnn相关的
1 2 3 4 5 | libcudnn.so.7.0.1以外のlibcudnn.soファイルを削除する /usr/local/cuda/lib64 $ sudo rm -rf libcudnn.so libcudnn.so.7 再生する sudo ln -s libcudnn.so.7.0.1 libcudnn.so.7 sudo ln -s libcudnn.so.7 libcudnn.so |
1 2 | make clean make |
Darknet / obj无法写入
darknet / obj更改权限
1 | $ sudo chmod 777 ホームパス/darknet/obj ホームパス/darknet/backup |
再次使
1 2 | $ make clean $ make |
下载重量
从pjreddie下载,因为它不包含在Alexey AB版本中
1 | $ wget https://pjreddie.com/media/files/yolov3.weights |
尝试运行Yolo
1 | ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg |
Yolo运行时错误
未使用OpenCV进行编译,而是保存到projections.png而不是
DarkNet Makefile openCv不是1
1 2 | $ vim Makefile OPENCV=1 |
CUDA驱动程序版本不足以用于CUDA运行时版本
CUDA驱动程序版本不足以提供CUDA运行时版本:否这样的文件或目录
按住
参考
如果未安装NVIDIA图形驱动程序,会出来吗?正在调查中
1 2 | cudaを更新もする sudo apt-get install cuda |
未检测到具有CUDA功能的设备
未检测到CUDA兼容设备
因为它无法在虚拟环境中识别Nvidia的GPU。停止虚拟环境,然后在主机PC
上重新安装OS
CUDA和NVIDIA驱动程序(/ usr / lib / nvidia-***)的PATH检查
输出是否包含" / usr / local / cuda-10.0 / lib64"和" / usr / lib / nvidia-number"?
1 | $ echo $LD_LIBRARY_PATH |
CUDA和nvcc命令的PATH检查
输出是" /usr/local/cuda-10.0/bin/nvcc"吗?
1 2 | $ which nvcc /usr/local/cuda-10.0/bin/nvcc |
nvidia-smi命令PATH检查
输出是" / usr / bin / nvidia-smi"吗?
1 2 | $ which nvidia-smi /usr/bin/nvidia-smi |
如何卸载
1 2 3 4 5 6 7 | # xにバージョンを入れる sudo apt remove cuda-x-y sudo apt autoremove sudo apt remove libcudnnx libcudnnx-dev libcudnnx-doc rm -rfv ~/NVIDIA_CUDA-x.y_Samples/ # サンプルコードを消す。 # ~/.bashrcに追加されたPATHの設定をテキストエディタなどで消す。 # ログアウトしてPATHの設定の変更を反映 |
点
使用Nvidia GPU准备计算机
Nvidia图形驱动程序无法安装在虚拟环境中
Nividia Sdk Maneger Cuda是10.0,因此它不适用于Nividia较老的驾驶员。使用可运行Cuda 10.0的Nvidia驱动程序
解压缩cuDNN包,然后将指定的文件(cudnn * .h)复制到指定的位置
通过找到libcuda.so找到libcuda.so的位置。将符号链接放在/ usr / lib / x86_64-linux-gnu
用vim编辑.bashrc之后,除非将其另存为source?/ .bashrc
,否则它将不应用。
结论
使用Jetson nano时,最好使用Nividia Sdk Maneger。与cuda10和Nividia驱动程序兼容
在PC上安装时,请检查GPU,如果Nvidia驱动程序支持410或更高版本,请尝试使用Nividia SDK;如果不支持410以下,请放弃该SDK并手动进行操作
参考站点
灵感博客
它写得很详细
Coda linux官方安装信息
在Docker上使用NVIDIA SDK Manager获得舒适的Jetson生活
Jetson TX2的JetPack设置步骤
https://pysource.com/2019/08/29/yolo-v3-install-and-run-yolo-on-nvidia-jetson-nano-with-gpu/
(#1)
WSL2上的CUDA
如果使用WSL2,则似乎可以在Windows上构建Linux并使用Windows的GPU驱动程序。