摘要
在龙芯平台多媒体指令优化过程中,通常用浮点存取指令存取需并行计算的整数.若这些整数存放在非自然对齐的内存地址上,会导致优化函数的性能显著下降.为了保证优化函数在访问非对齐数据时也有同样的性能,本文采用龙芯通用指令中的非对齐存取指令实现多媒体指令对非对齐数据的存取需求.非对齐存取指令是成对使用的,两条非对齐存取指令的处理时长大概是单条浮点存取指令的五倍左右,故需要合理安排非对齐存取指令的使用.基于此,本文先设计了龙芯平台上64位的非对齐访存函数接口,同时保留现有访存接口;然后设计接口自适应择优算法,用以根据程序上下文灵活选取这些访存接口;最后对LibYUV库的优化函数应用接口自适应择优算法进行测试.结果表明,在数据非对齐时,多媒体指令优化函数出现性能提升比例较小甚至普遍下降的情况;而使用接口自适应择优算法后,所有优化函数平均保持近40%的性能提升比例.
-
单位电子信息工程学院; 安徽大学