Adlik如何实现与燧原芯片的对接?

Adlik:Adlik:加速深度学习推理的工具包 阿德利克 Adlik [ædlik]是深度学习模型的端到端优化框架。 Adlik的目标是在云和嵌入式环境上加速深度学习推理过程。 借助Adlik框架,可以以非常灵活和轻松的方式将不同的深度学习模型部署到具有高性能的不同平台。 在云环境中,应将已编译的模型和Adlik Inference Engine构建为docker映像,并部署为容器。 在边缘环境中,应将Adlik Inference Engine部署为容器。 应将编译后的模型转移到边缘环境,并且Adlik Inference Engine应该自动更新和加载模型。 在设备环境中,Adlik Inference Engine和编译后的模型应编译成二进制文件( so或lib )。 想要在设备上运行模型推断的用户应将用户定义的AI函数和Adlik二进制文件链接到执行文件,然后直接运行。 我们使用简单的CNN模型(MNIST模型),ResNet50模型和具有不同服务引擎的InceptionV3,在同一CPU或GPU上测试Adlik的推理性能。 Adlik在不同模型上的测试性能数据如下: 内容 模型优化器专注于特定的硬件并在其上运行以 立即下载

引言

Adlik 1.0 版本,加入了与燧原科技合作的成果,增加了对燧原 i20 芯片的支持,该芯片是燧原科技发布的基于邃思 2.5 芯片打造的面向数据中心的第二代人工智能推理加速卡,具有高性能高能效、模型覆盖面广、易部署易运维等特点,可广泛应用于计算机视觉、语音识别与合成、自然语言处理、搜索与推荐等推理场景。该芯片使用推理引擎TopsInference为深度学习应用提供低延迟、高吞吐率的推理部署。

1. i20相关背景介绍

项目开发前,对燧原 i20 芯片进行了相关调研,调研结果如下:

  • 芯片采用 16GB 高带宽 HBM2E 存储,存储带宽高达 819GB/s。

  • 芯片采用 12nm 工艺、采用自研架构 GCU(General Compute Unit)。

  • 芯片主要应用范围是 AI 推算,支持图像分类、目标检测、自然语言处理等领域。

  • 芯片支持 fp32 、 fp16 ,以及混合精度,暂不支持 int8。

  • 芯片支持 ONNX 模型,但不是所有 ONNX 模型都支持。

  • 芯片对静态模型支持度高,暂不支持动态模型。

2. 对接方案

在 Adlik 中增加 i20 芯片的支持,需要增加以下内容:编译器部分增加原始模型格式到 i20 芯片支持的模型格式的转换,即加入一条从 ONNX 模型格式到燧原支持的 EXEC 模型格式的路径,运行时部分增加燧原运行时,提供使用 i20 芯片进行推理的支持。

由于 model_compiler 模型转换路径较多,可以分类为源模型格式直接到目的模型格式的方式,以及源模型格式到目的模型格式有中间状态的方式。编译器加入燧原模型,增加了一条ONNX 模型直接到燧原模型的路径。

增加后,源模式直接到目的模式的路径状态图如下:

258686049068bdb2f8d29eba5b3899ef.png

adlik_serving 的功能是根据不同模型部署相应的服务,支持部署在 CPU、GPU 上。推理时,通过调度器,调度相应的推理引擎,由 http grpc 进行数据传输,将客户端数据传输到 Adlik 服务端进行推理。

Adlik 运行时支持情况:

推理引擎TensorFlowOpenVinoTensorRTTFLiteMLPaddlePaddleTFtrtTVMLibtorchTopsInference
硬件CPU/GPUCPU/GPUGPUCPUCPUCPUGPUCPUCPU/GPUGCU

Adlik runtime 增加燧原运行时后,可以将不同的深度学习模型通过 Adlik 服务平台部署到燧原 i20 芯片上,实现了在硬件 GCU 上使用 TopsInference 进行推理。可支持单 batch 、多 batch 、多模型、多实例的推理。

(1) 编译器的实现与使用

编译器部分首先使用TopsInference接口创建ONNX解析器,使用解析器读取ONNX模型,得到模型结构,接着使用TopsInference接口创建优化器,使用优化器构建燧原模型。代码如下:

with TopsInference.device(0, 0):
    onnx_parser = TopsInference.create_parser(TopsInference.ONNX_MODEL)
    network = onnx_parser.read(source.model_path)
    optimizer = TopsInference.create_optimizer()
    engine = optimizer.build(network)
#这是onnx模型到燧原模型转换过程

代码详见:Adlik/model_compiler/src/model_compiler/compilers/onnx_model_file_to_enflame_model.py

单元测试:

pytest tests/model_compiler/compilers/test_onnx_model_file_to_enflame_model.py 
pytest tests/model_compiler/models/targets/test_enflame_model.py

转换测试:

python3.8 compile_model.py

结果如下:6734c77e12814074e91a0f8362ac6c0d.png

生成的文件夹,目录结构如下:

model_repos
├── resnet50
│   ├── 1
│   │   └── model.exec
│   └── config.pbtxt
└── resnet50_1.zip

(2) 运行时的实现与使用

Adlik 提供了全面的 SDK(Software Development Kit),以 SDK 方式提供给开发者可扩展实现自定义推理运行时的能力,以便更快的开发新运行时。例如在 adlik_serving 中提供运行时的管理和调度功能,开发者只需要关注计算引擎的具体实现即可。在燧原运行时中,计算引擎的实现类为 BatchProcessor 类。这个类可以直接调用 TopsInference 计算引擎的执行 API 实现推理。在这个过程中,提炼了 Buffer 类概念,对此类进行实例化产生输入输出缓冲区对象,用于存储输入输出的数据。

执行推理的具体实现:

std::vector<void*> inputs_buffer_bound;
  for (auto& input : inputs) {
    inputs_buffer_bound.push_back(input.buffer_on_device);
  }
  std::vector<void*> outputs_buffer_bound;
  for (auto& output : outputs) {
    outputs_buffer_bound.push_back(output.buffer_on_device);
  }
  bool rtn = engine->run_with_batch(config.max_batch_size(),
                                    inputs_buffer_bound.data(),
                                    outputs_buffer_bound.data(),
                                    TopsInference::BufferType::TIF_ENGINE_RSC_IN_DEVICE_OUT_DEVICE,
                                    stream);
  if (!rtn) {
    return tensorflow::errors::Internal("Faild run in enflame reference.");
  }
  status = splitOutputs(payloads);
  TopsInference::synchronize_stream(stream);
//异步推理

代码详见:Adlik/adlik_serving/runtime/topsinference/model/topsinference_model.cc

测试过程:

(1)服务器首先部署燧原模型

adlik_serving --model_base_path=/workspace/Adlik/examples/topsinference_model/model_repos  --grpc_port=8500 --http_port=8501

(2)若成功则进入loop状态

I adlik_serving/server/http/internal/server_interface.cc:167] Entering the event loop ...

(3)等待客户端提出请求,服务器接受处理请求并返回响应。

python3.8 resnet50_client_acc.py -t data/val_map.txt data/figures/tench.JPEG data/imagenet_class.txt

(4)结果如下:

Image: 'data/figures/tench.JPEG', result: [{'idx': 0, 'score': 14.775530815124512, 'label': '0 tench'}]

3. 测试情况

测试选取图像分类领域 resnet50 模型,目标检测领域 yolov5s 模型,以及自然语言处理领域的 bert 模型。模型及大小,来源如下,数据类型是均为 fp32。

ONNX模型大小数据集模型来源
resnet5097.4Mimagenet链接1
剪枝resnet5039.8Mimagenet链接2
yolov5s27.6Mcoco2017链接3
bert415.2Mdev-v1.1.json燧原提供

其中模型均可在Adlik仓库中获取,链接如下。

链接1:https://github.com/Adlik/Adlik/blob/master/benchmark/tests/test_model/resnet50_pytorch/resnet50_pytorch.py

链接2:https://github.com/Adlik/model_zoo/tree/main/model_optimizer

链接3:https://github.com/Adlik/model_zoo

经测试,Adlik 模型编译器可以完成模型转换,Adlik 燧原运行时可以完成模型部署、模型推理,并返回相应的推理结果。

在测试时延的场景下,取 batch_size=1。resnet50、剪枝resnet50、yolov5s、bert 等迭代次数为 1200 次,warmup 10 次,推理时延取所有 batch 推理时延的平均数。

ONNX模型Adlik推理时延(ms)
resnet504.86533
剪枝resnet503.3735
yolov5s10.3394
bert1154.33

在测量吞吐量的场景下,resnet50、剪枝 resnet50 和 bert batch_size 取 120,yolov5s 取 30 。

ONNX模型Adlik推理时延(ms)单实例-fps
resnet50101.7041179.894596
剪枝resnet5068.69331746.895258
yolov5s134.559222.950527
bert1233.9197.251825

在同等条件下,燧原测试工具 topsexec 的吞吐量结果如下:

ONNX模型batch_size吞吐量
resnet501201162.58
剪枝resnet501201659.88
yolov5s30514.543
bert12086

4. 总结

Adlik 对接燧原芯片的工作还在继续。目前有一个遗留问题,能否将内存中的 onnx.onnx_ml_pb2.ModelProto 数据转换为燧原模型的格式,如果可以,编译器就可以提供TensorFlow、Keras 等到燧原格式的转换。此方法由于燧原构建模型的 API 暂不支持动态 shape 因此无法提供使用。后续将会继续跟踪燧原相关新特性消息,提高编译器对这种转换形式的支持程度。

Geogebra中级篇016—矩阵(Matrices) 在GeoGebra中,矩阵是一种强大的工具,广泛应用于线性代数、几何变换和数据处理等领域。通过矩阵,我们可以轻松实现复杂的计算和图形变换,如旋转、平移和缩放等操作。不仅如此,GeoGebra的矩阵功能还支持多种运算,如加法、乘法、求逆等,使得用户能够高效地处理线性方程组和向量空间问题。在本文中,我们将深入探讨GeoGebra中的矩阵功能,详细介绍如何创建矩阵、执行常见的矩阵运算,并通过实例展示这些操作在数学和工程应用中的实际价值。这篇文章将为你提供关于GeoGebra矩阵操作的全面指南。 阅读详情

相关推荐

Cadence原理图设计10个高效技巧:从封装绑定到BOM表导出全流程

本文为硬件工程师提供了一套Cadence OrCAD Capture CIS原理图设计的高效实战指南。文章深度解析了从封装库的精准管理与CIS数据库绑定、封装批量处理技巧,到设计缓存清理、跨页信号追踪,再到关键的DRC检查、网表导出以及智能BOM报表生成的全流程核心技巧,旨在帮助工程师提升设计效率与可靠性,规避常见错误。

weixin_29178069的博客 201

​Adlik 云原生介绍

Pivotal作为云原生(Cloud Native)应用架构中先驱者和探路者,于2015年提出了云原生应用。

csdndevpress0035的博客 357

西电计组实验二 运算器实验

算术逻辑运算实验 一.实验目的   1.了解简单运算器的数据传输通路。   2.验证运算功能发生器的组合功能。   3.掌握算术逻辑运算加、减、与的工作原理。   4.验证实验台运算的8位加、减、与、直通功能。   5.按给定数据,完成几种指定的算术和逻辑运算。 二.实验原理   算术逻辑单元ALU的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个8位数据分别为A[7…0]和B[7…0],运算模式由S[3…0]的16种

Polaris的博客 1万+

Ubuntu 16 优化

环境 ubuntu-16.04.4-desktop-amd64 优化过程 删除libreoffice sudo apt-get remove libreoffice 删除Amazon的链接 sudo apt-get remove unity-webapps-common 删掉基本不用的自带软件 sudo apt-get remove thunderb...

Aaron0520的博客 309

实战指南:基于ELK与Grafana构建天融信防火墙日志可视化看板

本文详细介绍了如何基于ELK与Grafana构建天融信防火墙日志可视化看板,包括环境准备、日志收集与解析配置、Elasticsearch存储优化、Grafana看板设计等关键步骤。通过实战案例和优化技巧,帮助用户高效处理天融信防火墙日志,实现安全态势的可视化监控与分析。

weixin_34246529的博客 226

【HSPiP应用指南】从理论到实践:如何利用汉森溶解度参数优化配方设计

本文深入解析了汉森溶解度参数(HSP)理论及其在配方设计中的核心价值,并详细介绍了如何利用HSPiP软件工具从理论走向实践。文章通过匹配溶解度参数、计算汉森距离(Ra),系统阐述了如何解决溶剂选择、颜料分散稳定性及扩散行为预测等关键问题,并结合界面气相色谱(IGC)等实验方法提升预测精度,旨在帮助配方师实现配方设计的可视化、可量化与高效优化。

weixin_29305313的博客 1646

Adlik在深度学习异构计算上的实践

Adlik首先在架构上支持多类异构硬件和计算引擎,也在FPGA异构计算上完成了一些技术实践,后续将继续进行特定硬件上的计算优化技术的研究,来加速推动AI模型的工程应用。...

csdndevpress0035的博客 359

ISO18000-6B/6C(EPC C1G2)两个射频识别(RFID)标准协议的技术特点

目前读写器基本上是采用IMPINJ的R2000芯片和E710芯片开发,因为ISO18000-6B标准的现在应用很少,E710芯片已经不再支持ISO18000-6B标准,选择上就只有采用R2000芯片开发的UR6258超高频读写器以及手持机,这个在项目应用上需要留意。尽管ISO18000-6B标准具有上述优点,但也存在一些不足之处,特别是多标签阅读性能远远满足不了现在的应用需求,近年来发展停滞,绝大部分应用已经被ISO18000-6C(EPC C1G2)取代;#RFID# #物联网# #标准协议#

RFID设备与应用介绍 2157

Adlik深度学习模型编译器介绍

★将深度学习模型部署到生产环境实现应用是深度学习算法落地的重要一步。部署阶段的场景和目标设备多种多样,目前针对不同设备有不同的推理框架,如Tensorflow Serving、Tensor...

LF_AI的博客 1058

批量读取_MCGS触摸屏如何实现批量读取modbus数据的方法?

前两天,在一个QQ群里,有同行的朋友问,在MCGS中如何实现批量读取数据,因为他当时面临设备,通讯协议才是MODBUS RTU,同时厂家说地址不能分开读,必须是连续的。鉴于他提供的消息是能够设置的地方都试过了。为此,我直接告诉通过脚本,批量读取的方案。那么这个方案究竟如何实现?且看我下面慢慢道来。一、工具1.modsim:仿真PLC或者第三方设备。2.MCGS组态软件3.串口软件:在电脑中生成两不...

weixin_32511509的博客 8160

开题报告该怎么写

考研即将来临,而一般很多大学都会选择在考研结束之后开始安排选题和开题报考(考研之前一般都不谈,老师也很人性化的,不愿意耽误你的复习) 但无论怎么推迟,我们最终都需要去面对并完成这些任务。 现在我就要教大家该如何写一个完整的开题报告! 准备模板。不同的学校有不同的格式,一般情况你的导师会给你们一个学校的标准格式,这个不用太费心。有了模板我们就可以按照模板的“线索”一步一步填充完成即可! 一般大致格式可谓: 研究背景/论文的目的、背景和意义 我们需要写明选择该题目的...

wuyueweifeng的博客 1095

Adlik 支持基于云燧i20的 AI推理服务部署,共建AI生态链

近日,中兴通讯开源的Adlik深度学习推理工具链新增对人工智能推理加速卡云燧i20的支持,可实现基于云燧i20的高效AI模型部署,提供高性能的云端推理服务。Adlik是由中兴通讯在Linux基金会人工智能&数据基金会(LF AI & Data)发起的开源项目,旨在提升深度学习、机器学习等模型在各种硬件平台下的推理效率,助力人工智能在云、边、端等多种场景快速落地。对异构硬件的推理支持...

LF_AI的博客 510

固态变压器SST 1.1 课程整体框架与学习路径

本课程围绕固态变压器(SST)全生命周期工程化流程设计,构建"规范要求-理论基础-设计方法-仿真验证-工程落地"的闭环学习体系,完整覆盖GB/T 40429-2021标准要求。课程分为基础认知、核心设计、合规验证、工程落地和前沿拓展五大模块,采用理论讲解与工程实践深度融合的教学路径,通过规范条款拆解、仿真预验证、硬件实现、试验检测等环节,培养学员从设计到落地的完整能力。课程强调标准合规性,每个设计环节均有明确规范约束,并提供标准化工程模板,确保学习成果可直接应用于实际项目开发。

技术工作者 991

Adlik新版本发布,增加一种芯片支持

12月20日,深度学习推理工具链Adlik Release 1.0 已经发布啦!除了常规的升级外,本次版本最大的亮点是增加了对于燧原科技人工智能推理加速卡云燧i20的支持, 使得Adlik云端推理方案有了更多的选择。欢迎各位小伙伴速来体验、拍砖。Compiler:支持ONNX模型到燧原芯片模型格式的编译路径支持OpenVINO升级到2022.3.0版本支持TensorFlow升级到2.10.1版本...

LF_AI的博客 381

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

1024分论坛:人工智能创新应用的优化实践和多产业落地

人工智能新应用论坛总结

优快云资讯 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

的有效 海思编码_【最佳案例展示】2020年CUVA“超高清视频创新产品与解决方案”全球首款8K@120解码芯片海思Hi3796CV300...

最佳奖:上海海思技术有限公司《全球首款8K@120解码芯片-海思Hi3796CV300》案例概述8K从摄像、制作、编码到传输、解码、显示,全链条的产业化正在加快成熟, 国家超高清/8K产业政策的强力推进,8K开始步入家庭生活,成为家庭消费的新引爆点。伴随8K技术而来,更高阶的智能业务落地成为可能,为了做到个性化的服务,各种大数据分析使得运营商和终端开始了解用户的述求,但依然存在很大的技...

weixin_34268604的博客 1904

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

谁要动“软件”的奶酪?汽车芯片厂商集体“下沉”

软件定义汽车,正在重新构建新的供应链体系。从互联网科技巨头、操作系统及软件开发商、一级汽车零部件供应商以及汽车制造商都在加速推动软件战略。 不过,芯片厂商似乎具备得天独厚的优势。 一直以来,从车载芯片、底层驱动、操作系统到上层应用软件开发,是一条紧耦合的产业链。过去芯片厂商不直接与汽车制造商合作,整个产业价值链被不同环节的企业所分割。 随着近年来芯片厂商越来越多参与到软件层面的模块开发,核心诉求之一就是帮助下游客户快速适配新的计算平台,同时减少基础、共性的软件开发,从而达到降本增效的目的。 现在,作

高工智能汽车 343

Winyao 推出了8125-mPC系列2.5G Mini PCIE 的网卡.RTL8125B芯片

**Winyao 推出了8125-mPC系列以单芯片2.5G Mini PCIE 的网卡,基于Realtek公司的以太网控制器RTL8125B** RTL8125B,是为游戏PC设计的。结合Realtek Dra.Software,可以立即处理传入的高优先级分组,消除排队延迟,并提供增强的游戏体验。RTL8156支持下一代CDC-NCM,当插入到支持CDC-NCM的MAC OS或Linux OS产品时,它允许用户享受Plug and Link的优势,并使用户更容易将其以太网升级到2.5G。 “Realte

winyao88的博客 6306

Realtek 2.5G 网卡 RTL8125-CG/RTL8156-CG简介

RealTek推出了单芯片2.5G以太网控制器 2018年5月30日RealTek宣布了一系列2.5G以太网解决方案,涵盖了各种不同的应用需求。这些包括: RTL8125:支持PCIE 2接口用于PC嵌入式应用 RTL8156:提供一个用于外部加密和停靠应用的USB接口 RTL8226:支持2500BASE-X、SGMII+和USXGMII(2.5G)接口的物理层收发器,是...

weixin_42707975的博客 2万+

从生态、标准、应用看中国开源 30 年!

作者 | 屠敏出品 | 优快云(ID:优快云news)开源已成为技术创新和产业发展的重要模式。过去三十年来,从 UNIX、Linux 等开源技术的引入,到 Vue、Ant Design...

优快云资讯 2081

知从科技作为Arm嘉宾出席亚太区SOAFEE研讨会

汽车研发需遵循多种行业及法规标准,软件定义汽车时代来临,知从科技作为Arm嘉宾出席亚太区SOAFEE研讨会。

2301_77440234的博客 485

为什么选择ROS2编程作为机器人工程课程之一?

四个字:大势所趋。 半自动驾驶汽车全面普及的时代 软件重新定义汽车(这就是机器人啊) 从2050回顾2020,职业规划与技术路径(节选) 在高校开设ROS2课程最早起源2018年,在2020年/2021年正式全面使用ROS2进行课程讲授。 ROS2机器人高效编程公选课总结(2020) 《ROS机器人程序设计》大纲节选和实验提示(ROS2)(2021) 为什么? ROS2教程文档使用说明与为什么选择ROS2?(2019) 未来趋势,当下从软件到硬件都逐步成熟。 毕竟总不能拿个民用芯片做.

zhangrelay的专栏 1840

介绍adlik代码项目

其价值在于整合了分散的优化技术(量化、剪枝、多引擎支持),为开发者提供“一站式”解决方案。它旨在为工业界和开发者提供高效、灵活的深度学习推理工具链,支持从模型优化到部署的全流程。- 运行时优化:针对不同硬件(CPU/GPU/TPU)自动选择最优后端(如 TensorRT、OpenVINO)。- 集成多种推理引擎(TensorRT、TFLite、ONNX Runtime),动态选择最优后端。- 统一接口:通过适配层支持 TensorFlow、PyTorch、ONNX 等框架的模型部署。

mrzyun0811的博客 373

如何从零开始构建恐怖游戏体验:Amnesia: A Machine for Pigs开发指南

Amnesia: A Machine for Pigs是一款经典的恐怖游戏,本文将为你提供从零开始构建该游戏恐怖体验的完整指南,帮助开发者掌握恐怖游戏开发的核心技巧与方法。 ## 一、项目概述与环境搭建 🚀 Amnesia: A Machine for Pigs基于HPL2引擎开发,该引擎为恐怖游戏提供了强大的技术支持。首先,你需要克隆项目仓库: ```bash git clone htt

gitblog_00143的博客 560

致力人工智能应用落地 推动数字经济技术创新——Adlik荣获两个开源奖项

近日,Adlik深度学习推理工具链项目荣获中国开源云联盟颁发的“优秀开源项目”和优快云颁发的“年度开源影响力项目”两项开源大奖。在“十四五”产业发展新机遇与国际发展新形势下,开源已成为推动数字经济核心技术创新、产业全球化应用、生态多元共治的关键手段和资源配置模式,是建设“新技术基础设施”和发展新兴战略产业的强劲引擎。在此背景下,中国云开源联盟组织了2022年度开源评选。中国云开源联盟由工信部指导...

LF_AI的博客 320

Adlik YOLOv5 使用与安装指南

Adlik YOLOv5 使用与安装指南 项目概述 Adlik YOLOv5 是基于 Ultralytics 的 YOLOv5 模型的一个分支,专注于知识蒸馏过程,并优化于在配备 Intel CPU 的平台上通过 OpenVINO 进行推理。此项目利用 OpenVINO 工具套件提升从边缘到云端的深度学习性能,支持使用 TensorFlow、PyTorch 等流行框架训练的模型。 目录结构及介绍 ...

gitblog_00024的博客 396
上一篇: 论文解读 | 自动编译框架AMOS
下一篇: Adlik 支持基于云燧i20的 AI推理服务部署,共建AI生态链
Linux基金会AI&Data基金会
博客等级 码龄6年 101粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值