图像处理单元及图像处理单元执行的方法技术

技术编号:17197256 阅读:36 留言:0更新日期:2018-02-03 23:35
本发明专利技术提供一种图像处理单元及图像处理单元执行的方法,用于并行执行用多于一个编程框架编写的内核代码,图像处理单元包含:第一命令解码器,解码由第一应用程序界面发出的第一组命令,以执行第一编程框架的第一内核代码;第二命令解码器,解码由第二应用程序界面发出的第二组命令,以执行第二编程框架的第二内核代码;多个着色器核心;以及流水线管理器,耦接到第一命令解码器、第二命令解码器与着色器核心,流水线管理器用于分派第一组着色器核心与第二组着色器核心,来根据解码命令并行地分别执行第一内核代码与第二内核代码。本发明专利技术所提出的图像处理单元及图像处理单元执行的方法能并行处理不同编程框架所编写的内核代码,从而降低了内容切换操作,提升了系统的整体性能。

【技术实现步骤摘要】
图像处理单元及图像处理单元执行的方法
本专利技术的实施例有关于一种图像处理系统的架构。
技术介绍
在计算机图像领域,渲染是指将图像对象或模型的描述在显示设备上生成图像的过程。图像处理单元(graphicsprocessingunit,GPU)渲染2D及3D图像对象成为图像元素(像素),2D及3D图像对象通常由一些例如是点、线、多面体以及更高阶多面体的图元(primitive)的合成表示。GPU一般包含用于渲染操作的渲染流水线。渲染流水线包含下列主要阶段:(1)顶点处理(vertexprocessing),处理及转变顶点(用于描述图元)为投射空间(projectionspace),(2)光栅化(rasterization),这将每个图元转化为一组像素,并与显示器的像素格(pixelgrid)对齐,其包含位置,颜色,普通(normal)及纹理(texture)等属性,(3)片断处理(fragmentprocessing),处理每一组像素,以及(4)输出处理,将所有图元的像素合成进2D显示空间。为编写GPU执行的高性能的软件已经开发出多种编写架构。举例来说,举例来说,开放计算语言(OpenComputingLanguage)的OpenCLTM是一种应用程序界面(ApplicationProgramInterface,API),其支持在跨平台硬件上的大量并行代码的执行,以及开放图像库(OpenGraphicsLibrary)的(还有其在嵌入式系统上的变形,(OpenGLforEmbeddedSystems,GLES)),这是一个支持在跨平台上渲染2D与3D图像的API。图像系统通常在处理的不同阶段调用这些API。举例来说,在中央处理器上运行的API能发送命令指挥GPU来执行图像处理及帧合成的内核代码。举例来说,这些API可包含多于一个API类型;也就是说,可以被编写进例如OpenGL与OpenCL等的两种或更多种编程框架。不同API类型的API发出不同命令类型的命令来执行不同内核代码类型的内核代码。举例来说,OpenCL的API发出OpenCL命令来执行OpenCL内核代码;OpenGL的API发出OpenGL命令来执行OpenGL内核代码。在内核代码执行中,从一个框架切换到另一个框架涉及到内容切换(contextswitching)。而频繁的内容切换会大幅降低每秒帧率(framespersecond,FPS)等的系统性能。因此,需要解决这样内容切换引起的性能影响。
技术实现思路
因此,本专利技术为了解决GPU中在执行多于一个编程框架编写的代码时需要的内容切换会降低系统性能的技术问题。本专利技术提供一种图像处理单元,用于并行执行用多于一个编程框架编写的内核代码,该图像处理单元包含:第一命令解码器,解码由第一应用程序界面发出的第一组命令,以执行第一编程框架的第一内核代码;第二命令解码器,解码由第二应用程序界面发出的第二组命令,以执行第二编程框架的第二内核代码;多个着色器核心;以及流水线管理器,耦接到该第一命令解码器、该第二命令解码器与该些着色器核心,该流水线管理器用于分派第一组着色器核心与第二组着色器核心,来根据解码命令并行地分别执行该第一内核代码与该第二内核代码。本专利技术另提供一种图像处理单元执行的方法,用于并行执行用多于一个编程框架编写的内核代码,该方法包含:从驱动模块接收多个命令,用于在并行模式下执行第一编程框架的第一内核代码以及第二编程框架的第二内核代码,其中该些命令包含由第一应用程序界面发出的第一组命令以及由第二应用程序界面发出的第二组命令;用第一命令解码器解码该第一组命令并用第二命令解码器解码该第二组命令;以及根据解码的命令并行地由第一组着色器核心执行该第一内核代码且由该第二组着色器核心执行该第二内核代码。本专利技术所提出的图像处理单元及图像处理单元执行的方法能并行处理不同编程框架所编写的内核代码,从而降低了内容切换操作,提升了系统的整体性能。本专利技术的这些及其他的目的对于本领域的技术人员来说,在阅读了下述优选实施例的详细说明以后是很容易理解和明白的,所述优选实施例通过多幅图予以揭示。附图说明图1显示根据本专利技术一实施例的图像系统。图2显示根据本专利技术一实施例的支持两个并行流程处理的GPU。图3显示根据本专利技术一实施例的处理图像应用的时间线。图4显示根据本专利技术一实施例的并行模式下执行不同编程框架的内核代码的方法流程图。图5显示根据本专利技术一实施例的互斥模式下执行不同编程框架的内核代码的方法流程图。具体实施方式本说明书及权利要求书使用了某些词语代指特定的组件。本领域的技术人员可理解的是,制造商可能使用不同的名称代指同一组件。本文件不通过名字的差别,而通过功能的差别来区分组件。在以下的说明书和权利要求书中,词语“包括”是开放式的,因此其应理解为“包括,但不限于...”。本专利技术的实施例支持在多于一个编程架构上编写的内核代码的并行执行。在不同编程框架内编写的内核代码这里称为不同类型的内核代码。类似地,在不同编程框架内编写的API这里称为不同类型的API。一个实施例中,并行执行由GPU运行。GPU可从执行第一编程框架的第一内核代码与第二编程框架的第二内核代码的驱动模块接收命令。命令可包含由第一API发出的第一组命令以及第二API发出的第二组命令。GPU可用两个命令解码器同时解码这些命令。GPU可分配第一组着色器(shader)核心来执行第一内核代码,并分配第二组着色器核心来执行第二内核代码。第一组与第二组着色器的数量可根据驱动模块提供的权重来决定。GPU接着根据解码的命令并行地用第一组着色器核心执行第一内核代码以及用第二组着色器核心执行第二内核代码。后面介绍支持并行执行两种类型的内核代码的系统及方法。举例来说,OpenGL与OpenCL是并行执行的内核代码的所述的两个编程框架。可是,需要了解的是,系统与方法可延伸到并行执行超过两个类型的内核代码。而且,需要了解的是,系统与方法可支持除OpenGL与OpenCL之外的编程框架。图1显示根据本专利技术一实施例的包含CPU110与GPU120的系统100。其中CPU110与GPU120由互连130相互连接。虽然图中仅显示一个CPU与一个GPU,需要理解的是,系统100可包含任何数量的CPU与GPU,也可以包含任何数量的通用或专用处理器。需要了解的是,本专利技术此处为陈述方便而省略了其他系统组件。在一个实施例中,系统100可实施为一个芯片上系统(SoC)。在一个实施例中,系统100可以是移动计算以及/或通信装置(例如智能手机,平板电脑或笔记本电脑等等)的一部分。在另一实施例中,系统100可以是服务器电脑的一部分。每个CPU110可包含多个CPU核心,每个GPU可包含多个GPU核心。在一个实施例中,CPU110与GPU120通过互连130与存储器170(例如DRAM或其他易失性或非易失性随机存取存储器)通信。在一个实施例中,CPU110可扮演为一个主机,其发送命令给GPU120来执行用户应用;例如先进驱动器助理系统(AdvancedDriverAssistanceSystems,ADAS),深度神经网络(DeepNeuralNetwork,DNN),及其他应用。命令可通过例如GPU驱动器113的本文档来自技高网
...
图像处理单元及图像处理单元执行的方法

【技术保护点】
一种图像处理单元,用于并行执行用多于一个编程框架编写的内核代码,该图像处理单元包含:第一命令解码器,解码由第一应用程序界面发出的第一组命令,以执行第一编程框架的第一内核代码;第二命令解码器,解码由第二应用程序界面发出的第二组命令,以执行第二编程框架的第二内核代码;多个着色器核心;以及流水线管理器,耦接到该第一命令解码器、该第二命令解码器与该些着色器核心,该流水线管理器用于分派第一组着色器核心与第二组着色器核心,来根据解码命令并行地分别执行该第一内核代码与该第二内核代码。

【技术特征摘要】
2016.07.26 US 15/219,5091.一种图像处理单元,用于并行执行用多于一个编程框架编写的内核代码,该图像处理单元包含:第一命令解码器,解码由第一应用程序界面发出的第一组命令,以执行第一编程框架的第一内核代码;第二命令解码器,解码由第二应用程序界面发出的第二组命令,以执行第二编程框架的第二内核代码;多个着色器核心;以及流水线管理器,耦接到该第一命令解码器、该第二命令解码器与该些着色器核心,该流水线管理器用于分派第一组着色器核心与第二组着色器核心,来根据解码命令并行地分别执行该第一内核代码与该第二内核代码。2.如权利要求1所述的图像处理单元,其特征在于,更包含:固定功能流水线,根据由该第一命令解码器解码的该第一组命令,用该第一组着色器核心执行该第一内核代码。3.如权利要求2所述的图像处理单元,其特征在于,该固定功能流水线与该第一组着色器核心根据该第一内核代码执行3D图像渲染及图像合成操作。4.如权利要求1所述的图像处理单元,其特征在于,该图像处理单元更包含工作项目产生器,从该第二内核代码产生多个工作项目,该些工作项目被该第二组着色器核心根据由该第二命令解码器解码的该第二组命令执行。5.如权利要求4所述的图像处理单元,其特征在于,该工作项目产生器与该第二组着色器核心根据该第二内核代码执行并行计算。6.如权利要求1所述的图像处理单元,其特征在于,该第一组着色器核心包含第一数量的着色器核心,该第二组着色器核心包含第二数量的着色器核心,且该第一数量与该第二数量是由驱动模块提供的权重计算得到。7.如权利要求1所述的图像处理单元,其特征在于,该些着色器核心更将所有该些着色器核心分派给该第一内核代码与该第二内核代码其中之一,来交替执行该第一内核代码与该第二内核代码,以回应额外命令来于互斥模式下执行该第一内核代码与该第二内核代码。8.如权利要求1所述的图像处理单元,其特征在于,该第一命令解码器从存储器内的第一命令序列接收该第一组命令,且该第二命令解码器从该存储器的第二命令序列接收该第二组命令。9.如权利要求1所述的图像处理单元,其特征在于,该第一命令解码器解码OpenGL代码且该第二命令解码器解码OpenCL代码。10.如权利要求1所述的图像处理单元,其特征在于,该第一应用程序界面是OpenGL应用程序界面,该第二应用程序界面是OpenCL应用程序界面。11.一...

【专利技术属性】
技术研发人员:陈启明钟炘澔
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾,71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1