《媒体工作负荷调度器.pdf》由会员分享,可在线阅读,更多相关《媒体工作负荷调度器.pdf(21页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103577269 A (43)申请公布日 2014.02.12 CN 103577269 A (21)申请号 201310335743.X (22)申请日 2013.08.02 13/564,824 2012.08.02 US G06F 9/50(2006.01) H04N 19/23(2014.01) H04N 19/114(2014.01) H04N 19/159(2014.01) H04N 19/61(2014.01) (71)申请人 英特尔公司 地址 美国加利福尼亚州 (72)发明人 CC王 R文卡塔拉曼 (74)专利代理机构 上海专利商标事务所有限公 司 。
2、31100 代理人 张欣 (54) 发明名称 媒体工作负荷调度器 (57) 摘要 本发明涉及媒体工作负荷调度器, 公开了用 于调度媒体工作负荷的方法与系统。该方法包括 建模媒体工作负荷的特征。可确定媒体工作负荷 的GPU利用率和存储器带宽。 此外, 通过修改媒体 工作负荷的特征, 从而调节 GPU 利用率和存储器 带宽, 可调度媒体工作负荷。 (30)优先权数据 (51)Int.Cl. 权利要求书 2 页 说明书 11 页 附图 7 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书11页 附图7页 (10)申请公布号 CN 103577269 A CN 1。
3、03577269 A 1/2 页 2 1. 一种用于调度媒体工作负荷的方法, 包括 : 建模所述媒体工作负荷的特征 ; 确定所述媒体工作负荷的 GPU 利用率和存储器带宽 ; 和 通过修改所述媒体工作负荷的特征从而调节所述 GPU 利用率和所述存储器带宽, 来调 度所述媒体工作负荷。 2.如权利要求1所述的方法, 其特征在于, 当所述GPU利用率或所述存储器带宽大于阈 值时, 调度所述媒体工作负荷。 3.如权利要求1所述的方法, 其特征在于, 调节所述GPU利用率和所述存储器带宽包括 提供对于所述媒体工作负荷的动态控制、 调节所述媒体的编码和解码、 调节视频回放、 以及 调节视频会议、 照相机。
4、功能、 或无线播放功能的参数。 4. 如权利要求 1 所述的方法, 其特征在于, 在媒体特征建模数据库中建模所述媒体工 作负荷的特征。 5. 如权利要求 1 所述的方法, 其特征在于, 包括使用内核控制驱动器、 GPU、 和存储器计 数器来确定所述 GPU 利用率和所述存储器带宽。 6. 如权利要求 1 所述的方法, 其特征在于, 包括确定所述 GPU 的每一个引擎的所述 GPU 利用率。 7.如权利要求1所述的方法, 其特征在于, 包括使用CODEC将所述媒体工作负荷转换为 另一个格式。 8. 一种计算设备, 包括 : 被配置为执行所存储的指令的中央处理单元 (CPU) 和存储指令的存储设备。
5、, 其中所述 存储设备包括当由所述 CPU 执行时被配置为进行如下动作的处理器可执行指令 : 通过使用媒体特征建模数据库来建模所述媒体工作负荷的特征 ; 通过使用图形处理单元 (GPU) 计数器来确定所述媒体工作负荷的 GPU 利用率和存储器 带宽 ; 和 通过修改所述媒体工作负荷的特征从而调节所述 GPU 利用率和所述存储器带宽, 来调 度所述媒体工作负荷。 9.如权利要求8所述的计算设备, 其特征在于, 使用确定所述GPU利用率和所述存储器 带宽大于还是小于阈值的比较器来调度所述媒体工作负荷。 10. 如权利要求 8 所述的计算设备, 其特征在于, 为了调节所述 GPU 利用率和所述存储 。
6、器带宽, 所述 CPU 将特征从所述媒体工作负荷移除。 11. 如权利要求 8 所述的计算设备, 其特征在于, 所述 CPU 将在媒体特征建模数据库中 建模所述媒体工作负荷的特征。 12. 如权利要求 8 所述的计算设备, 其特征在于, 包括内核模式驱动器和具有 GPU 计数 器的 GPU, 所述 GPU 计数器来确定所述 GPU 利用率和所述存储器带宽。 13. 如权利要求 8 所述的计算设备, 其特征在于, 所述 CPU 将确定 GPU 的每一个 GPU 引 擎的利用率。 14. 如权利要求 8 所述的计算设备, 其特征在于, 包括 CODEC, 所述 CODEC 用于将所述媒 体工作负荷。
7、转换为另一个格式以供 GPU 处理。 15. 如权利要求 8 所述的计算设备, 其特征在于, 所述计算设备包括摄像头、 视频聊天 权 利 要 求 书 CN 103577269 A 2 2/2 页 3 应用、 或视频会议应用。 16. 如权利要求 8 所述的计算设备, 其特征在于, 还包括无线电和显示器, 所述无线电 和显示器通信地至少耦合至所述 CPU。 17. 至少一个机器可读介质, 具有存储在其中的指令, 所述指令响应于在计算设备上被 执行而使得所述计算设备 : 通过使用媒体特征建模数据库来建模所述媒体工作负荷的特征 ; 确定所述媒体工作负荷的 GPU 利用率和存储器带宽 ; 和 通过修改。
8、所述媒体工作负荷的特征从而调节所述 GPU 利用率和所述存储器带宽, 来调 度所述媒体工作负荷。 18.如权利要求17所述的至少一个机器可读介质, 其特征在于, 当所述GPU利用率或所 述存储器带宽大于阈值时调度所述媒体工作负荷。 19. 如权利要求 17 所述的至少一个机器可读介质, 其特征在于, 在媒体特征建模数据 库中建模所述媒体工作负荷的特征。 20.如权利要求17所述的至少一个机器可读介质, 其特征在于, 包括确定所述GPU的每 一个引擎的所述 GPU 利用率。 权 利 要 求 书 CN 103577269 A 3 1/11 页 4 媒体工作负荷调度器 技术领域 0001 本发明一般。
9、地涉及调节工作负荷。 更特定地, 本发明涉及在图形处理单元 (GPU) 上 调节媒体工作负荷。 背景技术 0002 媒体工作负荷可相对较大且可完全使用 GPU 时间和存储器带宽。媒体工作负荷包 括由来自电子设备的媒体组件 (诸如摄像头或视频播放器) 的媒体应用所获得的一个或多 个数据流。如此处所使用的, 媒体是指由 GPU 处理的任何数据。例如, 平板和智能电话可包 含两个或更多的摄像头从而支持视频捕捉, 其中有至少一个前向和一个后向摄像头。可同 时使用这些摄像头。每一个摄像头具有其自身的数据流, 而每一个数据流的处理包括编码 和解码这些数据流。 在各示例中, 计算设备可被用于有多个参与方参加。
10、的视频会议, 每一个 参与方具有被编码和解码的自己的数据流。 附图说明 0003 图 1 是根据各实施例的, 可被用于调度工作负荷的计算设备的框图 ; 0004 图 2 是根据各实施例的, 可被用于调度媒体工作负荷的系统的示意图 ; 0005 图 3 是示出根据各实施例的, 用于调度媒体工作负荷的方法的过程流程图 ; 0006 图 4A 是示出根据各实施例的, 用于调度媒体工作负荷的方法的过程流程图 ; 0007 图 4B 是示出根据各实施例的, 用于调节特征的方法的过程流程图 ; 0008 图 5 是示出根据各实施例的, 存储了用于调度媒体工作负荷的代码的有形的、 非 瞬态、 计算机可读介质。
11、的框图 ; 0009 图 6 是用于实现共享的物理存储器的示例性系统的框图 ; 和 0010 图 7 是其中可实现图 6 的系统的小形状系数设备 700 的示意图。 0011 在整个公开和附图中使用相同的标号来指示相似的组件和特征。100 系列的标号 涉及在图 1 中最初可见的特征, 200 系列的标号涉及在图 2 中最初可见的特征, 以此类推。 具体实施方式 0012 GPU 可被用于各种媒体功能, 诸如媒体回放和 3D 应用。GPU 的很多用途包括编码 和解码多个数据流。 如此处所使用地, 媒体是指包括各数据流的任何图形化内容, 包括在线 视频广播或视频会议图像。如上所述, GPU 的媒体。
12、工作负荷可相对较大。当媒体工作负荷 超过特定阈值时, 可发生瓶颈。该阈值可包括 GPU 的最大吞吐量。瓶颈可引起 GPU 数据处 理的中断、 导致劣化的媒体功能。 例如, 视频的回放可被累及, 且包括在视频回放中的延迟、 或者回放中的数次开始和停止。因此, 此处描述的各实施例涉及媒体工作负荷的调度。可 基于 GPU 利用率和存储器带宽来自动调节媒体工作负荷。 0013 诸如由运动图像专家组 (MPEG) 发布的那些视频标准和 H.264, 通过逐帧处理流来 压缩视频流。帧是视频的静态图像, 类似于图片。每一帧可被细分为宏块, 且宏块可进一步 说 明 书 CN 103577269 A 4 2/1。
13、1 页 5 被分为片。 宏块一般是像素块。 例如, 在H.264标准中, 宏块是大小为十六乘以十六的像素。 片是帧中可被独立地编码或解码的数据单元。 因此, 如果丢失了帧中的一片, 帧的其他片仍 可解码。在各实施例中, 可使用片来并行编码和解码, 因为它们独立于图片中的其他片。片 报头可包括帧中至少一部分片的寻址信息。寻址信息能标识片的开始位置。片报头中可包 括其他信息, 包括与片关联的任何过滤器信息, 以及片的编码类型, 诸如 MPEG 或 H.264。 0014 在以下描述和权利要求书中, 可使用术语 “耦合” 和 “连接” 及其衍生词。应当理 解, 这些术语并不旨在作为彼此的同义词。相反。
14、, 在特定实施例中, 可使用 “连接的” 来指示 两个或更多元件彼此直接物理或电气接触。 “耦合” 可表示两个或多个元件直接物理或电气 接触。然而,“耦合” 也可意味着两个或更多个元件并未彼此直接接触, 但是仍然彼此协作、 彼此相互作用。 0015 一些实施例可在硬件、 固件和软件中的一者或组合中实现。一些实施例还可被实 现为存储在机器可读介质上的指令, 其可由计算平台读取和执行以执行本文所述的操作。 机器可读介质可包括用于存储或传送机器 (例如, 计算机) 可读形式的信息的任何机制。例 如, 机器可读介质可包括只读存储器 (ROM) ; 随机存取存储器 (RAM) ; 磁盘存储介质 ; 光存。
15、储 介质 ; 闪存设备 ; 或电、 光、 声或其它形式的传播信号 (例如, 载波、 红外信号、 数字信号、 或 发送和 / 或接收信号的接口等) 等等。 0016 实施例是实现或示例。说明书中对 “实施例” 、“一个实施例” 、“一些实施例” 、“各种 实施例” 或 “其它实施例” 的引用表示结合这些实施例而描述的特定特征、 结构、 或特性被包 括在本发明的至少一些实施例中, 而不一定在所有的实施例中。 “实施例” 、“一个实施例” 、 “一些实施例” 的各自出现不一定都指代相同的实施例。一个实施例的元件或方面可与另一 个实施例的元件或方面组合。 0017 并非本文中描述和示出的所有组件、 特。
16、征、 结构、 特性等等都需要被包括在特定实 施例或多个实施例中。例如, 如果说明书陈述 “可” 、“可能” 、“能” 、 或 “能够” 包括组件、 特 征、 结构、 或特性, 则不一定包括该特定组件、 特征、 结构、 或特性。 如果说明书或权利要求书 提到 “一” 或 “一个” 元件, 则这并不意味着仅有一个该元件。如果说明书或权利要求书提 及 “附加” 元件, 这不排除有一个以上的附加元件。 0018 要注意的是, 虽然参考特定实现方式描述了一些实施例, 但根据一些实施例, 其他 实现方式也是可能的。另外, 附图中所示的和 / 或本文描述的电路元件或其它特征的配置 和 / 或顺序不需要以所示。
17、和所描述的特定方式安排。根据某些实施例很多其它配置也是可 能的。 0019 在附图中示出的每个系统中, 在一些情况下的元件可分别具有相同附图标记或不 同的附图标记, 以暗示所表示的元件可能不同和 / 或相似。然而, 元件是足够灵活的以具有 不同的实现并与本文所示或所描述的系统中的部分或全部一起操作。 附图中所示的各元件 可以相同或不同。将哪个称为第一元件以及将哪个称为第二元件是任意的。 0020 图 1 是根据各实施例, 可被用于调度工作负荷的计算设备 100 的框图。该计算设 备 100 可以是, 例如, 膝上型计算机、 台式计算机、 平板计算机、 移动设备、 服务器、 或手机, 等等。计算。
18、设备 100 可包括中央处理单元 (CPU) 102, 被配置为执行所存储的指令, 还有存 储器设备 104, 存储可由 CPU102 执行的指令。CPU102 可以是单核处理器、 多核处理器、 计算 簇、 或者任意数量的其他配置。进一步, 计算设备 100 可包括多于一个的 CPU102。可使用由 说 明 书 CN 103577269 A 5 3/11 页 6 CPU102 执行的指令来调度媒体工作负荷。 0021 计算设备100还可包括图形处理单元 (GPU) 104。 如图所示, CPU102可通过总线106 连接至 GPU104。然而, 在一些实施例中, CPU102 和 GPU104。
19、 位于同一管芯 (die) 上。GPU104 可被配置为执行计算设备 100 中的任意数量的图形操作。例如, GPU104 可被配置为呈现或 操作图形化图像、 图形帧、 视频等, 使其向计算设备 100 的用户显示。 0022 GPU104 还可包括采样引擎 108、 3D 引擎 110、 和媒体引擎 112。引擎是 GPU104 组 件, 可被用于并行处理发送至 GPU104 的数据。尽管示出了三个 GPU 引擎, 该 GPU 可包含任 意数量的引擎。例如, 该 GPU104 可包含着色引擎和多格式 CODEC(MFX) 引擎。如图所示, 在 计算设备 100 中, 3D 引擎 110 可与。
20、处理其他类型媒体的媒体引擎 114 并行地来处理 3D 图 像数据。采样引擎 118 可从 GPU 计数器 114 中收集数据。此外, 在各实施例中, 着色引擎可 处理 3D 图像数据, 同时 MFX 引擎解码被发送至 GPU104 的数据。GPU 计数器 114 可收集与 GPU104 相关的性能数据。特定地, GPU 计数器 114 可测量 GPU104 的负荷与吞吐量。采样引 擎 108 可将 GPU 性能数据从 GPU 计数器 114 发送到内核模式驱动器 (KMD) 116。基于来自 GPU 计数器 114 的数据, KMD116 可计算 GPU 利用率和存储器带宽。 0023 计算。
21、设备100包括一个或多个摄像头118。 如上所述, 手机可具有两个前向摄像头 和一个后向摄像头。可使用这多个摄像头来捕捉视频。此外, 计算设备 100 包括存储器设 备 120。存储器设备 120 可包括随机存取存储器 (RAM) 、 只读存储器 (ROM) 、 闪存、 或任何其 他合适的存储系统。例如, 存储器设备 120 可包括动态随机存取存储器 (DRAM) 。 0024 存储器设备120包括媒体特征建模数据库122。 根据各实施例, 该媒体特征建模数 据库 122 包括可被修改从而调节 GPU 利用率和媒体工作负荷存储器带宽的一组特征。该媒 体特征建模数据库 122 可离线或实时地建模。
22、。 0025 在该媒体特征建模数据库 122 中可包括数个特征。每一个特征可修改媒体工作负 荷的某个方面, 诸如解码、 视频处理、 编码、 或存储器存取。在各实施例中, 可使用 CODEC 来 解码或编码媒体工作负荷。因此, 可通过修改对应的 CODEC 来修改解码特征或编码特征。 0026 在各示例中, 可通过禁用使用片报头的内循环去马赛克 (in-loop de-blocking) 、 或者通过在解码过程中跳过双向预测帧 (B- 帧 ) 或预测帧 (P- 帧) , 来修改媒体工作负荷的 解码方面。内循环去马赛克是当解码媒体回放时施加至每一片的视频过滤器, 从而通过平 滑当使用块编码技术时在。
23、片之间可形成的尖锐边缘, 来改进视频的视觉质量和预测性能。 如上所述, 片是每一帧内被编码或解码的数据单元。 每一片可包含报头, 具有与该片有关的 信息, 诸如片的编码或解码格式, 等等。 可通过移除包含在每一片的报头内的去马赛克过滤 器信息来禁用内循环去马赛克。通过禁用这个特征, 可减少被用于编码的媒体工作负荷的 部分。 0027 通过在解码媒体工作负荷的视频的同时跳过B-帧或P-帧也可减少被用于解码的 媒体工作负荷的部分。如上所述, 每一帧是与其他帧一起连续地播放来呈现整个视频的静 态图片。 可使用各种帧类型从而压缩整个视频, 包括预测图片帧 (P-帧) 、 和双向预测图片帧 (B- 帧)。
24、 。P- 帧对当与前一帧相比时发生的图像中的变换进行编码。因此, 当视频是弹起越 过静态背景的球时, 编码球的移动, 而不编码静态背景。 当与编码整个帧, 包括静态背景, 相 比, 藉此减少了经编码的文件的大小。 B-帧将当前帧与前一帧进行比较, 并且编码两个帧之 间的变化从而对于视频信息编码。 因此, 当视频是弹起越过静态背景的球时, 编码球的经改 说 明 书 CN 103577269 A 6 4/11 页 7 变的位置, 而不编码静态背景。当使用 P- 帧或 B- 帧来编码视频时, 当解码视频时可跳过一 些 P- 帧或 B- 帧从而减少媒体工作负荷。在解码视频时跳过数个、 非连续的 P- 。
25、帧或 B- 帧, 可减少媒体工作负荷的 GPU 利用, 且人眼一般检测不到。 0028 可在各种使用中发生解码, 包括但不限于高清晰度回放、 WiDi 回放、 或在视频会议 过程中。 进一步, 在各示例中, 在解码过程中跳过P-帧或B-帧之前就禁用内循环去马赛克。 与解码过程中当跳过 P- 帧或 B- 帧时发生的视频质量的减少相比较而言, 当禁用内循环去 马赛克时视频质量的减少时非常小的。因此, 由于与解码过程中当跳过 P- 帧或 B- 帧时发 生的视频质量的减少相比较而言, 禁用内循环去马赛克对于视频质量影响更小, 期望首先 禁用内循环去马赛克。 0029 还可修改诸如图像稳定、 帧速率转换。
26、、 伽马修正增强、 皮肤色调增强、 帧速率减少、 和帧大小之类的一个或多个视频处理特征来调节媒体工作负荷。例如, 通过减少数据的帧 速率或帧尺寸, 可减少GPU利用率, 藉此能使GPU处理数据流而没有用户所感知的媒体回放 劣化。视频处理发生在各种使用过程中, 包括但不限于高清晰度回放、 WiDi 回放、 或在视频 会议过程中。 在各示例中, 当视频处理特征被修改时, 可在禁用其他视频处理特征之前就禁 用帧速率转换。这是由于帧速率转换一般是 GPU 管路中冗长的步骤。在已经禁用帧速率转 换后, 可禁用图像稳定来进一步减少媒体工作负荷。图像稳定也可占据大部分的 GPU 时间。 在已经禁用图像稳定后。
27、, 可禁用伽马修正增强和皮肤色调增强。最后, 在各示例中, 可禁用 其他特征, 诸如帧速率减少和帧大小。 通过以如上所述的顺序来禁用视频处理特征, 可以对 图像质量具有最小影响、 同时减少 GPU 利用率的方式来禁用这些特征。 0030 可修改诸如比特率、 动作估算、 和宏块形状之类的编码特征从而调节用于编码视 频信号的媒体工作负荷的部分。特定地, 可减少由编码所处理的数据的诸如比特率之类 的特征, 同时响应于由于编码引起的较高的 GPU 利用, 来打开或关闭诸如 flash 媒体编码 (FME) 和分层运动估算 (HME) 之类的运动估算技术。还可修改宏块形状。例如, 宏块可具有 不同大小,。
28、 诸如十六乘十六像素或八乘八像素。 0031 在各示例中, 在编码过程中, 在调节媒体工作负荷的其他特征前, 可减少比特率。 比特率可消耗大量 GPU 时间, 且减少比特率可减少被用于编码的 GPU 时间。在各示例中, 在 已经减少比特率后, 可降低运动估算复杂度, 藉此减少被用于运动估算的 GPU 时间。最后, 在各示例中, 在已经降低了运动估算复杂度后, 可改变宏块形状从而修改媒体工作负荷。 类 似于视频处理特征, 通过以如上所述的顺序来禁用编码特征, 可以对图像质量具有最小影 响、 同时减少 GPU 利用率的方式来禁用这些特征。 0032 通过修改媒体工作负荷的各特征还可减少存储器带宽。。
29、例如, 一些工作负荷可使 用大部分存储器, 而其他工作负荷使用较少的存储器。通过数据从存储器中检索出时的可 用存储器带宽, 可限制工作负荷。因此, 通过减少 GPU 上的执行单元线程的数量, 作为受限 的存储器带宽的结果, 可减少媒体工作负荷来避免 GPU 性能中的任何抖动、 延迟、 或停滞。 也可修改影响存储器带宽的其他特征。在各示例中, 可以其中在其他特征前禁用使用最多 的存储器带宽的特征的顺序来修改影响存储器带宽的特征。 0033 存储器设备120还包括基于GPU和存储器输入来调节工作负荷的工作负荷调度器 124。在各实施例中, 工作负荷调度器 124 可与采样引擎 108 和媒体特征建。
30、模数据库 122 通 信, 从而确定实时修改媒体工作负荷的哪个特征。 以此方式, 获得能在不累及用户所感知的 说 明 书 CN 103577269 A 7 5/11 页 8 GPU性能的情况下实现GPU最大化使用的GPU利用率和存储器带宽。 然后, 工作负荷可从工 作负荷调度器 124 发送出, 以供如图 2 中所示地处理, 且然后发送至 GPU104。 0034 计算设备 100 可包括存储器 126。存储器 126 是诸如硬盘驱动器、 光盘驱动器、 拇 指驱动器、 驱动器阵列、 或其中任意组合之类的物理存储器。存储器 126 还可包括远程存储 驱动器。存储器还可包括一个或多个媒体应用 12。
31、8。 0035 CPU102 还可通过总线 106 连接至输入 / 输出 (I/O) 设备接口 130, 该接口 130 被配 置为将计算设备 100 连接至一个或多个 I/O 设备 132。I/O 设备 132 可包括, 例如, 键盘和 指向设备, 其中指向设备可包括触摸板或触摸屏, 等等。I/O 设备 132 可以是计算设备 100 的内置组件, 或可以是从外部连接至计算设备 100 的设备。 0036 CPU102 还可通过总线 106 链接至显示接口 134, 该接口 134 被配置为将计算设备 100 连接至显示设备 136。显示设备 136 可包括显示屏, 其为计算设备 100 的。
32、内置组件。显 示设备 136 还可包括从外部连接至计算设备 100 的计算机监视器、 电视机、 或投影仪等等。 网络接口控制器 (NIC) 138 可被配置为通过总线 106 将计算设备 100 连接至网络 140。网 络 140 可以是有线网络、 无线网络、 或蜂窝网络。网络 140 可以是任何广域网 (WAN) 、 任何局 域网 (LAN) 、 或因特网, 等等。例如, 网络 140 可以是 3GPP LTE 网络或 WiFi 网络。 0037 图 1 的框图并不意在表示, 计算设备 100 必须包括图 1 中所示的全部组件。进一 步, 取决于特定实现的细节, 计算设备 100 可包括图 。
33、1 中未示出的任意数量的附加组件。 0038 图 2 是根据各实施例的, 可被用于调度媒体工作负荷的系统 200 的示意图。类似 标记的项如根据图 1 所描述。系统 200 可包括媒体应用 126。该媒体应用 126 可包括播放 电影的应用、 视频会议软件、 或照相机软件, 等等。来自媒体应用 126 的工作负荷可被发送 至调度组件202。 调度组件202包括媒体特征建模数据库122、 采样引擎108、 工作负荷调度 器 124、 和比较器 204。如相对图 1 所述地, 工作负荷调度器 124 可与采样引擎 108 和媒体 特征建模数据库 122 通信从而确定实时修改媒体工作负荷的哪个特征,。
34、 从而调节 GPU 利用 率和存储器带宽。如果 GPU 利用率或存储器带宽低于阈值, 比较器 204 将发送消息给工作 负荷调度器124, 表示不需发生对于来自应用128的媒体工作负荷的任何修改。 当GPU利用 率或存储器带宽高于阈值时, 比较器 204 将发送消息给工作负荷调度器 124, 表示需修改该 媒体工作负荷。例如, 如果 GPU 利用率高于 95% 的阈值, 则可修改媒体工作负荷。类似地, 当超过存储器带宽的百分比时, 可使用带宽作为阈值。 因此, 当每秒五吉比特 (gigabite) 的 阈值被超过时, 可修改媒体工作负荷。 0039 可将工作负荷从调度组件 202 发送到 CO。
35、DEC206。CODEC 是计算设备的软件或硬件 组件, 可将媒体工作负荷转换为可由 GPU 处理的格式。然后经转换的工作负荷被发送到媒 体驱动器 208。在各实施例中, 媒体驱动器 208 将经转换的工作负荷放在缓存中。AKMD116 可被用于计算经转换的工作负荷的 GPU 利用率 210 和存储器带宽 212。此外, 硬件, 诸如 GPU104, 可处理来自缓存的经转换的工作负荷。 0040 KMD116还将经计算的GPU利用率210和存储器带宽212作为反馈214发送到调度 组件 202。比较器 204 使用该反馈 214 来确定 GPU 利用率 210 或存储器带宽 212 是大于还 。
36、是小于特定阈值。如上所述, 工作负荷调度器可基于来自比较器 204 的结果来修改媒体工 作负荷。 0041 图3是根据各实施例的, 示出用于调度媒体工作负荷的方法300的过程流程图。 在 说 明 书 CN 103577269 A 8 6/11 页 9 各实施例中, 可在诸如计算设备 100 之类的计算设备上执行该方法 300。在其他实施例中, 可使用诸如上述相对图 2 讨论的系统 200 之类的系统来执行该方法 300。 0042 通过建模媒体工作负荷的特征, 在框 302 处, 开始该方法。在各实施例中, 该特征 是由GPU或任意的GPU引擎所处理的工作负荷的任意方面, 其可被调节从而防止或。
37、解决GPU 的数据处理瓶颈。当 GPU 利用率高于阈值、 或存储器带宽高于阈值时, 可发生数据处理瓶 颈。进一步, 在各实施例中, 特征可被存储在媒体特征建模数据库内。 0043 在框 304 处, 可确定媒体工作负荷的 GPU 利用率和存储器带宽。如上所述, 可使用 内核模式驱动器来确定GPU利用率和存储器带宽。 在框306, 通过修改媒体工作负荷的特征 来调度媒体工作负荷, 从而调节 GPU 利用率和存储器带宽。在各实施例中, 调节 GPU 利用率 和存储器带宽包括提供对于媒体工作负荷的动态控制、 调节媒体的编码和解码、 调节视频 回放、 以及调节视频会议、 照相机功能、 或无线播放功能的。
38、参数。此外, 在各实施例中, 可从 媒体工作负荷中移除特征。 0044 图 4A 是示出根据各实施例的, 用于调度媒体工作负荷的方法 400 的过程流程图。 在框 402, 媒体调度器将基于每一类型的使用模型的默认设置来调度工作负荷。使用模型 代表了工作负荷执行的操作的类型。 使用模型的默认设置包括能进行使用模型的操作的设 置。例如, 视频回放操作是使用模型的一个类型。视频回放操作的默认设置可包括, 但不限 于, 启用视频处理特征、 执行图像稳定、 和提供帧速率转换。在框 404, 获得来自 GPU 计数器 的信息。在各实施例中, 在一些工作负荷被发送到 GPU 之后, 调度组件可收集来自 G。
39、PU 计数 器的反馈, 从而可计算GPU利用率和存储器带宽。 进一步, 在各实施例中, 可对于每一个GPU 引擎而计算 GPU 利用率。在框 406, 该方法确定 GPU 或 GPU 引擎是否过载。如果任何 GPU 或 GPU 引擎过载, 过程流程继续到框 408。如果没有任何 GPU 或 GPU 引擎过载, 过程流程继续 到框 410。 0045 在框 408, 修改媒体工作负荷的特征从而减少 GPU 利用率。例如, 如果 GPU 的 3D 引 擎过载, 从而 3D 引擎的利用率高于预定阈值, 则可修改减少 3D 引擎的利用率的特征。过程 流程可然后返回至框 402 并调度工作负荷。图 4B。
40、 进一步示出根据各实施例的用于调节特 征的方法。 0046 在框 412, 确定存储器是否带宽受限。如果存储器带宽受限, 过程流程继续到框 414。如果存储器带宽没有受限, 过程流程则可返回到框 402 并调度工作负荷。在框 414, 可修改特征从而减少存储器带宽。 在各示例中, 如果媒体引擎过载, 从而超过最大存储器带 宽, 可修改减少存储器带宽的特征。然后过程流程返回框 402 来调度工作负荷。 0047 图4B是示出根据各实施例的, 用于修改媒体工作负荷的特征的方法420的过程流 程图。在框 422, 确定着色引擎是否过载。在各示例中, 着色引擎可以是 GPU 的渲染 3D 图像 的引擎。
41、。如果 GPU 的着色引擎过载, 以致着色引擎的利用率大于预定阈值, 则过程流程继续 到框 424。 0048 在框 424, 修改减少着色引擎的利用率的特征。在框 426, 确定 MFX 引擎是否过载。 在各示例中, MFX 引擎是 GPU 的解码各种数据流的引擎。如果 MFX 引擎过载, 过程流程可继 续到框 428。 0049 在框428, 修改减少MFX引擎的利用率的CODEC特征。 如上所述, CODEC是计算设备 的软件或硬件组件, 可将媒体工作负荷转换为可由 GPU 处理的格式。在各实施例中, CODEC 说 明 书 CN 103577269 A 9 7/11 页 10 可以是 。
42、CODEC206(图 2) 。此外, 在各实施例中, CODEC 可以是 CPU 引擎的组件, 诸如 MFX 引 擎或媒体引擎 114(图 1) 。CODEC 的各方面可被修改从而减少 MFX 引擎的利用率。过程流 程可然后返回至框 402 并调度工作负荷。 0050 图3、 4A、 和4B的过程流程图并不意在表示方法300和400的框要以任何特定顺序 执行, 或者在每一情况下都要包括所有框。进一步, 取决于特定实现的细节, 可在方法 300 和 400 中包括任何数量的附加框。 0051 图 5 是示出根据各实施例的, 存储了用于调度媒体工作负荷的代码的一个或多个 有形的、 非瞬态、 计算机。
43、可读介质 500 的框图。因此, 根据各实施例, 一个或多个计算机可读 介质可存储用于调度媒体工作负荷的代码。一个或多个有形、 非瞬态、 计算机可读介质 500 可由处理器 502 在计算机总线 504 上访问。进一步, 该一个或多个有形、 非瞬态计算机可读 介质 500 可包括配置为引导处理器 502 执行此处所述的方法的代码。 0052 此处讨论的各软件组件可被存储在如图 5 中所示的有形、 非瞬态计算机可读介质 500 上。例如, 建模模块 506 可被配置为建模媒体工作负荷的特征。利用模块 508 可被配置 为确定媒体工作负荷的 GPU 利用率和存储器带宽。进一步, 调度模块 510 。
44、可被配置为通过 修改媒体工作负荷的特征来调度媒体工作负荷, 从而调节 GPU 利用率和存储器带宽。 0053 图 5 的框图并不意在表示, 有形、 非瞬态计算机可读介质 500 必须包括图 5 中所示 的全部组件。进一步, 取决于特定实现的细节, 有形、 非瞬态计算机可读介质 500 可包括图 5 中未示出的任意数量的附加组件。 0054 图 6 是用于实现共享的物理存储器的示例性系统 600 的框图。类似标记的项如根 据图 1 和 2 所描述。在一些实施例中, 系统 600 是媒体系统。此外, 系统 600 可被结合在个 人计算机 (PC) 、 膝上型计算机、 超膝上型计算机、 平板、 触摸。
45、垫、 便携式计算机、 手持式计算 机、 掌上型计算机、 个人数字助理 (PDA) 、 蜂窝电话、 组合蜂窝电话 /PDA、 电视机、 智能设备 (例如, 智能电话、 智能平板、 或智能电视机) 、 移动因特网设备 (MID) 、 消息收发设备、 数据通 信设备等等中。 0055 在各种实施例中, 系统 600 包括耦合至显示器 604 的平台 602。平台 602 可以从诸 如内容服务设备 (多个) 606、 或内容分发设备 608(多个) 之类的内容设备或其他类似的内 容源接收内容。包括一个或多个导航特征的导航控制器 610 可以被用来与, 例如, 平台 602 和 / 或显示器 604 进。
46、行交互。下文将更详细地描述这些组件中的每一个。 0056 平台 602 可包括芯片组 612、 中央处理单元 (CPU) 102、 存储器设备 102、 存储设备 126、 图形子系统 614、 应用 128、 和无线电 616 的任意组合。芯片组 612 可以在 CPU102、 存储 器设备 120、 存储设备 126、 图形子系统 614、 应用 128、 和无线电 616 之间提供相互通信。例 如, 芯片组 612 可包括能够提供与存储设备 126 的相互通信的存储适配器 (未示出) 。 0057 处理器 102 可以实现为复杂指令集计算机 (CISC) 或精简指令集计算机 (RISC)。
47、 处 理器、 x86 指令集兼容处理器、 多核, 或任何其他微处理器或中央处理单元 (CPU) 。在一些实 施例中, 处理器 102 包括双核处理器 (多个) 、 双核移动处理器 (多个) 等等。 0058 存储器 120 可以实现为易失性存储器设备, 诸如, 但不限于, 随机存取存储器 (RAM) 、 动态随机存取存储器 (DRAM) 或静态 RAM(SRAM) 。存储设备 126 可以实现为非易失 性存储设备, 诸如, 但不仅限于, 磁盘驱动器、 光盘驱动器、 磁带驱动器、 内部存储设备、 附连 的存储设备、 闪存、 电池备份的 SDRAM(同步 DRAM) , 和 / 或网络可访问的存储。
48、设备。在各实 说 明 书 CN 103577269 A 10 8/11 页 11 施例中, 存储设备 126 包括例如当包括多个硬盘驱动器时, 用于提高存储器性能或对有价 值的数字媒体的增强保护的技术。 0059 图形子系统 614 可以对诸如静止图像或视频之类的图像执行处理, 供显示。图形 子系统 614 可以包括例如图形处理单元 (GPU) , 诸如 GPU104 (图 1) 、 或视觉处理单元 (VPU) 。 模拟或数字接口可以被用来通信地耦合图形子系统614和显示器604。 例如, 接口可以是高 清晰度多媒体接口、 DisplayPort、 无线 HDMI, 和 / 或符合无线 HD 。
49、的技术中的任何一个。图 形子系统 614 可以被集成到 CPU102 或芯片组 612 中。可选地, 图形子系统 614 可以是通信 耦合到芯片组 612 的独立卡。 0060 此处所描述的图形和 / 或视频处理技术可以以各种硬件体系结构来实现。例如, 图形和 / 或视频功能可以集成在芯片组 612 内。可选地, 可以使用分立的图形和 / 或视频 处理器。作为再一个实施例, 图形和 / 或视频功能可以通过通用处理器 (包括多核处理器) 来实现。在又一实施例中, 功能可以在消费电子设备中实现。 0061 无线电 616 可以包括能够使用各种合适的无线通信技术传输和接收信号的一个 或多个无线电。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括 无线局域网 (WLAN) 、 无线个域网 (WPAN) 、 无线城域网 (WMAN) 、 蜂窝网络, 以及卫星网络。在 跨这样的网络的通信中, 无线电 616 可以根据任何版本的一个或多个适用的标准来操作。 0062 显示器 604 可包括任何电视机类型的监视器或显示器。例如, 显。