pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记

这篇具有很好参考价值的文章主要介绍了pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前的记录

Kylin Linux Advanced Server V10 (Tercel) aarch64安装NVIDIA-Linux-aarch64-520.61.05.run驱动Tesla T4 16G笔记_hkNaruto的博客-CSDN博客

Ubuntu 22.04 x86_64 源码编译 pytorch-v2.0.1 笔记_hkNaruto的博客-CSDN博客

Ubuntu 22.04 x86_64 源码编译 pytorch-v2.0.1 笔记【2】编译成功_hkNaruto的博客-CSDN博客

arm64环境编译

环境

[root@ceph3 pytorch]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/aarch64-linux-gnu/9.2.0/lto-wrapper
目标:aarch64-linux-gnu
配置为:../configure --prefix=/usr/local --mandir=/usr/local/share/man --infodir=/usr/local/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj --without-isl --without-cloog --enable-gnu-indirect-function --build=aarch64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --with-multilib-list=lp64
线程模型:posix
gcc 版本 9.2.0 (GCC)
[root@ceph3 pytorch]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:34:49_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

编译python3.10.12

安装依赖

yum install -y autoconf \
	bzip2 \
	bzip2-devel \
	desktop-file-utils \
	expat-devel \
	gdb \
	git \
	gmp-devel \
	libX11-devel \
	libappstream-glib \
	libffi-devel \
	libtirpc-devel \
	mesa-libGL-devel \
	ncurses-devel \
	net-tools \
	openssl-devel \
	python-rpm-macros \
	python3-setuptools \
	readline-devel \
	sqlite-devel \
	systemtap-sdt-devel \
	tcl-devel \
	tk-devel \
	xz-devel \
	zlib-devel \
	bluez-libs \
	dejavu-fonts-common \
	dejavu-sans-fonts \
	emacs-filesystem \
	fontconfig \
	fontconfig-devel \
	fontpackages-filesystem \
	freetype-devel \
	gdk-pixbuf2 \
	gl-manpages \
	glib-networking \
	gnutls \
	gsettings-desktop-schemas \
	jbigkit-libs \
	json-glib \
	keyutils-libs-devel \
	krb5-devel \
	libX11 \
	libX11-common \
	libXau \
	libXau-devel \
	libXdamage \
	libXdamage-devel \
	libXext \
	libXext-devel \
	libXfixes \
	libXfixes-devel \
	libXft \
	libXft-devel \
	libXrender \
	libXrender-devel \
	libXxf86vm \
	libXxf86vm-devel \
	libarchive \
	libcom_err-devel \
	libdrm-devel \
	libglvnd \
	libglvnd-core-devel \
	libglvnd-devel \
	libglvnd-egl \
	libglvnd-gles \
	libglvnd-glx \
	libglvnd-opengl \
	libjpeg-turbo \
	libkadm5 \
	libmodman \
	libpng-devel \
	libproxy \
	libselinux-devel \
	libsepol-devel \
	libsoup \
	libtiff \
	libtirpc \
	libuuid-devel \
	libverto-devel \
	libwayland-client \
	libwayland-server \
	libxcb \
	libxcb-devel \
	libxshmfence \
	m4 \
	mesa-khr-devel \
	mesa-libEGL \
	mesa-libGL \
	mesa-libgbm \
	mesa-libglapi \
	nettle \
	pcre-devel \
	perl-Data-Dumper \
	perl-Error \
	perl-Git \
	perl-TermReadKey \
	python-srpm-macros \
	python3 \
	python3-libs \
	rsync \
	tcl \
	tk \
	trousers \
	xorg-x11-proto-devel \
	expat \
	freetype \
	krb5-libs \
	libblkid \
	libmount \
	libsmartcols \
	libuuid \
	util-linux \
	xz \
	xz-libs \
	zlib

编译python

[root@ceph3 Python-3.10.12]# ./configure --prefix=/usr/local/Python-3.10.12 --enable-optimizations
[root@ceph3 Python-3.10.12]# make -j64
[root@ceph3 Python-3.10.12]# make install -j64

查看版本

[root@ceph3 Python-3.10.12]# /usr/local/Python-3.10.12/bin/python3 -V
Python 3.10.12

安装pyyaml

https://github.com/yaml/pyyaml/archive/refs/tags/6.0.1.tar.gz

[root@ceph3 yeqiang]# cd pyyaml-6.0.1/
[root@ceph3 pyyaml-6.0.1]# /usr/local/Python-3.10.12/bin/python3 setup.py install

注意:有报错(目前看不影响)

building 'yaml._yaml' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/Python-3.10.12/include/python3.10 -c yaml/_yaml.c -o build/temp.linux-aarch64-cpython-310/yaml/_yaml.o
gcc: 错误:yaml/_yaml.c:没有那个文件或目录
gcc: 致命错误:没有输入文件
编译中断。
Error compiling module, falling back to pure Python
 

安装typing_extensions

下载

yeqiang@yeqiang-MS-7B23:~/Downloads$ python3 -m pip download typing_extensions
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting typing_extensions
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl (33 kB)
Saved ./typing_extensions-4.7.1-py3-none-any.whl
Successfully downloaded typing_extensions

安装

[root@ceph3 yeqiang]# /usr/local/Python-3.10.12/bin/python3 -m pip install typing_extensions-4.7.1-py3-none-any.whl

编译pytorch

rsync把已经在x86编译成果的源代码同步到arm64服务器上。

[root@ceph3 pytorch]# export USE_CUDA=1
[root@ceph3 pytorch]# export PATH=/usr/local/cmake-3.27.4-linux-aarch64/bin:/usr/local/cuda/bin:$PATH
[root@ceph3 pytorch]# rm build -rf
[root@ceph3 pytorch]# /usr/local/Python-3.10.12/bin/python3 setup.py build

成功了

pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记,ai,nvidia,pytorch,笔记,人工智能

[root@ceph3 pytorch]# /usr/local/Python-3.10.12/bin/python3 setup.py install

pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记,ai,nvidia,pytorch,笔记,人工智能

参考:

官方参考文档:
https://devguide.python.org/getting-started/setup-building/#install-dependencies

CentOS7 yum-builddep python3 依赖信息参考:

Dependencies Resolved

================================================================================
 Package                    Arch    Version                      Repository
                                                                           Size
================================================================================
Installing:
 autoconf                   noarch  2.69-11.el7                  base     701 k
 bluez-libs-devel           x86_64  5.44-7.el7                   base      48 k
 bzip2                      x86_64  1.0.6-13.el7                 base      52 k
 bzip2-devel                x86_64  1.0.6-13.el7                 base     218 k
 desktop-file-utils         x86_64  0.23-2.el7                   base      67 k
 expat-devel                x86_64  2.1.0-15.el7_9               updates   58 k
 gdb                        x86_64  7.6.1-120.el7                base     2.4 M
 gdbm-devel                 x86_64  1.10-8.el7                   base      47 k
 git                        x86_64  1.8.3.1-25.el7_9             updates  4.4 M
 gmp-devel                  x86_64  1:6.0.0-15.el7               base     181 k
 libX11-devel               x86_64  1.6.7-4.el7_9                updates  981 k
 libappstream-glib          x86_64  0.7.8-2.el7                  base     286 k
 libffi-devel               x86_64  3.0.13-19.el7                base      23 k
 libtirpc-devel             x86_64  0.2.4-0.16.el7               base      91 k
 mesa-libGL-devel           x86_64  18.3.4-12.el7_9              updates  164 k
 ncurses-devel              x86_64  5.9-14.20130511.el7_4        base     712 k
 net-tools                  x86_64  2.0-0.25.20131004git.el7     base     306 k
 openssl-devel              x86_64  1:1.0.2k-26.el7_9            updates  1.5 M
 python-rpm-macros          noarch  3-34.el7                     base     9.1 k
 python3-pip                noarch  9.0.3-8.el7                  base     1.6 M
 python3-setuptools         noarch  39.2.0-10.el7                base     629 k
 readline-devel             x86_64  6.2-11.el7                   base     139 k
 sqlite-devel               x86_64  3.7.17-8.el7_7.1             base     104 k
 systemtap-sdt-devel        x86_64  4.0-13.el7                   base      76 k
 tcl-devel                  x86_64  1:8.5.13-8.el7               base     165 k
 tix-devel                  x86_64  1:8.4.3-12.el7               base     139 k
 tk-devel                   x86_64  1:8.5.13-6.el7               base     488 k
 xz-devel                   x86_64  5.2.2-2.el7_9                updates   46 k
 zlib-devel                 x86_64  1.2.7-21.el7_9               updates   50 k
Installing for dependencies:
 bluez-libs                 x86_64  5.44-7.el7                   base      81 k
 dejavu-fonts-common        noarch  2.33-6.el7                   base      64 k
 dejavu-sans-fonts          noarch  2.33-6.el7                   base     1.4 M
 emacs-filesystem           noarch  1:24.3-23.el7_9.1            updates   58 k
 fontconfig                 x86_64  2.13.0-4.3.el7               base     254 k
 fontconfig-devel           x86_64  2.13.0-4.3.el7               base     138 k
 fontpackages-filesystem    noarch  1.44-8.el7                   base     9.9 k
 freetype-devel             x86_64  2.8-14.el7_9.1               updates  447 k
 gdk-pixbuf2                x86_64  2.36.12-3.el7                base     570 k
 gl-manpages                noarch  1.1-7.20130122.el7           base     994 k
 glib-networking            x86_64  2.56.1-1.el7                 base     145 k
 gnutls                     x86_64  3.3.29-9.el7_6               base     680 k
 gsettings-desktop-schemas  x86_64  3.28.0-3.el7                 base     606 k
 jasper-libs                x86_64  1.900.1-33.el7               base     150 k
 jbigkit-libs               x86_64  2.0-11.el7                   base      46 k
 json-glib                  x86_64  1.4.2-2.el7                  base     134 k
 keyutils-libs-devel        x86_64  1.5.8-3.el7                  base      37 k
 krb5-devel                 x86_64  1.15.1-55.el7_9              updates  273 k
 libX11                     x86_64  1.6.7-4.el7_9                updates  607 k
 libX11-common              noarch  1.6.7-4.el7_9                updates  164 k
 libXau                     x86_64  1.0.8-2.1.el7                base      29 k
 libXau-devel               x86_64  1.0.8-2.1.el7                base      14 k
 libXdamage                 x86_64  1.1.4-4.1.el7                base      20 k
 libXdamage-devel           x86_64  1.1.4-4.1.el7                base     9.7 k
 libXext                    x86_64  1.3.3-3.el7                  base      39 k
 libXext-devel              x86_64  1.3.3-3.el7                  base      75 k
 libXfixes                  x86_64  5.0.3-1.el7                  base      18 k
 libXfixes-devel            x86_64  5.0.3-1.el7                  base      13 k
 libXft                     x86_64  2.3.2-2.el7                  base      58 k
 libXft-devel               x86_64  2.3.2-2.el7                  base      19 k
 libXrender                 x86_64  0.9.10-1.el7                 base      26 k
 libXrender-devel           x86_64  0.9.10-1.el7                 base      17 k
 libXxf86vm                 x86_64  1.1.4-1.el7                  base      18 k
 libXxf86vm-devel           x86_64  1.1.4-1.el7                  base      18 k
 libarchive                 x86_64  3.1.2-14.el7_7               base     319 k
 libcom_err-devel           x86_64  1.42.9-19.el7                base      32 k
 libdrm-devel               x86_64  2.4.97-2.el7                 base     143 k
 libgcab1                   x86_64  0.7-4.el7_4                  base      66 k
 libglvnd                   x86_64  1:1.0.1-0.8.git5baa1e5.el7   base      89 k
 libglvnd-core-devel        x86_64  1:1.0.1-0.8.git5baa1e5.el7   base      20 k
 libglvnd-devel             x86_64  1:1.0.1-0.8.git5baa1e5.el7   base      11 k
 libglvnd-egl               x86_64  1:1.0.1-0.8.git5baa1e5.el7   base      44 k
 libglvnd-gles              x86_64  1:1.0.1-0.8.git5baa1e5.el7   base      34 k
 libglvnd-glx               x86_64  1:1.0.1-0.8.git5baa1e5.el7   base     125 k
 libglvnd-opengl            x86_64  1:1.0.1-0.8.git5baa1e5.el7   base      43 k
 libjpeg-turbo              x86_64  1.2.90-8.el7                 base     135 k
 libkadm5                   x86_64  1.15.1-55.el7_9              updates  180 k
 libmodman                  x86_64  2.0.1-8.el7                  base      28 k
 libpng-devel               x86_64  2:1.5.13-8.el7               base     122 k
 libproxy                   x86_64  0.4.11-11.el7                base      64 k
 libselinux-devel           x86_64  2.5-15.el7                   base     187 k
 libsepol-devel             x86_64  2.5-10.el7                   base      77 k
 libsoup                    x86_64  2.62.2-2.el7                 base     411 k
 libtiff                    x86_64  4.0.3-35.el7                 base     172 k
 libtirpc                   x86_64  0.2.4-0.16.el7               base      89 k
 libuuid-devel              x86_64  2.23.2-65.el7_9.1            updates   93 k
 libverto-devel             x86_64  0.2.5-4.el7                  base      12 k
 libwayland-client          x86_64  1.15.0-1.el7                 base      33 k
 libwayland-server          x86_64  1.15.0-1.el7                 base      39 k
 libxcb                     x86_64  1.13-1.el7                   base     214 k
 libxcb-devel               x86_64  1.13-1.el7                   base     1.1 M
 libxshmfence               x86_64  1.2-1.el7                    base     7.2 k
 m4                         x86_64  1.4.16-10.el7                base     256 k
 mesa-khr-devel             x86_64  18.3.4-12.el7_9              updates   20 k
 mesa-libEGL                x86_64  18.3.4-12.el7_9              updates  110 k
 mesa-libGL                 x86_64  18.3.4-12.el7_9              updates  166 k
 mesa-libgbm                x86_64  18.3.4-12.el7_9              updates   39 k
 mesa-libglapi              x86_64  18.3.4-12.el7_9              updates   46 k
 nettle                     x86_64  2.7.1-9.el7_9                updates  328 k
 pcre-devel                 x86_64  8.32-17.el7                  base     480 k
 perl-Data-Dumper           x86_64  2.145-3.el7                  base      47 k
 perl-Error                 noarch  1:0.17020-2.el7              base      32 k
 perl-Git                   noarch  1.8.3.1-25.el7_9             updates   56 k
 perl-TermReadKey           x86_64  2.30-20.el7                  base      31 k
 pyparsing                  noarch  1.5.6-9.el7                  base      94 k
 python-srpm-macros         noarch  3-34.el7                     base     8.8 k
 python3                    x86_64  3.6.8-19.el7_9               updates   70 k
 python3-libs               x86_64  3.6.8-19.el7_9               updates  6.9 M
 rsync                      x86_64  3.1.2-12.el7_9               updates  408 k
 tcl                        x86_64  1:8.5.13-8.el7               base     1.9 M
 tix                        x86_64  1:8.4.3-12.el7               base     254 k
 tk                         x86_64  1:8.5.13-6.el7               base     1.4 M
 trousers                   x86_64  0.3.14-2.el7                 base     289 k
 xorg-x11-proto-devel       noarch  2018.4-1.el7                 base     280 k
Updating for dependencies:
 expat                      x86_64  2.1.0-15.el7_9               updates   83 k
 freetype                   x86_64  2.8-14.el7_9.1               updates  380 k
 krb5-libs                  x86_64  1.15.1-55.el7_9              updates  810 k
 libblkid                   x86_64  2.23.2-65.el7_9.1            updates  183 k
 libmount                   x86_64  2.23.2-65.el7_9.1            updates  185 k
 libsmartcols               x86_64  2.23.2-65.el7_9.1            updates  143 k
 libuuid                    x86_64  2.23.2-65.el7_9.1            updates   84 k
 openssl                    x86_64  1:1.0.2k-26.el7_9            updates  494 k
 openssl-libs               x86_64  1:1.0.2k-26.el7_9            updates  1.2 M
 util-linux                 x86_64  2.23.2-65.el7_9.1            updates  2.0 M
 xz                         x86_64  5.2.2-2.el7_9                updates  229 k
 xz-libs                    x86_64  5.2.2-2.el7_9                updates  103 k
 zlib                       x86_64  1.2.7-21.el7_9               updates   90 k
 
 
 
 
 安装结果待验证
 
 
笔记: 
 
麒麟V10无对应库
No match for argument: bluez-libs-devel
No match for argument: gdbm-devel
No match for argument: python3-pip
No match for argument: tix-devel
No match for argument: jasper-libs
No match for argument: libgcab1
No match for argument: pyparsing
No match for argument: tix
Error: Unable to find a match: bluez-libs-devel gdbm-devel python3-pip tix-devel jasper-libs libgcab1 pyparsing tix


Error: 
 Problem: cannot install both openssl-libs-1:1.1.1f-2.ky10.aarch64 and openssl-libs-1:1.1.1f-4.p04.ky10.aarch64
  - package openssl-devel-1:1.1.1f-2.ky10.aarch64 requires openssl-libs(aarch-64) = 1:1.1.1f-2.ky10, but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

已存在openssl库,但是版本有对不上,去掉openssl openssl-lib的安装指令文章来源地址https://www.toymoban.com/news/detail-706634.html

到了这里,关于pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 22.04 x86_64 源码编译 pytorch-v2.0.1 笔记【2】编译成功

     20230831继续: 当前状态 故障1 目录是空的 (pytorch-build) yeqiang@yeqiang-MS-7B23:~/Downloads/src/pytorch$ ll third_party/foxi 总计 0   手动checkout (pytorch-build) yeqiang@yeqiang-MS-7B23:~/Downloads/src/pytorch/third_party/foxi$ git pull 已经是最新的。 (pytorch-build) yeqiang@yeqiang-MS-7B23:~/Downloads/src/pytorch/third_party/fo

    2024年02月10日
    浏览(55)
  • UEFI源码学习01-ARM AARCH64编译、ArmPlatformPriPeiCore(SEC)

    编译完之后会生成UEFI文件: Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/QEMU_EFI.fd 运行命令如下 大部分教程都是用OVMF来做示例,OVMF中第一个运行的UEFI模块是SEC。但AARCH64中的SEC是这个ArmPlatformPriPeiCore。所以在edk2的AARCH64示例中,ArmPlatformPriPeiCore是第一个运行的模块。 我们用UEFITool NE 打开

    2023年04月08日
    浏览(39)
  • arm64和aarch64之间的区别

    直接给出结论:arm64已经与aarch64合并,因为aarch64和arm64指的是同一件事。 AArch64是ARMv8 架构的一种执行状态。 为了更广泛地向企业领域推进,需要引入 64 位构架。同时也需要在 ARMv8 架构中引入新的 AArch64 执行状态。AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新

    2024年02月11日
    浏览(34)
  • arm/aarch64架构安装conda环境

    首先找到一个下载conda的地址 清华源anaconda地址 可以看到conda在不同系统环境下有如下版本 鉴别不同国产系统可参考:国产的开源操作系统都有哪些? 这里用阿里arm/aarch64架构 所以下载连接为 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-Linux-aarch64.sh 可以手动下载上

    2024年02月14日
    浏览(41)
  • 服务器基础知识:aarch64 arm64 arm x86有什么区别

    aarch64 和 arm64 是指基于ARM架构的64位处理器,而 arm 是指基于ARM架构的32位处理器。 x86 则是指基于x86架构的处理器。 架构: aarch64 、 arm64 和 arm 都属于ARM架构,而 x86 属于x86架构。 位数: aarch64 和 arm64 是64位处理器架构,能够使用64位的寄存器和指令集。 arm 是32位处理器架构

    2024年02月08日
    浏览(52)
  • ARM AArch64的虚拟化(virtualization)详解(下)

    目录 六、异常的虚拟化 启用虚拟中断 生成虚拟中断 将中断转发(forward)到vCPU示例

    2024年02月03日
    浏览(38)
  • ARM AArch64的虚拟化(virtualization)详解(上)

    目录 一、概述 开始之前 二、虚拟化介绍 为什么虚拟化很重要

    2024年02月02日
    浏览(52)
  • Windows11 上使用 QEMU 创建 Ubuntu aarch64(ARM64)虚拟机

    最近在实现一个混沌测试工具,对汽车上分布式系统执行测试。计划运行在 Linux aarch64 环境,需要确定在目标环境能不能运行,但自己和实验室的电脑都是 x86_64,所以打算建一个虚拟机。 通过 Docker容器或VMware都不支持在 x86_64 宿主机运行 aarch64 容器/虚拟机, Virtual Box 似乎也

    2024年02月03日
    浏览(50)
  • debian 11 arm64 aarch64 D2000 平台编译 box86 box64 笔记

    参考资料 https://github.com/ptitSeb/box86/blob/master/docs/COMPILE.md 源码地址 GitHub - ptitSeb/box86: Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices deb在线源地址(打不开): Itai\\\'s box86 apt repo 源码编译 apt install gcc-arm-linux-gnueabihf mkdir build; cd build; cmake .. -DPHYTIUM=1 -DCMAKE_BUILD_TY

    2024年01月16日
    浏览(52)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

    苦辣酸甜时光八载,春夏秋冬志此一生 Qt简介: Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系统有很多,例如通用

    2024年01月23日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包