分享
基于RISC-V的FFmpeg多媒体算法库优化策略_张桢.pdf
下载文档

ID:2367892

大小:1.57MB

页数:8页

格式:PDF

时间:2023-05-10

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 RISC FFmpeg 多媒体 算法 优化 策略
第 49卷 第 4期2023年 4月Computer Engineering 计算机工程基于 RISCV的 FFmpeg多媒体算法库优化策略张桢1,2,梁军1,贾海鹏2,张云泉2,李青1(1.北京联合大学 北京市信息服务工程重点实验室,北京 100101;2.中国科学院计算技术研究所 计算机体系结构国家重点实验室 北京 100190)摘要:RISC-V 处理器的广泛应用使得 FFmpeg多媒体算法库在 RISC-V 平台上的高性能实现日益重要。提出一种基于 RISC-V 架构的系列优化策略,针对开源音视频多媒体 FFmpeg算法库中不同特征和计算密度的算法,利用 RISC-V 指令集的扩展性对算法库中某些耗时的算法进行指令加速和并行优化。在深入研究 RISC-V 开源架构的基础上,构建一个基于 RISC-V开源架构的高性能 FFmpeg算法库。针对不连续访存类算法、数据依赖类算法、数据快速转换类算法,从向量单元配置、向量化访存、汇编优化、指令流水优化 4个方面出发,大幅提升 FFmpeg算法库在 RISC-V 处理器上的性能。实验结果表明,采用以上优化策略后的 FFmpeg算法库在基于 RISC-V 架构的 XT-910芯片上的性能得到明显提升,其中的不连续访存类算法、数据依赖类算法、数据快速转换类算法的加速比分别为8.20、3.67、3.62。关键词:开源指令集架构;FFmpeg多媒体算法库;向量化访存;汇编优化;指令流水优化开放科学(资源服务)标志码(OSID):中文引用格式:张桢,梁军,贾海鹏,等.基于 RISC-V的 FFmpeg多媒体算法库优化策略 J.计算机工程,2023,49(4):159-165,173.英文引用格式:ZHANG Z,LIANG J,JIA H P,et al.Optimization strategy of FFmpeg multimedia algorithm library based on RISC-V J.Computer Engineering,2023,49(4):159-165,173.Optimization Strategy of FFmpeg Multimedia Algorithm Library Based on RISC-VZHANG Zhen1,2,LIANG Jun1,JIA Haipeng2,ZHANG Yunquan2,LI Qing1(1.Beijing Key Laboratory of Information Service Engineering,Beijing Union University,Beijing 100101,China;2.State Key Laboratory of Computer Architecture,Institute of Computing Technology,Chinese Academy of Sciences,Beijing 100190,China)【Abstract】The widespread application of RISC-V processors has made the high-performance implementation of FFmpeg multimedia algorithm library on the RISC-V platform increasingly important.This study proposes a series of RISC-V architecture-based optimization strategies aimed at algorithms with different characteristics and computational densities in the open source audio and video multimedia FFmpeg algorithm library and uses the extensibility of the RISC-V instruction set to accelerate and optimize the instructions of few time-consuming algorithms in the library.Based on an in-depth study of the RISC-V open source architecture,a high-performance FFmpeg algorithm library based on RISC-V is built.The performance of the FFmpeg algorithm library on RISC-V processors is significantly improved with the aim of discontinuous memory retrieval,data dependency,and fast data conversion algorithms in four aspects:vector unit configuration,vectorized memory access,assembly optimization,and instruction pipeline optimization.The experimental results show that adoption of the aforementioned optimization strategy significantly improved the performance of the FFmpeg algorithm library on the XT-910 chip based on RISC-V architecture,and the speedup ratios of the discontinuous memory access,data dependency,and data fast conversion algorithms are 8.20,3.67,and 3.62,respectively.【Key words】open source Instruction Set Architecture(ISA);FFmpeg multimedia algorithm library;vectorized memory access;assembly optimization;instruction pipeline optimizationDOI:10.19678/j.issn.1000-3428.0063495基金项目:国家自然科学基金(61972376);北京联合大学科研项目(ZK50202002)。作者简介:张桢(1996),男,硕士研究生,主研方向为并行算法优化;梁军(通信作者),教授;贾海鹏,高级工程师、博士;张云泉,研究员、博士;李青,副教授、博士。收稿日期:2021-12-09 修回日期:2022-02-19 Email:先进计算与数据处理文章编号:1000-3428(2023)04-0159-07 文献标志码:A 中图分类号:TP3912023年 4月 15日Computer Engineering 计算机工程0概述 RISC-V是一种基于精简指令的开源指令集架构(Instruction Set Architecture,ISA),通过开放标准协作能够加速处理器创新,其可扩展性和模块化使RISC-V处理器能得以定制和优化。GNU、GCC、GDB、LLVM等相关工具链的日趋成熟,提高了软件表现能力,并降低了软件开发成本,因此基于RISC-V的处理器急需构建与之相适应的基础软件生态。RISC-V 包括标准基础的 ISA 以及其他多个扩展,例如 M(整数乘法和除法的标准扩展)、F(单精度浮点的标准扩展)和 V(向量运算的标准扩展)。V 扩展中有单指令多数据(Single Instruction Multiple Data,SIMD)ISA 集。SIMD是一次能对多条数据进行操作的指令,能显著提高性能表现。如今主流的指令集架构都将推出SIMD扩展指令集,例如ARM架构下所支持的NEON指令集、Intel架构下所支持的SSE指令集、RISC-V架构下所支持的 V拓展指令集。FFmpeg是一个功能强大的开源多媒体算法库,不仅支持多种传输协议、媒体格式以及视频/音频编码标准,而且能有效解决对广泛的媒体数据格式解析的困难,可以满足实时视频/音频解析的要求1。由于音视频传输必须进行编解码操作,对音视频转码的性能优化可以降低计算成本,减少算力资源的浪费。FFmpeg 算法库采用的是主库调用各个模块算法库的模式,各模块内部进行各种具体格式的实现,对外提供统一的调用方法,这样主程序调用时不用关注具体实现方式,只需要调用相关的函数即可。本文基于RISC-V架构对FFmpeg算法库优化策略进行研究,通过向量单元配置消除访存中不连续访存寻址、向量化访存、汇编优化及指令流水优化,从而对FFmpeg算法库的6个模块、700多个API函数进行优化,克服算法库的性能瓶颈,提升算法性能,并构建一个基于 RISC-V的高性能 FFmpeg算法库。1相关研究 相比X862、ARM3、MIPS4、PowerPC、SPARC5-7、openRISC等指令集架构以及目前流行的 GPU 和 DSP 下的其他 ISA指令集架构,RISC-V 指令集架构仍处于起步阶段。但是,许多基于 RISC-V 架构的研究已经取得部分进展。加州大学伯克利分校发布了能够启动 Linux 的有序 Rocket 内核、无序 BOOM 内核 和开源设计生成器工具8。近年来,NVIDIA 公司也使用 RISC-V 指令集架构作为 GPU 中的 Falcon 控制器9。文献 10 在 RISC-V指令集架构的双核处理器上集成了一个RISC-V自定义矢量加速器,该加速器的能效比 IBM Blue Gene/Q 处理器高 1.8 倍,比 IBM Cell 处理器高 2.6 倍。文献 11 通过将硬件框架与RISC-V架构的微体系结构相结合,使软件层能够保护敏感数据,并将元数据存储开销减少了75%。文献 12 探索了一种支持 RISC-V浮点指令的浮点协处理器架构,在 现场 可 编 程 门 阵 列(Field Programmable Gate Array,FPGA)上 观 察 到 单 精 度 浮 点 运 算 的 系 统 频 率 为240 MHz,双精度浮点运算的系统频率为 180 MHz。文献 13 开发了一组面向 RISC-V 32IMFC 的 ISA 扩展,该拓展支持 8 位和两种 16 位浮点数类型的标量和 SIMD 操作。文献 14 提出“香山”处理器核,该处理器核立足于中国科学院大学“一生一芯”计划,致力于建立一个既能被工业界广泛应用、又能支持学术界试验创新想法的开源 RISC-V 核主线。文献 15 为 IToF 传感器设计了一款基于 RISC-V 指令集的极低功耗专用处理器,处理器在 FPGA 上的资源使用率上分别比在蜂鸟 E203 和 PULPissimo 模拟平台上的资源使用率减少了 5.2%和 10.9%。文献 16 设计一种基于开源RISC-V指令集的32位可综合乱序处理器,实验结果表明,与ARM CortexM3处理器在同等条件下进行对比,该处理器的系统面积减少64%,功耗降低0.57 mW,可适用于小面积低功耗的嵌入式领域。文献 17 基于软硬件协同设计思想,构建包含RISC-V处理器的SoC系统,将该SoC系统部署在 Xilinx ZCU102开发板上,令 RISC-V处理器和卷积加速器分别在 100 MHz和 300 MHz频率下工作,测试 结 果 表 明,该 加 速 器 的

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开