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客户端 命令行模式
相关文章:

paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境
1.安装英伟达显卡驱动 首先需要到NAVIDIA官网去查自己的电脑是不是支持GPU运算。 网址是:CUDA GPUs | NVIDIA Developer。打开后的界面大致如下,只要里边有对应的型号就可以用GPU运算,并且每一款设备都列出来相关的计算能力(Compu…...
【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…...

如何在Linux上如何配置虚拟主机
在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件,可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤: 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…...
c语言alpha-beta剪枝六子棋
c语言Alpha-Beta剪枝算法六子棋[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2i5w8kc1-1720756528545)(https://i-blog.csdnimg.cn/direct/464b9db7d6384a63ab8c3213efff0e99.png)] 1.介绍 Alpha-Beta剪枝算法是一种用于优化博弈树搜索的算法&…...

基于PyTorch深度学习实践技术应用
近年来,Python语言由于其开源、简单等特点,受到了广大程序开发者的偏爱,丰富的函数库使得其在各行各业中得到了广泛的应用。伴随着新一轮人工智能(尤其是深度学习)的快速发展,许多深度学习框架应运而生&…...
数据湖仓一体(五)安装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…...

项目收获总结--本地缓存方案选型及使用缓存的坑
本地缓存方案选型及使用缓存的坑 一、摘要二、本地缓存三、本地缓存实现方案3.1 自己编程实现一个缓存3.2 基于 Guava Cache 实现本地缓存3.3 基于 Caffeine 实现本地缓存3.4 基于 Encache 实现本地缓存3.5 小结 四、使用缓存的坑4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩4.4 数据…...

java使用poi-tl模版引擎导出word之if判断条件的使用
文章目录 模版中if语句条件的使用1.数据为False或空集合2.非False或非空集合 模版中if语句条件的使用 如果区块对的值是 null 、false 或者空的集合,位于区块中的所有文档元素将不会显示,这就等同于if语句的条件为 false。语法示例:{{?stat…...

扩散的魔法:如何打造未来生物打印?
生物打印技术正在快速发展,它允许我们将生物材料、细胞和生长因子等生物活性成分精确地打印成具有特定形状和功能的结构。而扩散现象在生物打印中扮演着至关重要的角色,它影响着打印结构的特性、机械性能、生物功能和形态。为了更好地利用扩散现象&#…...
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…...
Python的基础语法——持续更新版
1、type查看数据类型 # 直接输出结果 print(type("Hello")) # 先用变量存储 string_type type("Hello") print(string_type) 2、 类型转化 任何类型可以转化为字符串,但字符串不可以随意转化,要求字符串类内容都是数字 # 类型…...

百度智能云将大模型引入网络故障定位的智能运维实践
物理网络中,某个设备发生故障,可能会引起一系列指标异常的告警。如何在短时间内从这些告警信息中找到真正的故障原因,犹如大海捞针,对于运维团队是一件很有挑战的事情。 在长期的物理网络运维工作建设中,百度智能云通…...
晚上定时编译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…...

轻薄鼠标的硬核选购攻略,很多人都在“高性价比”鼠标上栽跟头了
轻薄款设计的鼠标是目前鼠标市场的出货大头, 也是价格最卷的一类鼠标。 比游戏鼠标或许更卷一些。 这和当前的移动办公趋势关系很大。 这类鼠标主要跟笔记本和iPad搭配。 核心的使用场景是办公。 因此轻薄和静音是这类鼠标的核心卖点。 同时用户并不愿意付出太…...
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} 签到成功&#…...
面试题007-Java-Spring
面试题007-Java-Spring 目录 面试题007-Java-Spring题目自测题目答案1. 简单介绍一下Spring?2. Spring有哪些模块?3. 什么是Spring IoC ?4. 什么是依赖注入?有哪几种方式可以进行依赖注入?5. 什么是Spring AOP ?6. 什…...

后端之路——登录校验前言(Cookie\ Session\ JWT令牌)
前言:Servlet 【登录校验】这个功能技术的基础是【会话技术】,那么在讲【会话技术】的时候必然要谈到【Cookie】和【Session】这两个东西,那么在这之前必须要先讲一下一个很重要但是很多人都会忽略的一个知识点:【Servlet】 什么是…...

【蓄势·致远】 同为科技(TOWE)2024年年中会议
2024年7月2日-8日,同为科技(TOWE)召开2024年年中工作会议。会议回顾上半年总体工作情况,分析研判发展形势,规划部署下半年工作。 为期一周的工作会议,由同为科技(TOWE)创始人、董事长…...

通过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 远程仓库名 远程仓库…...
如何判断服务器是否被攻击
如何判断服务器是否被攻击 一、异常流量模式 一种判断服务器是否遭到攻击的方法是监控网络流量。异常的流量模式,例如流量突然剧增或减少,都可能是攻击的迹象。通常,大量的入站流量表明分布式拒绝服务(DDoS)攻击的可能…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
Netty自定义协议解析
目录 自定义协议设计 实现消息解码器 实现消息编码器 自定义消息对象 配置ChannelPipeline Netty提供了强大的编解码器抽象基类,这些基类能够帮助开发者快速实现自定义协议的解析。 自定义协议设计 在实现自定义协议解析之前,需要明确协议的具体格式。例如,一个简单的…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...