paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境
1.安装英伟达显卡驱动
首先需要到NAVIDIA官网去查自己的电脑是不是支持GPU运算。
网址是:CUDA GPUs | NVIDIA Developer。打开后的界面大致如下,只要里边有对应的型号就可以用GPU运算,并且每一款设备都列出来相关的计算能力(Compute Capability)。
系统层面查看当前安装的显卡型号:
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# lspci | grep nvida
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# lspci | grep VGA
3b:00.0 VGA compatible controller: NVIDIA Corporation GV104 [GeForce GTX 1180] (rev a1)
5e:00.0 VGA compatible controller: NVIDIA Corporation GV104 [GeForce GTX 1180] (rev a1)
86:00.0 VGA compatible controller: NVIDIA Corporation GV104 [GeForce GTX 1180] (rev a1)
af:00.0 VGA compatible controller: NVIDIA Corporation GV104 [GeForce GTX 1180] (rev a1)
如果是ubuntu系统:明确了显卡性能后,接下来就开始在ubuntu系统安装对应的显卡驱动。
首先,检测NVIDIA图形卡和推荐的驱动程序的模型,在终端输入:
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# ubuntu-drivers devices
WARNING:root:_pkg_get_support nvidia-driver-530: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-515-server: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-525-server: package has invalid Support PBheader, cannot determine support level
== /sys/devices/pci0000:3a/0000:3a:00.0/0000:3b:00.0 ==
modalias : pci:v000010DEd00001E87sv00001458sd000037A8bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-530 - distro non-free recommended
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-440 - third-party non-free
driver : nvidia-driver-515 - third-party non-free
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-515-server - distro non-free
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-418 - third-party non-free
driver : nvidia-driver-460 - third-party non-free
driver : nvidia-driver-450 - third-party non-free
driver : nvidia-driver-470 - third-party non-free
driver : nvidia-driver-455 - third-party non-free
driver : nvidia-driver-495 - third-party non-free
driver : nvidia-driver-525 - third-party non-free
driver : nvidia-driver-465 - third-party non-free
driver : nvidia-driver-525-server - distro non-free
driver : nvidia-driver-410 - third-party non-free
driver : nvidia-driver-520 - third-party non-free
driver : nvidia-driver-510 - third-party non-free
driver : xserver-xorg-video-nouveau - distro free builtin
具体可以使用下面的命令安装:
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# ubuntu-drivers autoinstall
或者去官网下载驱动再手动安装的方式,命令官网上有。
下载 NVIDIA 官方驱动 | NVIDIA
NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA
安装完成后重启系统,然后在终端中输入命令检测是否安装成功:
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# nvidia-smi
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# nvidia-smi
Fri Jul 12 15:43:58 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03 Driver Version: 530.41.03 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 2080 Off| 00000000:3B:00.0 Off | N/A |
| 32% 41C P8 3W / 225W| 8MiB / 8192MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce RTX 2080 Off| 00000000:5E:00.0 Off | N/A |
| 27% 41C P8 4W / 225W| 8MiB / 8192MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 2 NVIDIA GeForce RTX 2080 Off| 00000000:86:00.0 Off | N/A |
| 27% 36C P8 1W / 225W| 8MiB / 8192MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 3 NVIDIA GeForce RTX 2080 Off| 00000000:AF:00.0 Off | N/A |
| 31% 43C P8 9W / 225W| 80MiB / 8192MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------++---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 52177 G /usr/lib/xorg/Xorg 4MiB |
| 1 N/A N/A 52177 G /usr/lib/xorg/Xorg 4MiB |
| 2 N/A N/A 52177 G /usr/lib/xorg/Xorg 4MiB |
| 3 N/A N/A 52177 G /usr/lib/xorg/Xorg 28MiB |
| 3 N/A N/A 52282 G /usr/bin/gnome-shell 46MiB |
+---------------------------------------------------------------------------------------+
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~#
上图显示cuda最高支持12.1版本
驱动版本Driver Version: 530.41.03
显卡型号:NVIDIA GeForce RTX 2080
显卡num:共计4个 每个显存大小8G
2.安装CUDA
首先要知道硬件支持的CUDA版本:
在上图右上角我们看到“CUDA Version:12.1”,这个表明对于这款显卡,我们后面要装的CUDA版本最高不能超过12.1。
其次要明确CUDA版本需求:
本文最终的目的是装好深度学习环境,这里指的是最终能够正常的使用pytorch[facebook公司]和paddlepaddle【百度公司】或TensorFlow【google公司】。这三款是当前使用比较多的深度学习框架,pytorch[facebook]侧重于科研和模型验证,paddlepaddle更适合工业级深度学习开发部署(当然也可以使用tensorflow)。
为了能够使用他们,我们接下来需要按照顺序安装CUDA、cuDNN、nccl、paddlepaddle、pytorch【省略】安装paddleocr。
在正式安装前我们首先要来确定当前的版本一致性,否则装到后面就会发现各种版本问题了。
接下来我们先看paddlepaddle和pytorch官网目前稳定版所支持的cuda。
paddlepaddle目前官网安装界面如下图所示:
pytorch官网安装界面:
尽量选择两个框架都支持的了,并且本机驱动也支持的CUDA版本。
接下来开始安装:
首先在英伟达官网下载cuda12进行安装即可。
照runfile(local)安装的方式简单,只需要在终端输入图中下方的两条NVIDIA推荐的命令就好了。
2中方式
1)交互
./cuda_xxxxxxx_linux.run
2)静默
./cuda_xxxxxxx_linux.run --silent --toolkit --samples
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# vim ~/.bashrcexport PATH=/usr/local/cuda-12.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
最后,更新环境变量配置:
source ~/.bashrc
至此cuda安装完成,输入nvcc -V命令查看cuda信息。
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:~# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Mon_Oct_24_19:12:58_PDT_2022
Cuda compilation tools, release 12.0, V12.0.76
Build cuda_12.0.r12.0/compiler.31968024_0
如果想要卸载CUDA(例如重新安装了驱动等情况),需要使用下面的命令:
cd /usr/local/cuda-xx.x/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x
3.安装CUDNN
cuDNN(CUDA Deep Neural Network library) 是由NVIDIA开发的一个深度学习GPU加速库。
目的和功能: cuDNN旨在提供高效、标准化的原语(基本操作)来加速深度学习框架(例如TensorFlow、PyTorch)在NVIDIA GPU上的运算。
专门为深度学习设计:cuDNN提供了为深度学习任务高度优化的函数,如:
- 卷积操作
- 池化操作
- 激活函数
- 归一化等
安装CUDNN的过程相对比较简单。上官网进行下载。
选择对应的CUDA版本,单击后选择cuDNN Library for Linux(x86_64)下载安装包。
然后打开终端输入类似下面的命令进行解压并拷贝安装:
cp -Pcudnn*/include/cudnn*.h cuda/include/
cp -P cudnn*/lib/libcudnn* cuda/lib64/
chmod a+r cuda/include/cudnn*.h cuda/lib64/libcudnn*
其实,cuDNN的安装本质上就是复制一堆的文件到CUDA中去。
我们可以使用如下的命令查看cuDNN的信息:
CUDN + cuDNN安装完成,我们可以监控一下gpu状态:
watch -n 1 nvidia-smi
4.安装NCCL
由于深度学习分布式训练需要nccl支持,可以调用多张显卡计算,因此本小节来安装nccl。
首先从官网下载对应版本的nccl.
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/usr/local# tar -xf nccl_2.19.3-1+cuda12.0_x86_64.txz
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/usr/local# ln -sf nccl_2.19.3-1+cuda12.0_x86_64 nccl
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/usr/local# cd include/^C
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/usr/local# cat /etc/ld.so.conf.d/nccl_2.19.3-1+cuda12.0.conf
/usr/local/nccl/lib
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/usr/local/include# ln -sf ../nccl/include nccl
没安装之前报错:
安装之后:
>>> import paddle
>>> paddle.utils.run_check()
Running verify PaddlePaddle program ...
I0712 17:30:32.906308 16653 program_interpreter.cc:212] New Executor is Running.
W0712 17:30:32.906838 16653 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 12.1, Runtime API Version: 12.0
W0712 17:30:32.940363 16653 gpu_resources.cc:164] device: 0, cuDNN Version: 8.0.
I0712 17:30:35.770787 16653 interpreter_util.cc:624] Standalone Executor is Used.
PaddlePaddle works well on 1 GPU.
======================= Modified FLAGS detected =======================
FLAGS(name='FLAGS_selected_gpus', current_value='2', default_value='')
=======================================================================
I0712 17:30:38.527948 17096 tcp_utils.cc:107] Retry to connect to 127.0.0.1:40265 while the server is not yet listening.
======================= Modified FLAGS detected =======================
FLAGS(name='FLAGS_selected_gpus', current_value='3', default_value='')
=======================================================================
I0712 17:30:38.738694 17097 tcp_utils.cc:107] Retry to connect to 127.0.0.1:40265 while the server is not yet listening.
======================= Modified FLAGS detected =======================
FLAGS(name='FLAGS_selected_gpus', current_value='1', default_value='')
=======================================================================
I0712 17:30:38.817551 17095 tcp_utils.cc:107] Retry to connect to 127.0.0.1:40265 while the server is not yet listening.
======================= Modified FLAGS detected =======================
FLAGS(name='FLAGS_selected_gpus', current_value='0', default_value='')
=======================================================================
I0712 17:30:39.014600 17094 tcp_utils.cc:181] The server starts to listen on IP_ANY:40265
I0712 17:30:39.014768 17094 tcp_utils.cc:130] Successfully connected to 127.0.0.1:40265
I0712 17:30:41.528342 17096 tcp_utils.cc:130] Successfully connected to 127.0.0.1:40265
I0712 17:30:41.528888 17096 process_group_nccl.cc:129] ProcessGroupNCCL pg_timeout_ 1800000
I0712 17:30:41.739022 17097 tcp_utils.cc:130] Successfully connected to 127.0.0.1:40265
I0712 17:30:41.776871 17097 process_group_nccl.cc:129] ProcessGroupNCCL pg_timeout_ 1800000
I0712 17:30:41.817867 17095 tcp_utils.cc:130] Successfully connected to 127.0.0.1:40265
I0712 17:30:41.840788 17095 process_group_nccl.cc:129] ProcessGroupNCCL pg_timeout_ 1800000
I0712 17:30:41.851110 17094 process_group_nccl.cc:129] ProcessGroupNCCL pg_timeout_ 1800000
W0712 17:30:43.391786 17096 gpu_resources.cc:119] Please NOTE: device: 2, GPU Compute Capability: 7.5, Driver API Version: 12.1, Runtime API Version: 12.0
W0712 17:30:43.394407 17096 gpu_resources.cc:164] device: 2, cuDNN Version: 8.0.
W0712 17:30:43.564615 17097 gpu_resources.cc:119] Please NOTE: device: 3, GPU Compute Capability: 7.5, Driver API Version: 12.1, Runtime API Version: 12.0
W0712 17:30:43.566882 17097 gpu_resources.cc:164] device: 3, cuDNN Version: 8.0.
W0712 17:30:43.627422 17095 gpu_resources.cc:119] Please NOTE: device: 1, GPU Compute Capability: 7.5, Driver API Version: 12.1, Runtime API Version: 12.0
W0712 17:30:43.629004 17095 gpu_resources.cc:164] device: 1, cuDNN Version: 8.0.
W0712 17:30:43.656805 17094 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 12.1, Runtime API Version: 12.0
W0712 17:30:43.659112 17094 gpu_resources.cc:164] device: 0, cuDNN Version: 8.0.
I0712 17:30:46.433609 17096 process_group_nccl.cc:132] ProcessGroupNCCL destruct
I0712 17:30:46.433516 17095 process_group_nccl.cc:132] ProcessGroupNCCL destruct
I0712 17:30:46.435761 17097 process_group_nccl.cc:132] ProcessGroupNCCL destruct
I0712 17:30:46.437583 17094 process_group_nccl.cc:132] ProcessGroupNCCL destruct
I0712 17:30:46.843884 17168 tcp_store.cc:289] receive shutdown event and so quit from MasterDaemon run loop
PaddlePaddle works well on 4 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
验证NCCL
https://github.com/NVIDIA/nccl-tests
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl# ls
nccl-tests-2.13.9 nccl-tests-2.13.9.tar.gz
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl# cd nccl-tests-2.13.9/
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9# ls^C
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9#
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9# ls
doc LICENSE.txt Makefile README.md src verifiable
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9# make
make -C src build BUILDDIR=/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build
make[1]: 进入目录“/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/src”
Compiling timer.cc > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/timer.o
Compiling /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/verifiable/verifiable.o
Compiling all_reduce.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/all_reduce.o
Compiling common.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/common.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/all_reduce.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/all_reduce_perf
Compiling all_gather.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/all_gather.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/all_gather.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/all_gather_perf
Compiling broadcast.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/broadcast.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/broadcast.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/broadcast_perf
Compiling reduce_scatter.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/reduce_scatter.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/reduce_scatter.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/reduce_scatter_perf
Compiling reduce.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/reduce.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/reduce.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/reduce_perf
Compiling alltoall.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/alltoall.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/alltoall.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/alltoall_perf
Compiling scatter.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/scatter.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/scatter.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/scatter_perf
Compiling gather.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/gather.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/gather.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/gather_perf
Compiling sendrecv.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/sendrecv.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/sendrecv.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/sendrecv_perf
Compiling hypercube.cu > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/hypercube.o
Linking /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/hypercube.o > /data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/build/hypercube_perf
make[1]: 离开目录“/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9/src”
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9# ./build/all_reduce_perf -b 8 -e 128M -f 2 -g 8
# nThread 1 nGpus 8 minBytes 8 maxBytes 134217728 step: 2(factor) warmup iters: 5 iters: 20 agg iters: 1 validation: 1 graph: 0
#
# Using devices
jettech-WS-C621E-SAGE-Series: Test CUDA failure common.cu:894 'invalid device ordinal'.. jettech-WS-C621E-SAGE-Series pid 24945: Test failure common.cu:844
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9# ls build/all_reduce_perf ^C
(py10_paddlepaddle2.6_paddleocr2.8_cuda12_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env/nccl/nccl-tests-2.13.9# ./build/all_reduce_perf -b 8 -e 256M -f 2 -g4
# nThread 1 nGpus 4 minBytes 8 maxBytes 268435456 step: 2(factor) warmup iters: 5 iters: 20 agg iters: 1 validation: 1 graph: 0
#
# Using devices
# Rank 0 Group 0 Pid 25570 on jettech-WS-C621E-SAGE-Series device 0 [0x3b] NVIDIA GeForce RTX 2080
# Rank 1 Group 0 Pid 25570 on jettech-WS-C621E-SAGE-Series device 1 [0x5e] NVIDIA GeForce RTX 2080
# Rank 2 Group 0 Pid 25570 on jettech-WS-C621E-SAGE-Series device 2 [0x86] NVIDIA GeForce RTX 2080
# Rank 3 Group 0 Pid 25570 on jettech-WS-C621E-SAGE-Series device 3 [0xaf] NVIDIA GeForce RTX 2080
#
# out-of-place in-place
# size count type redop root time algbw busbw #wrong time algbw busbw #wrong
# (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s) 8 2 float sum -1 15.71 0.00 0.00 0 15.63 0.00 0.00 016 4 float sum -1 17.28 0.00 0.00 0 15.91 0.00 0.00 032 8 float sum -1 17.18 0.00 0.00 0 16.18 0.00 0.00 064 16 float sum -1 17.14 0.00 0.01 0 15.87 0.00 0.01 0128 32 float sum -1 17.09 0.01 0.01 0 16.30 0.01 0.01 0256 64 float sum -1 17.23 0.01 0.02 0 15.90 0.02 0.02 0512 128 float sum -1 17.28 0.03 0.04 0 16.38 0.03 0.05 01024 256 float sum -1 17.13 0.06 0.09 0 15.81 0.06 0.10 02048 512 float sum -1 17.63 0.12 0.17 0 15.80 0.13 0.19 04096 1024 float sum -1 17.22 0.24 0.36 0 15.99 0.26 0.38 08192 2048 float sum -1 16.61 0.49 0.74 0 16.11 0.51 0.76 016384 4096 float sum -1 18.69 0.88 1.31 0 18.36 0.89 1.34 032768 8192 float sum -1 23.44 1.40 2.10 0 23.02 1.42 2.14 065536 16384 float sum -1 34.72 1.89 2.83 0 34.55 1.90 2.85 0131072 32768 float sum -1 63.00 2.08 3.12 0 62.87 2.08 3.13 0262144 65536 float sum -1 93.22 2.81 4.22 0 93.98 2.79 4.18 0524288 131072 float sum -1 148.2 3.54 5.31 0 148.1 3.54 5.31 01048576 262144 float sum -1 294.1 3.57 5.35 0 289.8 3.62 5.43 02097152 524288 float sum -1 595.3 3.52 5.28 0 592.2 3.54 5.31 04194304 1048576 float sum -1 1319.9 3.18 4.77 0 1317.6 3.18 4.77 08388608 2097152 float sum -1 3014.5 2.78 4.17 0 3100.5 2.71 4.06 016777216 4194304 float sum -1 6966.1 2.41 3.61 0 7025.2 2.39 3.58 033554432 8388608 float sum -1 13814 2.43 3.64 0 13829 2.43 3.64 067108864 16777216 float sum -1 28272 2.37 3.56 0 28100 2.39 3.58 0134217728 33554432 float sum -1 55028 2.44 3.66 0 55975 2.40 3.60 0268435456 67108864 float sum -1 111871 2.40 3.60 0 111223 2.41 3.62 0
# Out of bounds values : 0 OK
# Avg bus bandwidth : 2.23175
#
5.安装anconda
首先下载Anaconda3
在[清华镜像]下载Linux版本的anaconda
清华镜像官网Anaconda下载
里选择的是Anaconda3-5.0.0-Linux-x86_64.sh
在用户文件夹下新建一个名为anaconda的文件夹,并将刚刚下载的文件放在此文件夹中,执行以下命令:
bash Anaconda3-5.0.0-Linux-x86_64.sh
需要都很多页协议,不断按回车键跳过。
出现询问时就输入yes
之后选择默认的安装目录,按回车确定。
出现询问是否初始化或配置环境变量就输入yes
安装完成。
创建虚拟环境
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env# conda create --name py10_paddleocr2.8_gpu_wubo python=3.10
6. 安装PaddlePaddle
这里参照官网进行安装即可:
(py10_paddleocr2.8_gpu_wubo) root@jettech-WS-C621E-SAGE-Series:/data/wubo/paddleocr/env# python -m pip install paddlepaddle-gpu==2.6.1.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
最后进行验证。
使用 python 或 python3 进入python解释器,输入:
GPU版本
import paddle
paddle.utils.run_check()
如果出现PaddlePaddle is installed successfully!,说明您已成功安装。同时会显示当前可以并行使用的GPU数量。
7.安装Pytorch
参照官网命令进行安装:
最后验证安装是否成功。
打开Python,输入以下命令:
import torch
print(torch.cuda.is_available())
8.安装paddleocr客户端 命令行模式
相关文章:
![](https://i-blog.csdnimg.cn/direct/dfa6242d2b0a4f1db626fe08705fe4c9.png)
paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境
1.安装英伟达显卡驱动 首先需要到NAVIDIA官网去查自己的电脑是不是支持GPU运算。 网址是:CUDA GPUs | NVIDIA Developer。打开后的界面大致如下,只要里边有对应的型号就可以用GPU运算,并且每一款设备都列出来相关的计算能力(Compu…...
![](https://www.ngui.cc/images/no-images.jpg)
【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(上)
当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事本 1…...
![](https://i-blog.csdnimg.cn/direct/75946c85ccf24a21abe7b648553e3910.png)
如何在Linux上如何配置虚拟主机
在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件,可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤: 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…...
![](https://www.ngui.cc/images/no-images.jpg)
c语言alpha-beta剪枝六子棋
c语言Alpha-Beta剪枝算法六子棋[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2i5w8kc1-1720756528545)(https://i-blog.csdnimg.cn/direct/464b9db7d6384a63ab8c3213efff0e99.png)] 1.介绍 Alpha-Beta剪枝算法是一种用于优化博弈树搜索的算法&…...
![](https://img-blog.csdnimg.cn/img_convert/2fbb116e2277061b8c1db072c29329e8.png)
基于PyTorch深度学习实践技术应用
近年来,Python语言由于其开源、简单等特点,受到了广大程序开发者的偏爱,丰富的函数库使得其在各行各业中得到了广泛的应用。伴随着新一轮人工智能(尤其是深度学习)的快速发展,许多深度学习框架应运而生&…...
![](https://www.ngui.cc/images/no-images.jpg)
数据湖仓一体(五)安装spark
上传安装包到/opt/software目录并解压 [bigdatanode106 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/services/ 重命名文件 [bigdatanode106 services]$ mv spark-3.3.1-bin-hadoop3 spark-3.3.1 配置环境变量 [bigdatanode106 ~]$ sudo vim /etc/profile…...
![](https://i-blog.csdnimg.cn/direct/95f2d0c7aa7a4a10bab485e12565232e.png)
项目收获总结--本地缓存方案选型及使用缓存的坑
本地缓存方案选型及使用缓存的坑 一、摘要二、本地缓存三、本地缓存实现方案3.1 自己编程实现一个缓存3.2 基于 Guava Cache 实现本地缓存3.3 基于 Caffeine 实现本地缓存3.4 基于 Encache 实现本地缓存3.5 小结 四、使用缓存的坑4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩4.4 数据…...
![](https://i-blog.csdnimg.cn/direct/687d1431a1ca4accbc308f6ecb22544d.png)
java使用poi-tl模版引擎导出word之if判断条件的使用
文章目录 模版中if语句条件的使用1.数据为False或空集合2.非False或非空集合 模版中if语句条件的使用 如果区块对的值是 null 、false 或者空的集合,位于区块中的所有文档元素将不会显示,这就等同于if语句的条件为 false。语法示例:{{?stat…...
![](https://i-blog.csdnimg.cn/direct/fd4b6c819d114f8dba7fb6bd5623f899.png)
扩散的魔法:如何打造未来生物打印?
生物打印技术正在快速发展,它允许我们将生物材料、细胞和生长因子等生物活性成分精确地打印成具有特定形状和功能的结构。而扩散现象在生物打印中扮演着至关重要的角色,它影响着打印结构的特性、机械性能、生物功能和形态。为了更好地利用扩散现象&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Bag of mice(概率dp)
https://www.luogu.com.cn/problem/CF148D 思路: 概率dp,设f[a][b]为白鼠为a个,黑鼠为b个时,赢的期望。 f[i][0]1; 1.当先手取到白鼠时 a/(ab); 2.当先手未取到白鼠,先手要向赢,后手也不能取到白鼠&am…...
![](https://www.ngui.cc/images/no-images.jpg)
Python的基础语法——持续更新版
1、type查看数据类型 # 直接输出结果 print(type("Hello")) # 先用变量存储 string_type type("Hello") print(string_type) 2、 类型转化 任何类型可以转化为字符串,但字符串不可以随意转化,要求字符串类内容都是数字 # 类型…...
![](https://i-blog.csdnimg.cn/direct/6ce13cf595e74effb7fb257d24c05667.png)
百度智能云将大模型引入网络故障定位的智能运维实践
物理网络中,某个设备发生故障,可能会引起一系列指标异常的告警。如何在短时间内从这些告警信息中找到真正的故障原因,犹如大海捞针,对于运维团队是一件很有挑战的事情。 在长期的物理网络运维工作建设中,百度智能云通…...
![](https://www.ngui.cc/images/no-images.jpg)
晚上定时编译android系统
1、问题 可能偶然想晚上定时编译android系统 2、解决 at.sh #!/bin/sh# at -f at.sh now1min # at -lset -e set -xecho $SHELLecho at build begin /bin/date >> at_build.log/bin/bash -c source build/envsetup.sh >> at_build.log 2>&1; lunch xxx-us…...
![](https://img-blog.csdnimg.cn/ddede5bb3d7044b7b45758ab11689ee6.jpg)
轻薄鼠标的硬核选购攻略,很多人都在“高性价比”鼠标上栽跟头了
轻薄款设计的鼠标是目前鼠标市场的出货大头, 也是价格最卷的一类鼠标。 比游戏鼠标或许更卷一些。 这和当前的移动办公趋势关系很大。 这类鼠标主要跟笔记本和iPad搭配。 核心的使用场景是办公。 因此轻薄和静音是这类鼠标的核心卖点。 同时用户并不愿意付出太…...
![](https://www.ngui.cc/images/no-images.jpg)
Python制作签到系统
import datetime sign_in_records {} def sign_in(username): today datetime.date.today() if username not in sign_in_records: sign_in_records[username] [] sign_in_records[username].append(today) print(f"{username} 签到成功&#…...
![](https://www.ngui.cc/images/no-images.jpg)
面试题007-Java-Spring
面试题007-Java-Spring 目录 面试题007-Java-Spring题目自测题目答案1. 简单介绍一下Spring?2. Spring有哪些模块?3. 什么是Spring IoC ?4. 什么是依赖注入?有哪几种方式可以进行依赖注入?5. 什么是Spring AOP ?6. 什…...
![](https://i-blog.csdnimg.cn/direct/db3f70a2395f4bd9b791f1dcd4f18a8b.png)
后端之路——登录校验前言(Cookie\ Session\ JWT令牌)
前言:Servlet 【登录校验】这个功能技术的基础是【会话技术】,那么在讲【会话技术】的时候必然要谈到【Cookie】和【Session】这两个东西,那么在这之前必须要先讲一下一个很重要但是很多人都会忽略的一个知识点:【Servlet】 什么是…...
![](https://i-blog.csdnimg.cn/direct/04936c2f018044499b2f08ab8df6175a.jpeg)
【蓄势·致远】 同为科技(TOWE)2024年年中会议
2024年7月2日-8日,同为科技(TOWE)召开2024年年中工作会议。会议回顾上半年总体工作情况,分析研判发展形势,规划部署下半年工作。 为期一周的工作会议,由同为科技(TOWE)创始人、董事长…...
![](https://i-blog.csdnimg.cn/direct/46375c7d495344e28b3c330badc5512b.png)
通过git将文件push到github 远程仓库
1.先git clone 代码地址 git clone htttp://github.com/用户名/test.git 2. 添加文件 例如:touch 1.txt 3.将文件添加到暂存区 git add 1.txt 4.提交 git commit -m "commit 1.txt" 5.与远程仓库建立关联 git remote add 远程仓库名 远程仓库…...
![](https://www.ngui.cc/images/no-images.jpg)
如何判断服务器是否被攻击
如何判断服务器是否被攻击 一、异常流量模式 一种判断服务器是否遭到攻击的方法是监控网络流量。异常的流量模式,例如流量突然剧增或减少,都可能是攻击的迹象。通常,大量的入站流量表明分布式拒绝服务(DDoS)攻击的可能…...
![](https://i-blog.csdnimg.cn/direct/9e37bb6e03ec42ce9ea9827583c0f588.png)
泽众一站式性能测试平台P-One监控指标的意义
在当今数字化和信息化高度发展的时代,企业把保障系统稳定运行、优化业务流程和提升用户体验摆在首要位置。然而,在现如今复杂的分布式系统中,各个组件和服务之间的交互频繁且紧密,当系统出现性能瓶颈时,传统的监测手段…...
![](https://i-blog.csdnimg.cn/direct/140a79a09bd644b4b41816d5880d14d3.png)
前端Canvas入门——一些注意事项
创建渐变的三种方法: createLinearGradient() - 线性渐变 createRadialGradient() - 径向渐变(放射性渐变) createConicGradient() - 锥形渐变 这三种的核心观点都是: 创建一个gradient对象,然后调用addColorStop()方法…...
![](https://www.ngui.cc/images/no-images.jpg)
移动互联安全扩展要求测评项
安全物理环境-无线接入点的位置选择 应为无线接入设备的安装选择合理位置,避免过度覆盖和电磁干扰。 无线接入设备的安装位置选择不当,易被攻击者利用,特别是攻击者会通过无线信号过度覆盖的弱点进行无线渗透攻击,因此要选择合理…...
![](https://i-blog.csdnimg.cn/direct/1defae163a134d999a8987b169a7f749.png)
【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会
前言 思路及算法思维,指路 代码随想录。 题目来自 卡码网。 day 64,周三,继续ding~ 题目详情 [卡码117] 软件构建 题目描述 卡码117 软件构建 解题思路 前提: 思路: 重点: 代码实现 C语言 [卡码…...
![](https://i-blog.csdnimg.cn/direct/137866553cc44313a40646180cdf1675.png)
【python算法学习1】用递归和循环分别写下 fibonacci 斐波拉契数列,比较差异
问题: fibonacci 斐波拉契数列,用递归和循环的方法分别写,比较递归和循环的思路和写法的差别 最直接的思路,是写递归方法 循环方法的稍微有点绕,我觉得问题主要是出在,总结循环的通项公式更麻烦,难在数学…...
![](https://i-blog.csdnimg.cn/direct/342e2a92e8bb4004b90b01d99a3917da.png)
【邀请函】庭田科技邀您第五届中国国际复合材料科技大会
第五届中国国际复合材料科技大会暨第七届国际复合材料产业创新成果技术展示(ICIE7-新疆)将于7月25-27日在新疆乌鲁木齐-国际会展中心举行。上海庭田信息科技有限公司将携多款仿真模拟软件亮相本次大会,诚挚欢迎各位到场咨询了解! …...
![](https://i-blog.csdnimg.cn/direct/1b291e0eb1164dc3a2c6dada357f5574.png)
win32:第一个窗口程序-应用程序入口点(part.6)
第一个窗口程序的最后一部分:应用程序入口函数wWinMain;这是Windows应用程序的主函数,负责初始化应用程序、注册窗口类、创建主窗口并进入消息循环处理消息。 int APIENTRY wWinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInst…...
![](https://i-blog.csdnimg.cn/direct/45fe0b3f435348a989c6e2bc6e625ab9.png)
c++ 多边形 xyz 数据 获取 中心点方法,线的中心点取中心值搞定 已解决
有需求需要对。多边形 获取中心点方法,绝大多数都是 puthon和java版本。立体几何学中的知识。 封装函数 point ##########::getCenterOfGravity(std::vector<point> polygon) {if (polygon.size() < 2)return point();auto Area [](point p0, point p1, p…...
![](https://i-blog.csdnimg.cn/direct/cd0cbf4c45f842ce8be14b40d5e9ca6f.png)
ext_errno:拓展errno
类似于C库的errno机制,报告错误发生的原因以及所在的位置,通过查询来获取。...
![](https://i-blog.csdnimg.cn/direct/9ae6c9439d054a5fb83120cd6b0001a5.png)
【CUDA】 Trust基本特性介绍及性能分析
Trust简介 Thrust 是一个实现了众多基本并行算法的 C 模板库,类似于 C 的标准模板库(standard template library, STL)。该库自动包含在 CUDA 工具箱中。这是一个模板库,仅仅由一些头文件组成。在使用该库的某个功能时,包含需要的头文件即可。该库中的所有类型与函数都在命名空…...
![](/images/no-images.jpg)
网站 数据报表如何做/优化搜索关键词
题目链接 题目大意: 每次可以交换相邻的两个字母,问最少多少步可以把该字符串翻转。 方法一: 小技巧:一个数列的逆序对数是其通过相邻交换恢复为自然序列的最小交换次数 所以将逆序字符串从小到大编号,并将编号对应到…...
![](/images/no-images.jpg)
南京营销型网站建设/bt种子磁力搜索
我发现了这个程序http://baiyunmanor.com/blog/work/get-current-date-time-in-dos-batch-file/但是我不知道那行是什么:: datetime.bat到底是什么意思?在实践中,::是一个标签(也有可能不准确地用注释标签广为人知),就像REM一样,它…...
![](https://images2017.cnblogs.com/blog/1108991/201709/1108991-20170912203033875-1512802146.png)
网站产品介绍长图哪个软件做的/网站友情链接自动上链
题目大意是有一堆猴子,然后每个猴子都有自己喜欢的香蕉类型,然后香蕉会在指定的位置,问每个猴子能不能在每个地方吃到自己喜欢的香蕉。 其实直接暴力即可(因为最大最大最大是50) 上代码: 1 #include<stdio.h> 2…...
![](/images/no-images.jpg)
asp网站上哪做/网络营销工程师前景
目标: 实现单链表的增删改查,克隆复制,容量计算,是否为空判断. 结点类 public class Node<T> {T data;Node<T> nextnull;public Node(T data){this.datadata;}public Node(){}} 链表类 public class LinkedList<T> {Node<T> headernull;//每次增加…...
![](/images/no-images.jpg)
专注赣州网站建设/百度上打广告怎么收费
public function searchWordsByInitial(){//从AJAX发出的URL中获得参数:用户点击的字母和点击的页码$initial htmlentities($_POST[initial], ENT_QUOTES,"UTF-8");$page htmlentities($_POST[page], ENT_QUOTES,"UTF-8");$words $this->…...
![](/images/no-images.jpg)
档案馆网站建设/什么时候网络推广
https://blog.csdn.net/my_heart_/article/details/52601924 端口号的范围是从1~65535 端口的概念: 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、…...