Nothing Special   »   [go: up one dir, main page]

CN112348732B - 基于图形渲染管线的模型推理方法、装置及存储介质 - Google Patents

基于图形渲染管线的模型推理方法、装置及存储介质 Download PDF

Info

Publication number
CN112348732B
CN112348732B CN201910730619.0A CN201910730619A CN112348732B CN 112348732 B CN112348732 B CN 112348732B CN 201910730619 A CN201910730619 A CN 201910730619A CN 112348732 B CN112348732 B CN 112348732B
Authority
CN
China
Prior art keywords
gpu
texture data
layer
model
layered structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910730619.0A
Other languages
English (en)
Other versions
CN112348732A (zh
Inventor
石鑫栋
王术
吴江铮
陆明伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910730619.0A priority Critical patent/CN112348732B/zh
Priority to PCT/CN2020/100759 priority patent/WO2021022962A1/zh
Priority to EP20850238.5A priority patent/EP4012647A4/en
Publication of CN112348732A publication Critical patent/CN112348732A/zh
Priority to US17/665,678 priority patent/US11941724B2/en
Application granted granted Critical
Publication of CN112348732B publication Critical patent/CN112348732B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

本申请提供一种基于图形渲染管线的模型推理方法、装置及存储介质,该方法包括获取渲染线程中的指令流;从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据;将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型。实现了对纹理数据的模型推理,避免了纹理数据与其他形式数据类型的转换,进而减少了IO内存开销。

Description

基于图形渲染管线的模型推理方法、装置及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于图形渲染管线的模型推理方法、装置及存储介质等。
背景技术
随着移动终端上硬件设备的不断迭代,有越来越多的移动应用集成了人工智能(ArtificialIntelligence,AI)功能,使得移动终端更加智能,为用户提供更自然,更人性化的服务。在图像和视频方面,人脸识别、场景识别、文字识别、图像超分辨率等应用,为移动终端提供了安全解锁、阅读检索和视频美化等核心功能支持。而AI功能基础通常依赖于神经网络的推理平台,随之在硬件算力承载上,也从中央处理器(Central ProcessingUnit,CPU)、图形处理器(Graphics Processing Unit,GPU)至神经网络处理器(NeuralProcessing Unit,NPUGPU)不断地演进。为了实现使用神经网络处理器(NeuralProcessing Unit,NPU)对视频流数据的AI处理,在当前ARM(Advanced RISC Machines)架构下,通常所有的处理器均采用统一的双倍数据速率(Double Data Rate,DDR)存储空间。图1是本申请提供的ARM框架下统一寻址的示意图,如图1所示,CPU、GPU、NPU存在各自对应的内存地址段,对于视频流数据而言,在显示时数据是在GPU地址段,需要视频流数据发送至NPU地址段进行对应的模型推理计算,最后再输出送回GPU地址段进行显示。如图1所示,GPU中的帧数据1(例如帧数据)发送至NPU的过程中,需要经过CPU先将GPU地址段中的帧数据读出来,即数据2,再将读出来的数据2拷贝到NPU地址段,即数据3。类似地,在将经过NPU推理计算后的数据3’再送回GPU显示的过程,需要将数据3’经过CPU读出来即数据2’,然后将数据2’拷贝至GPU地址段,即数据1’,以实现对视频流数据的AI处理和显示。上述过程中,对于每一帧的数据都需要产生多次搬运,对输入输出(Input Output,IO)开销较大。
现有技术中,为了减少IO开销,除了NPU作为移动终端模型推理计算的算力之外,业界也有使用CPU/GPU用于模型推理计算。相比较而言,GPU会比CPU更适合做并行计算的模型推理计算。TensorFlow Lite是常用的针对移动设备的模型推理框架,TensorFlow Lite是基于TensorFlow,通过相应的转换器(converter)能将对应的TensorFlow模型转化成TensorFlow Lite对应的模型,以TensorFlow Lite基于GPU的实现为例,输入到GPU可访问的数据形式必须为着色器存储缓冲区对象(Shader Storage Buffer Object,SSBO)类型,因为其在GPU的推理计算是基于Compute shader来实现,SSBO对于Compute shader而言是一种通用的输入、输出数据的形式。但对于视频流数据而言,视频在显示时,对于GPU可访问的数据常常是以纹理数据(Texture)的数据形式存在,所以如果要使用TensorFlow Lite来处理视频流数据,在必然会存在数据格式的转换,而且这个转换无法直接在GPU侧完成,必须需要CPU来控制转换。图2是本申请提供的SSBO数据类型与Texture数据类型转换示意图,如图2所示,在处理视频流数据时,需要将视频帧数据即Texture数据类型的数据1先通过CPU读出来为数据2,然后以SSBO数据类型写入GPU对应的内存中,得到数据3,类似地,通过TensorFlow Lite计算后的SSBO数据类型的数据3’,需要再通过CPU读出来为数据2’,然后转换成Texture数据类型的数据1’,才能正常送显。
所以现有技术中,TensorFlow Lite框架在GPU的推理计算是基于Compute shader来实现的限定了固定的输入和输出数据格式必须为SSBO格式,对于Texture类型为原始数据的场景,需要对在CPU中对Texture类型的数据进行格式转换,存在大量的IO内存开销。
发明内容
本申请提供一种基于图形渲染管线的模型推理方法、装置及存储介质,实现了对Texture类型数据的模型推理,避免了对Texture类型数据的格式转换,进而减少了IO内存开销。
第一方面,本申请实施例提供一种基于图形渲染管线的模型推理方法,包括:
获取渲染线程中的指令流;从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据;将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型。
通过在当前渲染线程中的指令流中获取纹理数据信息,并将纹理数据输入至GPU渲染管线中,GPU渲染管线可以包括顶点着色器、裁剪、屏幕映射、三角形设置、三角形遍历、片段着色器、合并阶段等阶段,以实现对图像的渲染和显示,本申请实施例中的GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果。相比于现有技术,由于采用GPU渲染管线对纹理数据进行模型推理,而不是采用Compute shader来实现对纹理数据的推理,因此避免了将纹理数据转换为SSBO数据类型,以使Compute shader对纹理数据进行推理;且由于在GPU渲染管线中对纹理数据进行GPU模型推理之后,将推理结果为纹理数据格式,避免了现有技术中在Compute shader完成推理之后,将数据类型为SSBO的推理结果转换Texture类型的数据类型转换,因此,本申请实施例不仅实现了对纹理数据的模型推理,而且避免了纹理数据与其他形式数据类型的转换,进而减少了IO内存开销。
可选的,本申请实施例提供基于图形渲染管线的模型推理方法,还包括:
加载GPU模型至内存中。
本申请实施例中,GPU模型为在GPU中运行的模型,通过加载GPU模型,以使GPU可以执行该GPU模型,进而实现基于GPU模型的推理计算。
可选的,加载GPU模型至内存中,包括:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构和各层参数,生成层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
本申请实施例中,通过根据渲染线程中训练模型的层状结构和各层参数,生成层状结构中各层对应的片元着色器,实现了对当前渲染线程中训练模型至GPU模型的转换,进而使GPU可以通过执行片元着色器,以实现对纹理数据的推理。
可选的,加载GPU模型至内存中,包括:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构对层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;根据合并后的层状结构和合并后的各层参数,生成合并后的层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
本申请实施例中,通过对当前渲染线程中训练模型的层状结构和各层参数进行合并处理,并根据合并后的层状结构和合并后的各层参数,确定合并后的层状结构中各层对应的片元着色器,不仅实现了对当前渲染线程中训练模型至GPU模型的转换,进而使GPU可以通过执行片元着色器,以实现对纹理数据的推理,而且减少了中间节点结果的保存,进一步减少IO开销。
可选的,根据层状结构对层状结构及各层参数进行合并处理,包括:
确定层状结构中的多个分支层和多个1*1的卷积核;合并多个分支层以及多个分支层对应的多层参数,和/或,合并多个1*1的卷积核以及多个1*1的卷积核对应的多个参数。
本申请实施例中,通过合并层状结构中的多个分支层,避免了多次获取上一层节点数据,减少了IO开销,通过合并多个1*1的卷积核,避免了对上层节点推理结果的保存,进一步减少了IO开销。
可选的,纹理数据信息还包括纹理数据在GPU内存中的纹理ID,将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理之前,还包括:
根据纹理ID和GPU模型,确定各层片元着色器的输入数据位置和输出数据位置,GPU渲染管线用于根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
本申请实施例中,通过根据各层片元着色器的输入数据位置信息和输出数据位置信息,利用GPU渲染管线分别依次执行各层片元着色器,实现了对纹理数据的模型推理。
可选的,在将纹理数据信息输入至图形处理器GPU渲染管线中之前,还包括:
对纹理数据信息进行预处理;
在得到纹理数据的推理结果之后,
还包括:对推理结果进行后处理。
可选的,纹理数据信息还包括纹理数据在GPU内存中的第一保存格式以及纹理数据的第一图像大小,对纹理数据信息进行预处理,包括:
根据GPU模型,转换第一图像大小为第二图像大小;将第一保存格式转换成GPU模型所要求的第二保存格式;
对推理结果进行后处理,包括:
转换纹理数据的第二图像大小为第一图像大小,转换纹理数据的第二保存格式为第一保存格式。
本申请实施例中,通过对纹理数据信息进行预处理,实现了对纹理数据的图像大小和保存格式的统一,进一步保障了对纹理数据的模型推理;通过对推理结果进行后处理,实现了对推理结果的图像大小以及保存格式的恢复,以输出至所述渲染线程中进行渲染显示。
可选的,在将纹理数据信息输入至图形处理器GPU渲染管线中之前,还包括:
获取并保存渲染线程的上下文状态、处于激活状态的纹理ID以及处于激活状态的GPU执行程序的ID;
本申请实施例提供基于图形渲染管线的模型推理方法还包括:
通过渲染线程获取推理结果,推理结果通过纹理数据格式保存;恢复渲染线程的上下文状态、纹理ID以及GPU执行程序的ID。
本申请实施例中,通过对渲染线程的上下文状态、当前处于激活状态的纹理数据ID以及当前处于激活状态的GPU执行程序的ID的保存和恢复,以使得GPU渲染管线能正常把推理结果渲染显示出来。另外,通过渲染线程获取推理结果,可以通过接收GPU渲染管线通过指令流发送的推理结果,或者读取GPU渲染管线将推理结果保存的地址,本申请实施例对渲染线程获取推理结果的方式不做限制。
第二方面,本申请实施例提供一种基于图形渲染管线的模型推理方法,包括:
接收中央处理器CPU传输的纹理数据信息,纹理数据信息是CPU从渲染线程中的指令流中获取的,纹理数据信息包括纹理数据;在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;将推理结果输出至渲染线程中,推理结果为纹理数据格式。
通过接收CPU传输的纹理数据信息,在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,相比于现有技术,由于采用GPU渲染管线对纹理数据进行模型推理,而不是采用Compute shader来实现对纹理数据的推理,因此避免了将纹理数据转换为SSBO数据类型,以使Compute shader对纹理数据进行推理;且由于在GPU渲染管线中对纹理数据进行GPU模型推理之后,将推理结果为纹理数据格式,避免了现有技术中在Compute shader完成推理之后,将数据类型为SSBO的推理结果转换Texture类型的数据类型转换,因此,本申请实施例不仅实现了对纹理数据的模型推理,而且避免了纹理数据与其他形式数据类型的转换,进而减少了IO内存开销
可选的,在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,包括:
通过GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器;片元着色器是CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器;或,片元着色器是CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
本申请实施例中,通过GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器,实现了对纹理数据的推理;另外,片元着色器是CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器,通过对当前渲染线程中训练模型的层状结构和各层参数进行合并处理,并根据合并后的层状结构和合并后的各层参数,确定合并后的层状结构中各层对应的片元着色器,不仅实现了对当前渲染线程中训练模型至GPU模型的转换,进而使GPU可以通过执行片元着色器,而且减少了中间节点结果的保存,进一步减少IO开销。
下面介绍本申请实施例提供的模型推理装置、设备、平台、存储介质和计算机程序产品,其内容和效果可参考本申请第一方面及第一方面可选方式提供的模型推理方法,不再赘述。
第三方面,一种基于图形渲染管线的模型推理装置,包括:
第一获取模块,用于获取渲染线程中的指令流;提取模块,用于从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据;发送模块,用于将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型。
可选的,本申请实施例提供基于图形渲染管线的模型推理装置,还包括:
加载模块,用于加载GPU模型至内存中。
可选的,加载模块,具体用于:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构和各层参数,生成层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
可选的,加载模块,具体用于:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构对层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;根据合并后的层状结构和合并后的各层参数,生成合并后的层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
可选的,加载模块,还用于:
确定层状结构中的多个分支层和多个1*1的卷积核;合并多个分支层以及多个分支层对应的多层参数,和/或,合并多个1*1的卷积核以及多个1*1的卷积核对应的多个参数。
可选的,纹理数据信息还包括纹理数据在GPU内存中的纹理ID,还包括:
确定模块,用于根据纹理ID和GPU模型,确定各层片元着色器的输入数据位置和输出数据位置,GPU渲染管线用于根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
可选的,本申请实施例提供基于图形渲染管线的模型推理装置,还包括:
预处理模块,用于对纹理数据信息进行预处理;后处理模块,用于对推理结果进行后处理。
可选的,纹理数据信息还包括纹理数据在GPU内存中的第一保存格式以及纹理数据的第一图像大小,预处理模块具体用于:
根据GPU模型,转换第一图像大小为第二图像大小;将第一保存格式转换成GPU模型所要求的第二保存格式。
后处理模块,具体用于:转换纹理数据的第二图像大小为第一图像大小,转换纹理数据的第二保存格式为第一保存格式。
可选的,本申请实施例提供基于图形渲染管线的模型推理装置,还包括:
第二获取模块,具体用于获取并保存渲染线程的上下文状态、处于激活状态的纹理ID以及处于激活状态的GPU执行程序的ID;
本申请实施例提供基于图形渲染管线的模型推理装置还包括:
第二获取模块,具体用于通过渲染线程获取推理结果,推理结果通过纹理数据格式保存;恢复渲染线程的上下文状态、纹理ID以及GPU执行程序的ID。
第四方面,本申请实施例提供一种基于图形渲染管线的模型推理装置,包括:
接收模块,用于接收中央处理器CPU传输的纹理数据信息,纹理数据信息是CPU从渲染线程中的指令流中获取的,纹理数据信息包括纹理数据;推理模块,用于在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;输出模块,用于将推理结果输出至渲染线程中,推理结果为纹理数据格式。
可选的,推理模块具体用于:
通过GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器;片元着色器是CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器;或,片元着色器是CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
第五方面,本申请实施例提供一种设备,包括:
处理器和存储器;存储器用于存储计算机可执行指令,以使处理器执行指令实现如第一方面及第一方面可选方式的方法。
第六方面,本申请实施例提供一种设备,包括:
处理器和存储器;存储器用于存储计算机可执行指令,以使处理器执行指令实现如第二方面及第二方面可选方式的方法。
第七方面,本申请实施例提供一种基于图形渲染管线的推理平台,包括:
渲染线程、基于着色器的神经网络推理ShaderNN模块和跨平台的图形程序接口;ShaderNN模块用于:
通过中央处理器CPU获取渲染线程中的指令流;从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据;将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;通过图形处理器GPU接收中央处理器CPU传输的纹理数据信息;在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;将推理结果通过跨平台的图形程序接口输出至渲染线程中,推理结果为纹理数据格式。
第八方面,本申请实施例提供一种存储介质包括计算机指令,当指令被计算机执行时,使得计算机实现第一方面及第一方面可选方式的方法。
第九方面,本申请实施例提供一种存储介质包括计算机指令,当指令被计算机执行时,使得计算机实现如第二方面及第二方面可选方式的方法。
第十方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得该计算机或处理器执行如上述第一方面或者及第一方面可选方式提供的方法。
第十一方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得该计算机或处理器执行如上述第二方面或者及第二方面可选方式提供的方法。
本申请提供的基于图形渲染管线的模型推理方法、装置及存储介质,通过获取渲染线程中的指令流;从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据;将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型。由于通过在当前渲染线程中的指令流中获取纹理数据信息,并将纹理数据输入至GPU渲染管线中,以实现对图像的渲染和显示,本申请实施例中的GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果。相比于现有技术,由于采用GPU渲染管线对纹理数据进行模型推理,而不是采用Compute shader来实现对纹理数据的推理,因此避免了将纹理数据转换为SSBO数据类型,以使Compute shader对纹理数据进行推理;且由于在GPU渲染管线中对纹理数据进行GPU模型推理之后,将推理结果为纹理数据格式,避免了现有技术中在Compute shader完成推理之后,将数据类型为SSBO的推理结果转换Texture类型的数据类型转换,因此,本申请实施例不仅实现了对纹理数据的模型推理,而且避免了纹理数据与其他形式数据类型的转换,进而减少了IO内存开销。
附图说明
图1是本申请提供的ARM框架下统一寻址的示意图;
图2是本申请提供的SSBO数据类型与Texture数据类型转换示意图;
图3是本申请实施例一示例性应用场景图;
图4是本申请实施例的一种示例性的实现形式;
图5是本申请一实施例提供的基于图形渲染管线的模型推理方法的交互流程示意图;
图6A-6B是本申请实施例提供的模型推理框架图;
图7是本申请实施例提供的渲染线程状态保存内容示意图;
图8是本申请另一实施例提供的基于图形渲染管线的模型推理方法的流程示意图;
图9是本申请实施例提供的训练模型的层状结构示意图;
图10是本申请又一实施例提供的基于图形渲染管线的模型推理方法的流程示意图;
图11是本申请一实施例提供的基于图形渲染管线的模型推理装置的结构示意图;
图12是本申请一实施例提供的基于图形渲染管线的模型推理装置的结构示意图;
图13是本申请实施例提供的基于图形渲染管线的推理平台的结构示意图;
图14是本申请一实施例提供的终端设备的结构示意图;
图15是本申请一实施例提供的设备的结构示意图;
图16是本申请实施例提供的一种示例性的基于图形渲染管线的模型推理装置的硬件架构示意图;
图17是本申请又一实施例提供的终端设备的结构示意图。
具体实施方式
应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述图像大小和保存格式,但这些图像大小和保存格式不应限于这些术语。这些术语仅用来将图像大小或保存格式彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一图像大小也可以被称为第二图像大小,类似地,第二图像大小也可以被称为第一图像大小,保存格式与图像大小表述类似,不再赘述。
移动终端随着硬件设备的不断迭代,有越来越多的移动应用集成了AI功能,使得移动终端更加智能,为用户提供更自然,更人性化的服务。在图像和视频方面,人脸识别、场景识别、文字识别、图像超分辨率等应用,为移动终端提供了安全解锁、阅读检索和视频美化等核心功能支持。而AI功能基础依赖于神经网络的推理平台,随之在硬件算力承载上,也从CPU、GPU至GPU不断地演进。现有技术中,TensorFlow Lite是常用的针对移动设备的模型推理框架,TensorFlow Lite是基于TensorFlow,通过相应的转换器(converter)能将对应的TensorFlow模型转化成TensorFlow Lite对应的模型,以TensorFlow Lite基于GPU的实现为例,输入到GPU可访问的数据形式必须为SSBO类型,因为其在GPU的推理计算是基于Compute shader来实现,但对于视频流数据而言,视频在显示时,对于GPU可访问的数据常常是以Texture的数据形式存在,所以如果要使用TensorFlow Lite来处理视频流数据,在必然会存在数据格式的转换,而且这个转换无法直接在GPU侧完成,必须需要CPU来控制转换,会存在大量的IO内存开销。为了解决上述问题,本申请实施例提出了一种基于图形渲染管线的模型推理方法、装置及存储介质。
下面对本申请实施例的一示例性应用场景进行介绍。
在终端设备中的应用程序中,例如涉及游戏、视频播放的应用程序,可能需要对视频流数据进行处理,以得到用户想要的视频效果,本申请实施例对应用程序的具体类型不做限制,对终端设备的类型也不做限制,终端设备可以是智能手机、个人电脑、平板电脑、医疗设备、游戏主机、车载终端设备、自动驾驶设备、虚拟现实、增强现实、混合现实设备等等。以终端设备为智能手机为例,图3是本申请实施例一示例性应用场景图,如图3所示,智能手机的界面11中显示,智能手机至少包括应用1和应用2,其中,应用1和应用2可以用于显示图像或者视频,通过对应用1进行操作,得到界面12,界面12为应用1显示界面,以显示应用1中的图像或者视频,在图像或视频显示的过程中,需要对图像数据或视频流数据进行渲染。基于此,本申请实施例提供一种基于图形渲染管线的模型推理方法、装置及存储介质。
本申请实施例可以实现在终端设备的图形软件系统中,并且为部署在终端设备中的程序代码。图4是本申请实施例的一种示例性的实现形式。如图4所示,应用层用于应用(APP)自身逻辑的实现,其中,APP在进行图像或视频显示时,会利用Java层的渲染线程(Render Thread)对待显示的画面进行渲染显示,并通过调用图形框架接口层(Native)中的针对嵌入式系统的跨平台图形程序接口(Open Graphics Library for EmbeddedSystems,Open GL ES)系统库的应用程序编程接口(Application ProgrammingInterface,API),至硬件适配层(Hardware Abstract Layer,HAL)的GPU相关接口,并通过内核层(Kernel)的跨平台图形程序接口(Open Graphics Library,OpenGL)与GPU驱动(GPUDriver)进行交互调用,最后体现在硬件(hardware)中GPU的执行上,完成图像或视频在终端设备的渲染显示过程。本申请实施例的执行主体可以是集成在Render Thread中的ShaderNN模型,ShaderNN模型通过获取应用Render Thread的指令流,在指令流中获取纹理(texture)数据信息作为模型推理的输入,在GPU渲染管线中进行卷积神经网络推理,并将推理结果通过texture信息保存,并将推理结果直接应用于当次渲染任务,替代原先内容,完成渲染显示,由于ShaderNN模型通过在Render Thread的指令流中直接获取纹理数据信息,避免了现有技术中需要在CPU中将纹理数据转换为SSBO类型数据,并对SSBO类型数据在GPU中进行卷积神经网络推理,然后将推理结果通过CPU再转换为纹理数据数据类型,进而避免了数据格式的转换而产生的内存IO开销以及CPU与GPU之间的同步代价,从而以提升整理的模型推理性能,间接提升能效比,实现资源合理化利用。
基于以上的应用场景,本申请实施例提供一种基于图形渲染管线的模型推理方法、装置及存储介质。
图5是本申请一实施例提供的基于图形渲染管线的模型推理方法的交互流程示意图,该方法可以通过本申请实施例提供的基于图形渲染管线的模型推理装置执行,基于图形渲染管线的模型推理装置可以是终端设备的部分或全部,例如可以通过终端设备中的CPU和GPU实现,下面以终端设备为执行主体为例,对本申请实施例提供的基于图形渲染管线的模型推理方法进行介绍。如图5所示,本申请实施例提供的基于图形渲染管线的模型推理方法,可以包括:
步骤S101:CPU获取渲染线程中的指令流。
App中的GPU渲染管线(GPU Pipeline),通常包括片段处理(FragmentProcessing),片段处理是在每个片段都会对应一次片段着色器(fragment shader)的调用,用于在每个片段被存储到帧缓存之前,确定该片段的纹理。本申请实施例提供的方法可以应用于GPU渲染管线的片段处理的过程。
为便于对本申请实施例的介绍,图6A-6B是本申请实施例提供的模型推理框架图,如图6A所示,本申请实施例提供的基于图形渲染管线的模型推理方法,可以通过终端设备中的ShaderNN模块执行,利用获取App本身的Render Thread中的指令流和纹理数据,进行GPU模型加载以及GPU模型运行,最后将模型运行计算后的Texture数据更新到GPU渲染管线中进行渲染显示。
下面对本申请实施例中的步骤S101的内容进行介绍,如图6B所示,终端设备中的应用通过Render Thread调用嵌入式设备的跨平台的图形程序接口(OpenGL for EmbeddedSystems,OpenGL ES)接口层,以生成嵌入式设备的图形程序接口(Graphics Library forEmbedded Systems,GL ES)指令流;或终端设备中的应用通过Render Thread调用跨平台的图形程序接口(Open Graphics Library,OPENGL)接口层,以生成图形程序接口(GraphicsLibrary,GL)指令流。本申请实施例对指令流的类型不做限制。ShaderNN模块获取渲染线程中的指令流,具体的,ShaderNN模块可以通过指令流监听的方式获取指令流,例如在OpenGLES层监听内容绘制相关的指令流,指令流中可以包括纹理数据信息或其他数据信息等,本申请实施例对指令流的获取方式以及获取到的指令流中的数据等不做限制。
步骤S102:CPU从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据。
在获取当前渲染线程中的指令流之后,需要针对指令流中内容准备相关的指令进行预处理。以视频内容为例,通过指令流监听的方式,获取当前渲染线程中的指令流,图6A或图6B中的数据收集用于从指令流中获取当前帧的纹理数据信息,纹理数据信息例如可以是视频图像基础信息。本申请实施例对纹理数据信息的具体信息内容不做限制,在一种可能的实施方式中,纹理数据信息包括纹理数据在GPU内存中的纹理ID(Texture ID)、纹理数据在GPU内存中的第一保存格式以及纹理数据的第一图像大小。
其中,纹理数据在GPU内存中的纹理ID,通常用于标识不同的纹理数据,不同texture ID的数据表示不同的纹理数据。纹理数据在GPU内存中的第一保存格式(textureformat),例如可以是红绿蓝(red-green-blue,RGB)格式或者亮度-色度(Luminance(Y),blue–chrominance(U),red–chrominance(V),YUV)格式,其中,RGB格式在一个Texture格式保存,YUV格式可以通过2个texture即Y/UV两个通道保存或者3个texture即Y/U/V三个通道分别保存,本申请实施例对纹理数据的保持格式不做限制。其中,纹理数据的第一图像大小,用于表示当前视频帧或图像的分辨率。
步骤S103:CPU将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型。
如图6A或6B所示,在数据收集之后,需要对收集到的纹理数据进行推理计算。GPU模型是在GPU上运行的卷积神经网络模型,CPU将纹理数据信息输入至图形处理器GPU渲染管线中,本申请实施例对将纹理数据信息输入至图形处理器GPU渲染管线中的具体实施方式不做限制。
步骤S104:GPU接收CPU传输的纹理数据信息。
本申请实施例对GPU接收CPU传输的纹理数据信息的具体实施方式不做限制,纹理数据信息,纹理数据信息是CPU从渲染线程中的指令流中获取的,纹理数据信息包括纹理数据。
步骤S105:GPU在GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果。
本申请实施例对GPU在GPU渲染管线中对纹理数据进行基于GPU模型的推理方式不做限制,在一种可能的实施方式中,纹理数据信息还包括纹理数据在GPU内存中的纹理ID,CPU将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理之前,还包括:
根据纹理ID和GPU模型,确定各层片元着色器的输入数据位置和输出数据位置,GPU渲染管线用于根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
纹理数据在GPU内存中的纹理ID可以包括纹理数据在不同阶段的多个ID,由于纹理数据在推理过程中,可能会经过多个不同的片元着色器对纹理数据进行计算,因此,每层片元着色器都需要获取该层片元着色器的输入数据,在片元着色器处理之后,需要将片元着色器的处理结果输出并保存到输出数据位置,因此,根据纹理ID和GPU模型确定各层片元着色器的输入数据位置和输出数据位置,可以将GPU模型中每个节点对应的片元着色器分别与该片元着色器的输入数据纹理ID和输出数据纹理ID进行绑定。
基于上述可能的实施方式,GPU在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,包括:
通过GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
GPU在执行该片元着色器时,通过该片元着色器的输入数据纹理ID读取输入数据,在完成该片元着色器的计算之后,将计算结果通过输出数据纹理ID写入输出数据。通过纹理数据在GPU内存中不同阶段的多个ID,确定该阶段对应的片元着色器的输入数据位置信息和输出数据位置信息。然后各层片元着色器根据各层片元着色器各自对应的输入数据位置和输出数据位置,在输入数据位置获取输入数据,并对输入数据通过片元着色器进行计算,并将计算结果输出至输出数据位置。其中,若上一层片元着色器的输出数据作为下一层片元着色器的输入数据,则上一层片元着色器的输出数据位置可以是下一层片元着色器的输入数据位置,本申请实施例对此不做限制。
在模型推理的过程中,会导致当前渲染线程的上下文状态、当前处于激活状态的纹理ID以及当前处于激活状态的GPU执行程序的ID发生变化,为了把推理结果渲染显示出来,还可以保存渲染线程的当前状态,可选的,CPU在将纹理数据信息输入至图形处理器GPU渲染管线中之前,还包括:
CPU获取并保存渲染线程的上下文状态、处于激活状态的纹理ID以及处于激活状态的GPU执行程序的ID。
渲染线程的上下文状态、当前处于激活状态的纹理ID以及当前处于激活状态的GPU执行程序的ID,可以在获取指令流的过程中获取,本申请实施例对具体的获取方式不做限制。图7是本申请实施例提供的渲染线程状态保存内容示意图,如图7所示,对渲染线程状态的保存,可以通过OpenGL ES原生平台图形界面(OpenGL ES Native Platform GraphicsInterface,EGL)获取EGL上下文(context),即OpenGL ES渲染中渲染线程的上下文状态,EGL上下文是OpenGL ES所创建的资源统一管理的容器;通过图形程序接口获取处于激活状态的纹理ID,用于后续状态恢复后渲染绘制;通过图形程序接口获取处于激活状态的GPU执行程序的ID,用于后续状态恢复后渲染绘制。
步骤S106:GPU将推理结果输出至渲染线程中,推理结果为纹理数据格式。
图6B所示,在经过推理计算之后,GPU可以将推理结果输出至GL指令流,最终输出至GL用户驱动层,以实现根据推理结果对视频或图像的渲染。推理结果通过纹理数据格式保存,避免了数据格式的转换,减少了IO开销,然后输出至渲染线程中,以便于后续的渲染和显示。本申请实施例中,通过在GPU pipeline中插入ShaderNN模块,用于实现推理计算,并将推理结果直接应用于当次渲染任务,替代原先内容,完成渲染显示。以较小的代价,完成推理计算和结果呈现,起到了降功耗、提性能的有益效果。
为了保障GPUpipeline可以顺利将ShaderNN模块的推理结果应用于当前渲染管线,进而完成渲染显示,可选的,本申请实施例提供基于图形渲染管线的模型推理方法,还包括:
CPU通过渲染线程获取推理结果,推理结果通过纹理数据格式保存,恢复渲染线程的上下文状态、纹理ID以及GPU执行程序的ID。
在一种可能的实施方式中,通过渲染线程获取推理结果,可以通过CPU主动获取,例如,GPU渲染管线在实现模型推理,得到纹理数据的推理结果之后,将纹理数据的推理结果保存在内存中,CPU通过读取内存中的纹理数据的推理结果,获取推理结果;在另一种可能的实施方式中,通过渲染线程获取推理结果,可以通过CPU被动获取,例如,GPU渲染管线在实现模型推理,得到纹理数据的推理结果之后,通过指令流的方式将推理结果发送至渲染线程中,以使CPU通过指令流获取推理结果。通过对当前渲染线程的上下文状态、当前处于激活状态的纹理ID以及当前处于激活状态的GPU执行程序的ID的恢复,使当前渲染线程顺利进行,保证了推理结果的顺利渲染和显示。
本申请实施例中,通过在当前渲染线程中的指令流中获取纹理数据信息,并将纹理数据信息输入至GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,实现了对纹理数据的模型推理,避免了纹理数据与其他形式数据类型的转换,进而减少了IO内存开销。
为了保证纹理数据信息输入至图形处理器GPU渲染管线之后,在GPU渲染管线中对所述纹理数据进行基于GPU模型的推理,由于当前渲染线程中的训练模型的模型文件格式可能无法被本申请实施例提供的模型推理装置所支持,因此,还需要对当前渲染线程中的训练模型的模型文件进行转换并加载。
可选的,图8是本申请另一实施例提供的基于图形渲染管线的模型推理方法的流程示意图,该方法可以通过本申请实施例提供的基于图形渲染管线的模型推理装置执行,基于图形渲染管线的模型推理装置可以是终端设备的部分或全部,例如可以是终端设备中的CPU,下面以终端设备为执行主体为例,对本申请实施例提供的基于图形渲染管线的模型推理方法进行介绍。如图8所示,本申请实施例提供的基于图形渲染管线的模型推理方法,在步骤S103之前,还可以包括:
步骤S201:加载GPU模型至内存中。
若加载过GPU模型,则不需要再重新加载该GPU模型,若未加载过GPU模型,则需要加载所述GPU模型至内存中。通过加载GPU模型至内存中,GPU可以通过在内存中读取到GPU模型,进而GPU可以在GPU渲染管线中对纹理数据进行基于GPU模型的推理。
在一种可能的实施方式中,加载GPU模型至内存中,包括:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构和各层参数,生成层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
在该可能的实施方式中,GPU执行的片元着色器是CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器。
当前渲染线程中的训练模型,例如可以是Keras Model,Keras Model的模型文件通常为h5格式,通过模型转换器(Model Converter)工具将Keras Model的模型文件格式转换为本申请实施例提供的基于图形渲染管线的模型推理装置支持的文件格式,例如GPU模式文件(GPU Model File),然后获取当前渲染线程中训练模型的层状结构及各层参数,图9是本申请实施例提供的训练模型的层状结构示意图,如图9所示,输入数据(input)之后,通过三个3*3卷积层分支,然后经过连接层(Concatenate)之后,再经过两个1*1卷积层计算后,输出结果(output)。
层状结构可以包括训练模型的层数以及各层之间的依赖关系,各层参数为层状结构中,每层层状结构的权重值、激活函数、卷积核大小以及步长等参数,根据层状结构对各层之间的关系进行拓扑排序,并通过整理层状结构的拓扑关系以及各层参数,生成各层各自对应的片元着色器,如图9所示的层状结构,可以生成各层对应的片元着色器,每层片元着色器包括了当前层的所有卷积计算过程,最后加载层状结构中,各层各自对应的片元着色器至内存中。可选的,在生成层状结构中各层各自对应的片元着色器之前,还包括根据训练模型的需求,配置输入纹理数据的归一化范围以及输出数据的归一化范围,本申请实施例对此不做限制。
在另一种可能的实施方式中,加载GPU模型至内存中,包括:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构对层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;根据合并后的层状结构和合并后的各层参数,确定合并后的层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
在该可能的实施方式中,GPU执行的片元着色器是CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
本申请实施例中的获取当前渲染线程中训练模型的层状结构及各层参数,与上述实施例中的过程类似,不再赘述。根据层状结构对层状结构进行合并处理,得到合并后的层状结构,可以根据层状结构的依赖关系,对部分层进行合并,避免了多次获取上一层节点数据,或避免了对上层节点推理结果的保存,以减少了IO开销,在一种可能的实施方式中,根据层状结构对层状结构进行合并处理,包括:
确定层状结构中的多个分支层和/或多个1*1的卷积核;合并多个分支层以及多个分支层对应的多层参数,和/或,合并多个1*1的卷积核以及多个1*1的卷积核对应的多个参数。
确定层状结构中的多个分支层、或确定层状结构中的多个1*1的卷积核、或确定层状结构中的多个分支层以及多个1*1卷积核,然后合并多个分支层,或合并多个1*1卷积核,或合并多个分支层以及合并多个1*1卷积核。如图9所示的层状结构中的上半部分为一个多分支的结构,通过对fragment shader优化,把这三个分支的层计算放在同一个fragmentshader中完成,这三个分支的输入是来自于同个输入的数据,通过一次读操作,可以满足三个分支层的计算需求,从而避免各个层分开计算时,每个层都要对输入数据进行读操作,以减少对输入数据的读IO操作。如图9中所示的层状结构中的下部分为一个连接层,和两个1*1卷积层操作。通过对fragment shader优化,把这两个1*1卷积层计算放在同一个fragmentshader中完成,因此可以直接复用上层当前点计算结果,作为1*1卷积层的输入,而不需要再把上一层的计算结果先保存起来,再到1*1卷积层计算时读上一层的计算结果。从而也避免了上一层计算结果写操作和1*1卷积层计算时读操作。本申请实施例中,通过合并层状结构中的多个分支层,避免了多次获取上一层节点数据,减少了IO开销,通过合并多个1*1的卷积核,避免了对上层节点推理结果的保存,进一步减少了IO开销。
在对层状结构进行合并处理之后,根据合并后的层状结构和各层参数,确定合并后的层状结构中各层各自对应的片元着色器;加载合并后的层状结构中各层各自对应的片元着色器至内存中。与上述实施例中的内容类似,不再赘述。
由于GPU模型实现的功能不同,对纹理数据的保存格式或图像大小等要求也不相同,为了实现对纹理数据进行GPU模型推理,可选的,图10是本申请又一实施例提供的基于图形渲染管线的模型推理方法的流程示意图,该方法可以通过本申请实施例提供的基于图形渲染管线的模型推理装置执行,基于图形渲染管线的模型推理装置可以是终端设备的部分或全部,例如可以是终端设备中的CPU,下面以终端设备为执行主体为例,对本申请实施例提供的基于图形渲染管线的模型推理方法进行介绍。如图10所示,本申请实施例提供的基于图形渲染管线的模型推理方法,在步骤S103之前,即在将纹理数据信息输入至图形处理器GPU渲染管线中之前,还可以包括:
步骤S301:对纹理数据信息进行预处理。
对纹理数据信息的预处理,可以根据纹理数据信息所包含的具体内容,以及神经网络模型对纹理数据信息的具体要求进行,本申请实施例对此不做限制,在一种可能的实施方式中,对纹理数据信息进行预处理,包括:
根据GPU模型,转换纹理数据的第一图像大小为第二图像大小;将纹理数据在GPU内存中的第一保存格式转换成GPU模型所要求的第二保存格式。
纹理数据的第二图像大小是GPU模型处理时所需要的图像大小,纹理数据在GPU内存中的第二保存格式,是GPU模型所要求的保存格式,例如将第一保存格式为RGB格式的纹理数据,经过预处理,提取出Y通道的数据,以Y/UV格式作为第二保存格式,用于简化模型推理计算的输入数据内容。本申请实施例对此不做限制。
在步骤S103之后,还包括:
步骤S302:对推理结果进行后处理。
对推理结果的后处理与对为数据信息进行预处理相对应,用于恢复推理结果为纹理数据信息的格式、大小等。在一种可能的实施方式中,对推理结果进行后处理,包括:
转换纹理数据的第二图像大小为第一图像大小,转换纹理数据的第二保存格式为第一保存格式。不再赘述。
下面介绍本申请实施例提供装置、设备、存储介质以及计算机程序产品,其内容和效果可参考本申请上述实施例提供的基于图形渲染管线的模型推理方法,不再赘述。
本申请实施例提供一种基于图形渲染管线的模型推理装置,图11是本申请一实施例提供的基于图形渲染管线的模型推理装置的结构示意图,基于图形渲染管线的模型推理装置可以是终端设备的部分或全部,例如终端设备中的CPU,如图11所示,本申请实施例提供的基于图形渲染管线的模型推理装置可以包括:
第一获取模块41,用于获取渲染线程中的指令流。
提取模块42,用于从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据。
发送模块43,用于将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型。
在一种可选的情况中,提取模块的功能也可以都是由处理模块完成的,该处理模块例如可以是处理器,第一获取模块和发送模块可以是处理器的传输接口,或者也可以说第一获取模块是处理器的接收接口,发送模块是处理器的发送接口,此时,提取模块的功能也可以是该处理器完成的。
可选的,如图11所示,本申请实施例提供的基于图形渲染管线的模型推理装置,还可以包括:
加载模块44,用于加载GPU模型至内存中。
可选的,加载模块44,具体用于:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构和各层参数,生成层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
可选的,加载模块44,具体用于:
获取渲染线程中训练模型的层状结构及各层参数;根据层状结构对层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;根据合并后的层状结构和合并后的各层参数,生成合并后的层状结构中各层各自对应的片元着色器;加载片元着色器至内存中。
可选的,加载模块44,还用于:
确定层状结构中的多个分支层和多个1*1的卷积核;合并多个分支层以及多个分支层对应的多层参数,和/或,合并多个1*1的卷积核以及多个1*1的卷积核对应的多个参数。
在一种可选的情况中,加载模块的功能可以是由处理模块完成,该处理模块例如可以是处理器。
可选的,纹理数据信息还包括纹理数据在GPU内存中的纹理ID,本申请实施例提供的基于图形渲染管线的模型推理装置,如图11所示,还可以包括:
确定模块45,用于根据纹理ID和GPU模型,确定各层片元着色器的输入数据位置和输出数据位置,GPU渲染管线用于根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
可选的,本申请实施例提供的基于图形渲染管线的模型推理装置,还包括:
预处理模块46,用于对纹理数据信息进行预处理;
后处理模块47,用于对推理结果进行后处理。
可选的,纹理数据信息还包括纹理数据在GPU内存中的第一保存格式以及纹理数据的第一图像大小,预处理模块46具体用于:
根据GPU模型,转换第一图像大小为第二图像大小;将第一保存格式转换成GPU模型所要求的第二保存格式。
后处理模块47,具体用于:
转换纹理数据的第二图像大小为第一图像大小,转换纹理数据的第二保存格式为第一保存格式。
可选的,本申请实施例提供的基于图形渲染管线的模型推理装置,还包括:
第二获取模块48,具体用于获取并保存渲染线程的上下文状态、处于激活状态的纹理ID以及处于激活状态的GPU执行程序的ID。
第三获取模块49,具体用于通过渲染线程获取推理结果,推理结果通过纹理数据格式保存。
恢复模块50,用于恢复渲染线程的上下文状态、纹理ID以及GPU执行程序的ID。
在一种可选的情况中,第二获取模块和第三获取模块可以都是处理器的传输接口或者接收接口,确定模块、预处理模块、后处理模块和恢复模块的功能可以都是由处理模块完成,该处理模块例如可以是处理器,此时,确定模块、预处理模块、后处理模块和恢复模块的功能可以都是由处理器完成的。
本申请所提供的装置实施例仅仅是示意性的,图11中的模块划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
本申请实施例提供一种基于图形渲染管线的模型推理装置,图12是本申请一实施例提供的基于图形渲染管线的模型推理装置的结构示意图,基于图形渲染管线的模型推理装置可以是终端设备的部分或全部,例如终端设备中的GPU,下面以终端设备为执行主体为例,如图12所示,本申请实施例提供的基于图形渲染管线的模型推理装置可以包括:
接收模块51,用于接收中央处理器CPU传输的纹理数据信息,纹理数据信息是CPU从渲染线程中的指令流中获取的,纹理数据信息包括纹理数据;
推理模块52,用于在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;
输出模块53,用于将推理结果输出至渲染线程中,推理结果为纹理数据格式。
可选的,推理模块52具体用于:
通过GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器;片元着色器是CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器;或,片元着色器是CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
在一种可选的情况中,接收模块和输出模块可以都是处理器的传输接口,推理模块可以由处理模块完成,该处理模块例如可以是处理器,此时,推理模块的功能可以是由处理器完成的。
本申请实施例提供一种基于图形渲染管线的推理平台,图13是本申请实施例提供的基于图形渲染管线的推理平台的结构示意图,如图13所示,包括:
渲染线程(Render Thread)、ShaderNN模块和图形程序接口,图像程序接口可以是嵌入式系统的跨平台的图形程序接口OPENGL ES,也可以是跨平台的图形程序接口OPENGL,本申请实施例对此不做限制。图13中以嵌入式系统的跨平台的图形程序接口OPENGL ES为例;ShaderNN模块用于通过中央处理器CPU获取渲染线程中的指令流;从指令流中提取并保存纹理数据信息,纹理数据信息包括纹理数据;将纹理数据信息输入至图形处理器GPU渲染管线中,GPU渲染管线用于对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;通过图形处理器GPU接收中央处理器CPU传输的纹理数据信息;在图形处理器GPU渲染管线中对纹理数据进行基于GPU模型的推理,得到纹理数据的推理结果,GPU模型为在GPU中运行的模型;将推理结果通过跨平台的图形程序接口输出至渲染线程中,推理结果为纹理数据格式。
本申请实施例提供一种设备,图14是本申请一实施例提供的终端设备的结构示意图,如图14所示,本申请提供的终端设备包括处理器61、存储器62、收发器63,该存储器中存储有软件指令或者说计算机程序;处理器可以是芯片,收发器63实现终端设备对通信数据的发送和接收,处理器61被配置为调用存储器中的软件指令以实现上述基于图形渲染管线的模型推理方法,其内容及效果请参考方法实施例。
本申请实施例提供一种设备,图15是本申请一实施例提供的设备的结构示意图,如图15所示,本申请提供的终端设备包括处理器71、存储器72、收发器73,该存储器中存储有软件指令或者说计算机程序;处理器可以是芯片,收发器73实现终端设备对通信数据的发送和接收,处理器71被配置为调用存储器中的软件指令以实现上述基于图形渲染管线的模型推理方法,其内容及效果请参考方法实施例。
图16是本申请实施例提供的一种示例性的基于图形渲染管线的模型推理装置的硬件架构示意图。如图16所示,基于图形渲染管线的模型推理装置900的硬件架构可以适用于SOC和应用处理器(application processor,AP)。
示例性的,该基于图形渲染管线的模型推理装置900包括至少一个中央处理单元(Central Processing Unit,CPU)、至少一个存储器、图形处理器(graphics processingunit,GPU)、解码器、接收接口和发送接口等。可选的,基于图形渲染管线的模型推理装置900还可以包括微处理器和微控制器MCU等。在一种可选的情况中,基于图形渲染管线的模型推理装置900的上述各个部分通过连接器相耦合,应当理解,本申请的各个实施例中,耦合是指通过特定方式的相互联系,包括直接相连或者通过其他设备间接相连,例如可以通过各类接口、传输线或总线等相连,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它形式的接口,本实施例对此不做限定。在一种可选的情况中,上述各部分集成在同一个芯片上;在另一种可选的情况中,CPU、GPU、解码器、接收接口以及发送接口集成在一个芯片上,该芯片内部的各部分通过总线访问外部的存储器。专用视频/图形处理器可以与CPU集成在同一个芯片上,也可以作为单独的处理器芯片存在,例如专用视频/图形处理器可以为专用图像信号处理器(image signal processor,ISP)。在本申请实施例中涉及的芯片是以集成电路工艺制造在同一个半导体衬底上的系统,也叫半导体芯片,其可以是利用集成电路工艺制作在衬底(通常是例如硅一类的半导体材料)上形成的集成电路的集合,其外层通常被半导体封装材料封装。所述集成电路可以包括各类功能器件,每一类功能器件包括逻辑门电路、金属氧化物半导体(Metal-Oxide-Semiconductor,MOS)晶体管、双极晶体管或二极管等晶体管,也可包括电容、电阻或电感等其他部件。每个功能器件可以独立工作或者在必要的驱动软件的作用下工作,可以实现通信、运算、或存储等各类功能。
可选的,CPU可以是一个单核(single-CPU)处理器或多核(multi-CPU)处理器;可选的,CPU可以是多个处理器构成的处理器组,多个处理器之间通过一个或多个总线彼此耦合。在一种可选的情况中,对于图像信号或视频信号的处理一部分由GPU完成,一部分由专用视频/图形处理器完成,还有可能由跑在通用CPU或GPU上的软件代码完成。
该装置还可以包括存储器,可用于存储计算机程序指令,包括操作系统(Operation System,OS)、各种用户应用程序、以及用于执行本申请方案的程序代码在内的各类计算机程序代码;存储器还可以用于存储视频数据、图像数据等;CPU可以用于执行存储器中存储的计算机程序代码,以实现本申请实施例中的方法。可选的,存储器可以是非掉电易失性存储器,例如是嵌入式多媒体卡(Embedded Multi Media Card,EMMC)、通用闪存存储(Universal Flash Storage,UFS)或只读存储器(Read-Only Memory,ROM),或者是可存储静态信息和指令的其他类型的静态存储设备,还可以是掉电易失性存储器(volatilememory),例如随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的程序代码并能够由计算机存取的任何其他计算机可读存储介质,但不限于此。
该接收接口可以为处理器芯片的数据输入的接口,在一种可选的情况下,该接收接口可以是移动产业处理器接口(mobile industry processor interface,MIPI)、高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)或Display Port(DP)等。
示例性的,图17是本申请又一实施例提供的终端设备的结构示意图,如图17所示,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。可以理解的是,本实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件,或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括AP,调制解调处理器,GPU,ISP,控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,终端设备100也可以包括一个或多个处理器110。其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。这就避免了重复存取,减少了处理器110的等待时间,因而提高了终端设备100系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,MIPI,通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identitymodule,SIM)接口,和/或USB接口、HDMI、V-By-One接口,DP等,其中,V-By-One接口是一种面向图像传输开发的数字接口标准。其中,USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB TypeC接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN),蓝牙,全球导航卫星系统(global navigation satellitesystem,GNSS),调频(frequency modulation,FM),NFC,红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括GSM,GPRS,CDMA,WCDMA,TD-SCDMA,LTE,GNSS,WLAN,NFC,FM,和/或IR技术等。上述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenithsatellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等可以实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100可以通过ISP,一个或多个摄像头193,视频编解码器,GPU,一个或多个显示屏194以及应用处理器等实现拍摄功能。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐、照片、视频等数据文件保存在外部存储卡中。
内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得终端设备100执行本申请一些实施例中所提供的基于图形渲染管线的模型推理方法,以及各种功能应用以及数据处理等。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用程序(比如图库、联系人等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如照片,联系人等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。在一些实施例中,处理器110可以通过运行存储在内部存储器121的指令,和/或存储在设置于处理器110中的存储器的指令,来使得终端设备100执行本申请实施例中所提供的基于图形渲染管线的模型推理方法,以及各种功能应用及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。其中,音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端设备100可以设置至少一个麦克风170C。在另一些实施例中,终端设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,OMTP)标准接口,还可以是美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
传感器180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
其中,压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180A检测所述触摸操作强度。终端设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景等。
加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180G检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端设备100是否在口袋里,以防误触。
指纹传感器180H(也称为指纹识别器),用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。另外,关于指纹传感器的其他记载可以参见名称为“处理通知的方法及终端设备”的国际专利申请PCT/CN2017/082773,其全部内容通过引用结合在本申请中。
触摸传感器180K,也可称触控面板或触敏表面。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称触控屏。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键,也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (19)

1.一种基于图形渲染管线的模型推理方法,其特征在于,包括:
获取渲染线程中的指令流;
从所述指令流中提取并保存纹理数据信息,所述纹理数据信息包括纹理数据;
将所述纹理数据信息输入至图形处理器GPU渲染管线中,所述GPU渲染管线用于对所述纹理数据进行基于GPU模型的推理,得到所述纹理数据的推理结果,所述GPU模型为在GPU中运行的模型,所述推理结果通过纹理数据格式保存;
还包括:
加载所述GPU模型至内存中;
所述加载所述GPU模型至内存中,包括:
获取所述渲染线程中训练模型的层状结构及各层参数;
根据所述层状结构和所述各层参数,生成所述层状结构中各层各自对应的片元着色器;
加载所述片元着色器至内存中;
或,所述加载所述GPU模型至内存中,包括:
获取所述渲染线程中训练模型的层状结构及各层参数;
根据所述层状结构对所述层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;
根据所述合并后的层状结构和所述合并后的各层参数,生成所述合并后的层状结构中各层各自对应的片元着色器;
加载所述片元着色器至内存中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述层状结构对所述层状结构及各层参数进行合并处理,包括:
确定所述层状结构中的多个分支层和多个1*1的卷积核;
合并所述多个分支层以及所述多个分支层对应的多层参数,和/或,合并所述多个1*1的卷积核以及所述多个1*1的卷积核对应的多个参数。
3.根据权利要求1或2所述的方法,其特征在于,所述纹理数据信息还包括所述纹理数据在GPU内存中的纹理ID,将所述纹理数据信息输入至图形处理器GPU渲染管线中,所述GPU渲染管线用于对所述纹理数据进行基于GPU模型的推理之前,还包括:
根据所述纹理ID和所述GPU模型,确定各层片元着色器的输入数据位置和输出数据位置,所述GPU渲染管线用于根据所述各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
4.根据权利要求3所述的方法,其特征在于,在将所述纹理数据信息输入至图形处理器GPU渲染管线中之前,还包括:
对所述纹理数据信息进行预处理;
在所述得到所述纹理数据的推理结果之后,还包括:
对所述推理结果进行后处理。
5.根据权利要求4所述的方法,其特征在于,所述纹理数据信息还包括所述纹理数据在GPU内存中的第一保存格式以及所述纹理数据的第一图像大小,所述对所述纹理数据信息进行预处理,包括:
根据所述GPU模型,转换所述第一图像大小为第二图像大小;
将所述第一保存格式转换成所述GPU模型所要求的第二保存格式;
所述对所述推理结果进行后处理,包括:
转换所述纹理数据的所述第二图像大小为所述第一图像大小,转换所述纹理数据的所述第二保存格式为所述第一保存格式。
6.根据权利要求1或2所述的方法,其特征在于,在将所述纹理数据信息输入至图形处理器GPU渲染管线中之前,还包括:
获取并保存所述渲染线程的上下文状态、处于激活状态的纹理ID以及处于激活状态的GPU执行程序的ID;
所述方法还包括:
通过所述渲染线程获取所述推理结果;恢复所述渲染线程的上下文状态、所述纹理ID以及所述GPU执行程序的ID。
7.一种基于图形渲染管线的模型推理方法,其特征在于,包括:
接收中央处理器CPU传输的纹理数据信息,所述纹理数据信息是所述CPU从渲染线程中的指令流中获取的,所述纹理数据信息包括纹理数据;
在图形处理器GPU渲染管线中对所述纹理数据进行基于GPU模型的推理,得到所述纹理数据的推理结果,所述GPU模型为在GPU中运行的模型;
将所述推理结果输出至所述渲染线程中,所述推理结果为纹理数据格式;
所述在图形处理器GPU渲染管线中对所述纹理数据进行基于GPU模型的推理,包括:
通过所述GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器;
所述片元着色器是所述CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器;
或,所述片元着色器是所述CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
8.一种基于图形渲染管线的模型推理装置,其特征在于,包括:
第一获取模块,用于获取渲染线程中的指令流;
提取模块,用于从所述指令流中提取并保存纹理数据信息,所述纹理数据信息包括纹理数据;
发送模块,用于将所述纹理数据信息输入至图形处理器GPU渲染管线中,所述GPU渲染管线用于对所述纹理数据进行基于GPU模型的推理,得到所述纹理数据的推理结果,所述GPU模型为在GPU中运行的模型,所述推理结果通过纹理数据格式保存;
还包括:
加载模块,用于加载所述GPU模型至内存中;
所述加载模块,具体用于:
获取所述渲染线程中训练模型的层状结构及各层参数;
根据所述层状结构和所述各层参数,生成所述层状结构中各层各自对应的片元着色器;
加载所述片元着色器至内存中;
或,所述加载模块,具体用于:
获取所述渲染线程中训练模型的层状结构及各层参数;
根据所述层状结构对所述层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;
根据所述合并后的层状结构和所述合并后的各层参数,生成所述合并后的层状结构中各层各自对应的片元着色器;
加载所述片元着色器至内存中。
9.根据权利要求8所述的装置,其特征在于,所述加载模块,还用于:
确定所述层状结构中的多个分支层和多个1*1的卷积核;
合并所述多个分支层以及所述多个分支层对应的多层参数,和/或,合并所述多个1*1的卷积核以及所述多个1*1的卷积核对应的多个参数。
10.根据权利要求8或9所述的装置,其特征在于,所述纹理数据信息还包括所述纹理数据在GPU内存中的纹理ID,还包括:
确定模块,用于根据所述纹理ID和所述GPU模型,确定各层片元着色器的输入数据位置和输出数据位置,所述GPU渲染管线用于根据所述各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器。
11.根据权利要求10所述的装置,其特征在于,还包括:
预处理模块,用于对所述纹理数据信息进行预处理;
后处理模块,用于对所述推理结果进行后处理。
12.根据权利要求11所述的装置,其特征在于,所述纹理数据信息还包括所述纹理数据在GPU内存中的第一保存格式以及所述纹理数据的第一图像大小,所述预处理模块具体用于:
根据所述GPU模型,转换所述第一图像大小为第二图像大小;
将所述第一保存格式转换成所述GPU模型所要求的第二保存格式;
所述后处理模块,具体用于:
转换所述纹理数据的所述第二图像大小为所述第一图像大小,转换所述纹理数据的所述第二保存格式为所述第一保存格式。
13.根据权利要求8或9所述的装置,其特征在于,还包括:
第二获取模块,具体用于获取并保存所述渲染线程的上下文状态、处于激活状态的纹理ID以及处于激活状态的GPU执行程序的ID;
所述装置还包括:
第二获取模块,具体用于通过所述渲染线程获取所述推理结果,所述推理结果通过纹理数据格式保存;恢复所述渲染线程的上下文状态、所述纹理ID以及所述GPU执行程序的ID。
14.一种基于图形渲染管线的模型推理装置,其特征在于,包括:
接收模块,用于接收中央处理器CPU传输的纹理数据信息,所述纹理数据信息是所述CPU从渲染线程中的指令流中获取的,所述纹理数据信息包括纹理数据;
推理模块,用于在图形处理器GPU渲染管线中对所述纹理数据进行基于GPU模型的推理,得到所述纹理数据的推理结果,所述GPU模型为在GPU中运行的模型;
输出模块,用于将所述推理结果输出至所述渲染线程中,所述推理结果为纹理数据格式;
推理模块具体用于:
通过所述GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器;
所述片元着色器是所述CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器;
或,所述片元着色器是所述CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
15.一种设备,其特征在于,包括:
处理器和存储器;
所述存储器用于存储计算机可执行指令,以使所述处理器执行所述指令实现如权利要求1至6中任一项权利要求所述的方法。
16.一种设备,其特征在于,包括:
处理器和存储器;
所述存储器用于存储计算机可执行指令,以使所述处理器执行所述指令实现如权利要求7所述的方法。
17.一种基于图形渲染管线的推理平台,其特征在于,包括:
渲染线程、基于着色器的神经网络推理ShaderNN模块和跨平台的图形程序接口;
所述ShaderNN模块用于:
通过中央处理器CPU获取渲染线程中的指令流;从所述指令流中提取并保存纹理数据信息,所述纹理数据信息包括纹理数据;将所述纹理数据信息输入至图形处理器GPU渲染管线中,所述GPU渲染管线用于对所述纹理数据进行基于GPU模型的推理,得到所述纹理数据的推理结果,所述GPU模型为在GPU中运行的模型;
通过图形处理器GPU接收中央处理器CPU传输的纹理数据信息;在图形处理器GPU渲染管线中对所述纹理数据进行基于GPU模型的推理,得到所述纹理数据的推理结果,所述GPU模型为在GPU中运行的模型;将所述推理结果通过所述跨平台的图形程序接口输出至所述渲染线程中,所述推理结果为纹理数据格式;
所述ShaderNN模块还用于:
加载所述GPU模型至内存中;
所述加载所述GPU模型至内存中,包括:
获取所述渲染线程中训练模型的层状结构及各层参数;
根据所述层状结构和所述各层参数,生成所述层状结构中各层各自对应的片元着色器;
加载所述片元着色器至内存中;
或,
所述加载所述GPU模型至内存中,包括:
获取所述渲染线程中训练模型的层状结构及各层参数;
根据所述层状结构对所述层状结构及各层参数进行合并处理,得到合并后的层状结构和合并后的各层参数;
根据所述合并后的层状结构和所述合并后的各层参数,生成所述合并后的层状结构中各层各自对应的片元着色器;
加载所述片元着色器至内存中;
所述在图形处理器GPU渲染管线中对所述纹理数据进行基于GPU模型的推理,包括:
通过所述GPU渲染管线根据各层片元着色器的输入数据位置和输出数据位置,分别依次执行各层片元着色器;
所述片元着色器是所述CPU根据渲染线程中训练模型的层状结构和各层参数,所生成的层状结构中各层各自对应的片元着色器;
或,所述片元着色器是所述CPU根据渲染线程中训练模型的合并后的层状结构和合并后的各层参数,所生成的合并后的层状结构中各层各自对应的片元着色器。
18.一种计算机存储介质,其特征在于,
所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如权利要求1至6中任一项权利要求所述的方法。
19.一种计算机存储介质,其特征在于,
所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如权利要求7所述的方法。
CN201910730619.0A 2019-08-08 2019-08-08 基于图形渲染管线的模型推理方法、装置及存储介质 Active CN112348732B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910730619.0A CN112348732B (zh) 2019-08-08 2019-08-08 基于图形渲染管线的模型推理方法、装置及存储介质
PCT/CN2020/100759 WO2021022962A1 (zh) 2019-08-08 2020-07-08 基于图形渲染管线的模型推理方法、装置及存储介质
EP20850238.5A EP4012647A4 (en) 2019-08-08 2020-07-08 METHOD AND DEVICE FOR MODEL INFERENCE BASED ON GRAPHIC RENDERING PIPELINES AND STORAGE MEDIA
US17/665,678 US11941724B2 (en) 2019-08-08 2022-02-07 Model inference method and apparatus based on graphics rendering pipeline, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910730619.0A CN112348732B (zh) 2019-08-08 2019-08-08 基于图形渲染管线的模型推理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112348732A CN112348732A (zh) 2021-02-09
CN112348732B true CN112348732B (zh) 2023-11-17

Family

ID=74366777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910730619.0A Active CN112348732B (zh) 2019-08-08 2019-08-08 基于图形渲染管线的模型推理方法、装置及存储介质

Country Status (4)

Country Link
US (1) US11941724B2 (zh)
EP (1) EP4012647A4 (zh)
CN (1) CN112348732B (zh)
WO (1) WO2021022962A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210056220A1 (en) * 2019-08-22 2021-02-25 Mediatek Inc. Method for improving confidentiality protection of neural network model
US12094026B2 (en) * 2020-07-27 2024-09-17 Intel Corporation Apparatus and method for enhancing graphics rendering photorealism
CN113747198B (zh) * 2021-06-25 2024-02-09 航天时代飞鸿技术有限公司 无人机集群视频图片渲染及后处理的方法、介质和装置
CN113469032A (zh) * 2021-06-30 2021-10-01 东北大学 基于改进YOLOv4-Tiny算法的铁矿石品位识别方法
CN113542620B (zh) * 2021-07-06 2022-02-25 北京百度网讯科技有限公司 一种特效处理方法、装置及电子设备
CN113515396B (zh) * 2021-07-09 2024-01-30 北京字节跳动网络技术有限公司 图形渲染方法、装置、电子设备与存储介质
US11755592B2 (en) 2021-08-25 2023-09-12 International Business Machines Corporation Data search with automated selection of artificial intelligence inference models and inference label indexing
CN115018692B (zh) * 2021-12-17 2024-03-19 荣耀终端有限公司 一种图像渲染方法及电子设备
US20230274165A1 (en) * 2022-02-28 2023-08-31 International Business Machines Corporation Inference model on restrained gpu memory
CN114579054A (zh) * 2022-03-04 2022-06-03 京东鲲鹏(江苏)科技有限公司 一种数据处理方法、装置、电子设备及计算机可读介质
CN114745570B (zh) * 2022-06-09 2022-11-11 荣耀终端有限公司 图像的渲染方法、电子设备及存储介质
CN116310243B (zh) * 2023-05-24 2023-08-15 山东捷瑞数字科技股份有限公司 基于人工智能的ar防抖方法、系统、设备及存储介质
CN116523052B (zh) * 2023-07-05 2023-08-29 成都阿加犀智能科技有限公司 一种快速推理方法、装置及设备
CN117634369B (zh) * 2023-12-13 2024-09-20 摩尔线程智能科技(北京)有限责任公司 仿真方法、模型、电子设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105741228A (zh) * 2016-03-11 2016-07-06 腾讯科技(深圳)有限公司 图形处理方法及装置
CN109934197A (zh) * 2019-03-21 2019-06-25 深圳力维智联技术有限公司 人脸识别模型的训练方法、装置和计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140327698A1 (en) 2013-05-06 2014-11-06 Nvidia Corporation System and method for hybrid graphics and text rendering and client computer and graphics processing unit incorporating the same
US9881391B2 (en) * 2013-10-02 2018-01-30 Microsoft Technology Licensing, Llc Procedurally defined texture maps
CN104036451B (zh) 2014-06-20 2018-12-11 深圳市腾讯计算机系统有限公司 基于多图形处理器的模型并行处理方法及装置
CN107133909B (zh) 2017-03-30 2020-09-25 北京奇艺世纪科技有限公司 一种着色器重组的方法及装置
US20180307987A1 (en) 2017-04-24 2018-10-25 Intel Corporation Hardware ip optimized convolutional neural network
US10304154B2 (en) * 2017-04-24 2019-05-28 Intel Corporation Coordination and increased utilization of graphics processors during inference
CN109002744A (zh) * 2017-06-06 2018-12-14 中兴通讯股份有限公司 图像识别方法、装置和视频监控设备
US20200234137A1 (en) * 2017-08-18 2020-07-23 Intel Corporation Efficient neural networks with elaborate matrix structures in machine learning environments
US20190147296A1 (en) * 2017-11-15 2019-05-16 Nvidia Corporation Creating an image utilizing a map representing different classes of pixels
CN108182471B (zh) 2018-01-24 2022-02-15 上海岳芯电子科技有限公司 一种卷积神经网络推理加速器及方法
KR102614649B1 (ko) * 2018-04-10 2023-12-14 구글 엘엘씨 게이밍 렌더링에서의 메모리 관리
CN109816761B (zh) 2018-12-25 2023-03-21 东软集团股份有限公司 图形转换方法、装置、存储介质和电子设备
CN109933429A (zh) * 2019-03-05 2019-06-25 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
CN110223215B (zh) 2019-06-10 2022-11-29 西安芯瞳半导体技术有限公司 一种图形渲染管线的控制方法、装置及计算机存储介质
CN110928610B (zh) 2020-02-07 2020-05-19 南京芯瞳半导体技术有限公司 验证着色器函数的方法、装置及计算机存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105741228A (zh) * 2016-03-11 2016-07-06 腾讯科技(深圳)有限公司 图形处理方法及装置
CN109934197A (zh) * 2019-03-21 2019-06-25 深圳力维智联技术有限公司 人脸识别模型的训练方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
US20220156878A1 (en) 2022-05-19
EP4012647A1 (en) 2022-06-15
EP4012647A4 (en) 2023-03-08
US11941724B2 (en) 2024-03-26
CN112348732A (zh) 2021-02-09
WO2021022962A1 (zh) 2021-02-11

Similar Documents

Publication Publication Date Title
CN112348732B (zh) 基于图形渲染管线的模型推理方法、装置及存储介质
CN111724293B (zh) 图像渲染方法及装置、电子设备
CN115473957B (zh) 一种图像处理方法和电子设备
CN109559270B (zh) 一种图像处理方法及电子设备
WO2022095744A1 (zh) Vr显示控制方法、电子设备及计算机可读存储介质
CN112437341B (zh) 一种视频流处理方法及电子设备
CN115482143B (zh) 应用的图像数据调用方法、系统、电子设备及存储介质
CN114443109B (zh) 补丁修复方法、电子设备及存储介质
CN116828100A (zh) 蓝牙音频播放方法、电子设备及存储介质
CN116795476B (zh) 一种删除壁纸的方法及电子设备
CN116743921B (zh) 携号转网号码显示方法、电子设备及存储介质
US20240020152A1 (en) Method for loading component of application and related apparatus
CN116703741B (zh) 一种图像对比度的生成方法、装置和电子设备
CN116095512B (zh) 终端设备的拍照方法及相关装置
CN116709609B (zh) 消息传递方法、电子设备及存储介质
CN116266159B (zh) 一种缺页异常处理方法和电子设备
CN117708009A (zh) 一种信号传输方法及电子设备
CN118982477A (zh) 图像处理方法及电子设备
CN118264784A (zh) 一种用于增强现实协同的系统及方法
CN116931802A (zh) 控制方法及中控设备
CN116939090A (zh) 切换蓝牙设备播放音频数据的方法及相关设备
CN117917632A (zh) 一种显示方法、电子设备和系统
CN117692693A (zh) 多屏显示方法以及相关设备
CN118672531A (zh) 跨容器显示的方法和装置
CN116301905A (zh) 数据处理方法以及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant