极术小姐姐 · 2021年09月22日

平行思考:无分支条件式

image.png
这是客座博主Laurence Bank撰写的Arm SIMD系列教程的第一部分。

本文假设你对Arm SIMD(又称Neon)编程有基本了解。SIMD是单指令多数据的首字母缩写,它指的是一组CPU指令,能够在每次操作中处理多条数据。SIMD的目的是通过与 "普通 "指令相比在每个时钟周期处理更多的数据来加速你的算法。程序员通常有必要明确地编写SIMD代码(C的内在因素),以利用其增加的功能。关于Arm Neon编程的更多信息,请看这个优秀的教程。

用Neon内部代码优化C代码

通常,我们需要在主处理循环中测试一个或多个条件。C语言编译器对带有条件语句的矢量循环的能力有限。让我们考虑一个简单的例子。假设我们有一个需要求和的整数列表,但我们需要跳过小于某个最小值的数值。在C语言中,它可能看起来像这样。

作者:Laurence Bank
阅读直达链接:https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/thinking-in-parallel-branchless-conditionals

欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区Arm技术专栏

推荐阅读
关注数
23387
内容数
893
Arm相关的技术博客,提供最新Arm技术干货,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息