页面加载中,请稍候
来源:IC- Lily发布时间:2021-04-07
询问 AI
开发板很酷, BeagleBone®Black(BBB)是最有趣的开发板之一。这种广泛使用的微型电路板价格约为35英镑,启动Linux只需10秒,让任何有兴趣的开发者快速入手。
为此,Imagination公司一直与 BeagleBoard.org®基金会合作,使用户能够从 BBB 中获益。BeagleBone®黑色 (BBB) 板上的主要处理器为Arm®Cortex®A8和PowerVR SGXTM 530 图形处理单元 (GPU),从教育角度来看,开发者可利用标准 OpenGL® ES 2.0 和 Open CL TM1.1 ABI更好地开发应用程序。

PowerVR SGX530 是Imagination最成功的 GPU 设计之一,目前仍被广泛使用中。不过,SGX530 是10年前的设计,并在Open CL成为标准前设计的。尽管如此,Imagination还是在PowerVR SGX530上为OpenCL 1.1提供了支持,鉴于BeagleBone Black的广泛使用,我们重新启动了这项工作,并在这里介绍它。
有一个特定的 BBB 映像 AM3358 Debian 9.12 2020-04-06 4GB SD ImgTec 附带 TI SGX 图形驱动程序和PowerVR SDK 预装。这是探索开放GL和OpenCL的基础。
PowerVR SDK 提供了一些示例,从将三角形绘制为最基本的图形元素(图 1)开始,直至使用顶点和片段着色器来生成更复杂的图像(图 2)。这可用于自学。或者,BBB 也可以用作移动图形入门课程的开发平台。


OpenCL软件包可以在Imagination Technology 大学项目网站(https://university.imgtec.com/)下载。此软件包包含一个构建脚本,该脚本将安装OpenCL 库并修补 PowerVR SDK,仅允许为 BBB 构建 OpenCL 1.1 矩阵示例。
OpenCL 矩阵乘法示例用于教育目的,以了解OpenCL如何在嵌入式平台(如BBB)上运行。要理解的关键点是,在Arm A8和PowerVR SGX530之间传递数据缓冲区以及管理它们之间的数据缓存一致性所隐含的开销。在这段开销时间内,没有有用的处理工作完成,因此可以认为是“浪费”时间。与开销相比,图 3 中显示的处理时间非常大,例如,当 A8在 SGX 处理时释放以执行其他任务时,BBB 上的 OpenCL 变得非常有用。

图3:OpenCL开销和处理时间
使用多个 OpenCL 核来说明如何使用float4 类型(四包 32 位数据值包)上的单指令多重数据 (SIMD) 指令来提高SGX的处理性能。
矩阵乘法示例有助于理解 OpenCL。下一步是在一个真实的示例中使用OpenCL,该示例具有高处理和宽松延迟的正确组合。所选示例是音频播放器应用程序中使用的 ALSA 采样率转换器(SRC)。高处理要求来自 44.1kHz 到48kHz 的上采样,事实上,它是一个播放器,这意味着延迟要求可以放宽。OpenCL 实现适合 ALSA 软件,如图 4 所示,修改libspeexdsp层以调用OpenCL。

图 4:ALSA 软件架构与 libspeexdsp 修改为调用 OpenCL
这个例子是通过运行一个脚本来构建的,这个脚本将下载并修补ALSA包。OpenCL 库是作为C++库提供,因此 ALSA 需要与 g++编译,以确保 OpenCL构造函数/析构函数被正确调用。g++编译器比 GCC 更严格,因此大多数补丁都是为了纠正指针上的类型转换,确保初始化的结构完全初始化,并顺序正确。
要利用 OpenCL,所使用的算法必须完全并行,每个输出样本都执行相同的操作。libspeexdsp中的SRC 算法实际上并没有做到这一点,因为内循环计算的索引值将用于外循环的下一次迭代。这意味着需要对ALSA-SRC算法进行重新分解,以便可以将索引计算步骤从处理循环中析构出并优先实现,从而使处理循环在每次迭代中都是相同的。
由于aplay只是一个回放应用程序,因此可以放宽延迟要求。结果证明这是必要的,因为处理160个样本的标准输入音频缓冲区大小的开销阻止了OpenCL调用的实时执行。缓冲尺寸为 640 个或更多样本,实现了可靠的操作。通过 1600 个样本缓冲区,在A8上运行SRC时的A8负载从55%降低到20%。此 CPU 卸载是在 BBB 上使用 OpenCL 的主要优势,我们希望社区能够找到其他能够提高基于 BBB 系统的性能的使用案例。
OpenCL下载包中的文档更加详细,以帮助读者了解 OpenCL 操作并能够有效地使用它。
新闻来源:Imagination Tech,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-07-22

2026-06-29

2026-06-09