当前位置: 首页 > news >正文

收银系统郑州seo排名工具

收银系统,郑州seo排名工具,宠物出售的网站怎么做,百度推广客户端「发表于知乎专栏《移动端算法优化》」 本节主要介绍基本 SIMD 及其他的指令流与数据流的处理方式#xff0c;NEON 的基本原理、指令以及与其他平台及硬件的对比。 #x1f3ac;个人简介#xff1a;一个全栈工程师的升级之路#xff01; #x1f4cb;个人专栏#xff1a;…「发表于知乎专栏《移动端算法优化》」 本节主要介绍基本 SIMD 及其他的指令流与数据流的处理方式NEON 的基本原理、指令以及与其他平台及硬件的对比。 个人简介一个全栈工程师的升级之路 个人专栏高性能HPC开发基础教程 CSDN主页 发狂的小花 人生秘诀学习的本质就是极致重复! 目录 一、SIMD A. 指令流与数据流 1. SISDSingle Instruction Single Data 2. MISDMultiple Instruction Single Data 3. MIMDMutiple Instruction Mutiple Data 4. SIMTSingle Instruction Multiple Threads B. SIMD 特点及发展趋势 1. SIMD 优势与不足 2. SIMD发展趋势 二、 ARM 的 SIMD 指令集 1. ARM 处理器的 SIMD 支持 - NEON 2. ARM 处理器的 SIMD 支持检查 2.1 编译阶段检查 2.2 运行阶段检查 3. 指令集关系 三、NEON 1. NEON基本原理 1.1 NEON 指令执行流程 1.2 NEON 计算资源 2. NEON指令 2.1 自动矢量化 2.2 NEON汇编 2.3 NEON Intrinsics 四、其他 SIMD 技术 1. 其他平台上的 SIMD 技术 2. 与专用 DSP 对比 四、总结 一、SIMD ARM NEON 是适用于 ARM Cortex-A 和 Cortex-R 系列处理器的一种 SIMDSingle Instruction Multiple Data扩展架构。 SIMD 采用一个控制器来控制多个处理器同时对一组数据又称“数据向量”中的每个数据分别执行相同操作从而实现并行技术。 SIMD 特别适用于一些常见的任务如音频图像处理。大部分现代 CPU 设计都包含了 SIMD 指令来提高多媒体使用的性能。 SIMD 操作示意图 如上图所示标量运算时一次只能对一对数据执行乘法操作而采用 SIMD 乘法指令则一次可以对四对数据同时执行乘法操作。 A. 指令流与数据流 费林分类法根据指令流Instruction和数据流Data的处理方式进行分类可分成四种计算机类型 费林分类示意图 1. SISDSingle Instruction Single Data 机器的硬件不支持任何形式的并行计算所有的指令都是串行执行。单个核心执行单个指令流 , 操作存储在单个内存中的数据 , 每次一个操作。早期的计算机都是SISD机器如冯诺.依曼架构IBM PC机等。 2. MISDMultiple Instruction Single Data 是采用多个指令流来处理单个数据流。由于实际情况中采用多指令流处理多数据流才是更有效的方法因此MISD只是作为理论模型出现没有投入到实际应用之中。 3. MIMDMutiple Instruction Mutiple Data 计算机具有多个异步和独立工作的处理器。在任何时钟周期内不同的处理器可以在不同的数据片段上执行不同的指令也即是同时执行多个指令流而这些指令流分别对不同数据流进行操作。MIMD架构可以用于诸如计算机辅助设计、计算机辅助制造、仿真、建模、通信交换机的多个应用领域。 除了以上模型外由NVIDIA公司生产的GPU引入SIMT体系结构 4. SIMTSingle Instruction Multiple Threads 类似 CPU 上的多线程所有的核心各有各的执行单元数据不同执行的命令是相同的。多个线程各有各的处理单元和 SIMD 共用一个 ALU 不同。 SIMT 示意图 B. SIMD 特点及发展趋势 1. SIMD 优势与不足 优势不足- 效率高 - 适合计算密集型 - 提供专用指令- 适用场景有限 - 功耗高和芯片面积大 - 开发难度大 - 数据对齐要求 2. SIMD发展趋势 以ARM架构下的下一代 SIMD 指令集 SVEScalable Vector Extension可扩展矢量指令为例其是针对高性能计算HPC和机器学习等领域开发的一套全新的矢量指令集。 SVE 指令集中有很多概念与 NEON 指令集类似例如矢量、通道、数据元素等。 SVE指令集也提出了一个全新的概念可变矢量长度编程模型。 SVE 可扩展模型 传统的 SIMD 指令集采用固定大小的向量寄存器例如 NEON 指令集采用固定的 64/128 位长度的矢量寄存器。 而支持 VLA 编程模型的 SVE 指令集则支持可变长度的矢量寄存器。因此允许芯片设计者根据负载和成本来选择一个合适的矢量长度。 SVE 指令集的矢量寄存器的长度最小支持 128 位最大可以支持 2048 位以 128 位为增量。SVE 设计确保同一个应用程序可以在支持不同矢量长度的 SVE 指令机器上运行而不需要重新编译代码。 ARM 在 2019 年便推出了 SVE2以最新的 Armv9 为基础扩充了更多的运算类型以全面替代 NEON同时增加了矩阵相关运算的支持。 二、 ARM 的 SIMD 指令集 1. ARM 处理器的 SIMD 支持 - NEON ARM NEON 单元默认包含在 Cortex-A7 和 Cortex-A15 处理器中但在其他 ARMv7 Cortex-A 系列处理器中是可选的某些实现 ARMv7–A 或 ARMv7–R 架构配置文件的Cortex-A 系列处理器可能不包含NEON单元。 符合 ARMv7 的内核的可能组合有以下四种 NEONVFP有无无无有有五有 因此必须首先确认处理器是否支持 NEON 和 VFP。可以在编译和运行的时候进行检查。 NEON 发展史 2. ARM 处理器的 SIMD 支持检查 2.1 编译阶段检查 检测 NEON 单元是否存在的最简单方法。在 ARM 编译器工具链armccv4.0 及更高版本或 GCC 中检查预定义宏 __ARM_NEON__ 或者 __arm_neon 是否开启。 armasm 等效的预定义宏是 TARGET_FEATURE_NEON。 2.2 运行阶段检查 在运行时检测 NEON 单元需要操作系统的帮助。ARM 架构有意不向用户模式应用程序公开处理器功能。在Linux下/proc/cpuinfo 以可读的形式包含此信息比如 在Tegra带有FPU的双核Cortex-A9处理器 $ /proc/cpuinfo swp half thumb fastmult vfp edsp thumbee vfpv3 vfpv3d16 带有 NEON 单元的 ARM Cortex-A9 处理器 $ /proc/cpuinfo swp half thumb fastmult vfp edsp thumbee neon vfpv3 由于 /proc/cpuinfo 输出是基于文本的因此通常首选查看辅助向量 /proc/self/auxv其包含二进制格式的内核 hwcap可以轻松地在 /proc/self/auxv 文件中搜索 AT_HWCAP 记录以检查 HWCAP_NEON 位4096。 某些 Linux 发行版 ld.so 链接器脚本被修改为通过 glibc 读取 hwcap 并为启用 NEON 的共享库添加额外的搜索路径。 3. 指令集关系 在ARMv7中NEON 与 VFP 指令集具有以下关系 具有 NEON 单元但没有VFP单元的处理器无法在硬件中执行浮点运算。由于 NEON SIMD 操作更有效地执行向量计算因此从 ARMv7 的引入开始VFP 单元中的向量模式操作已被弃用。因此VFP 单元有时也称为浮点单元FPU。VFP 可以提供完全兼容 IEEE-754 的浮点运算ARMv7 NEON 单元中的单精度运算不完全符合 IEEE-754。NEON不能取代 VFP。VFP 提供了一些在 NEON 指令集中没有等效实现的专用指令。半精度指令仅适用于包含半精度扩展的 NEON 和 VFP 系统。在ARMv8中VFP已被NEON取代以上问题如 NEON 并不完全符合 IEEE 754 标准并且有一些指令 VFP 支持而 NEON 不支持的问题已在 ARMv8 中得到解决。 三、NEON NEON 是适用于 ARM Cortex-A 系列处理器的一种128位 SIMD 扩展结构每个处理器核心均有一个 NEON 单元因此可以实现多线程并行的加速效果。 1. NEON基本原理 1.1 NEON 指令执行流程 上图为 NEON 单元完成加速计算的流程图。其中向量寄存器中的每个元素同步执行计算以此来加速计算过程。 1.2 NEON 计算资源 NEON 与 ARM 处理器资源关系 - NEON 单元作为 ARM指令集的扩展使用独立于 ARM 原有寄存器的 64位 或 128 位寄存器进行 SIMD 处理在 64位 寄存器的寄存器文件上运行。 - NEON 和 VFP 单元完全集成到了处理器中并共享处理器资源以进行整数运算、循环控制和缓存。 与硬件加速器相比这显着降低了面积和功耗成本。并且其还使用更简单的编程模型因为NEON 单元使用与应用程序相同的地址空间。 NEON 与 VFP 资源关系 NEON 寄存器与 VFP 寄存器重叠ARMv7 有 32 个 NEON D 寄存器如下图所示。 NEON 寄存器 2. NEON指令 2.1 自动矢量化 向量化编译器可以使用 C 或 C 源代码以一种能够有效使用 NEO N硬件的方式对其进行矢量化。这意味着可以通过编写可移植的 C 代码同时仍然可以获得 NEON 指令所带来的性能水平。 为了帮助矢量化将循环迭代次数设为矢量长度的倍数。GCC 和 ARM 编译器工具链都具有为 NEON 技术启用自动矢量化的选项。 2.2 NEON汇编 对于性能要求特别高的程序手工编写汇编代码是更适合的方式。 GNU 汇编器gas 和 ARM Compile r工具链汇编器armasm都支持 NEON 指令的汇编。 编写汇编函数时需要了解 ARM EABI其定义了如何使用寄存器。ARM嵌入式应用程序二进制接口EABI指定哪些寄存器用于传递参数、返回结果或必须保留指定了除ARM内核寄存器之外的32个D寄存器的使用。下图对寄存器功能进行了总结。 寄存器功能 2.3 NEON Intrinsics NEON intrinsic 函数提供了一种编写 NEON 代码的方法该方法比汇编代码更易于维护同时仍然可以控制生成的 NEON 指令。 内部函数使用与 D 和 Q NEON 寄存器对应的新数据类型。数据类型支持创建直接映射到NEON 寄存器的 C 变量。 NEON intrinsic 函数的编写类似于使用这些变量作为参数或返回值的函数调用。编译器做了一些通常与编写汇编语言相关的繁重工作例如 寄存器分配 代码调度或重新排序指令 intrinsic 缺点 无法让编译器准确输出想要的代码因此在转向NEON汇编代码时仍有一些改进的可能性。 NEON 指令简类型 NEON 数据处理指令可以分为正常指令、长指令、宽指令、窄指令和饱和指令。 以 Intrinsic 的长指令为例  int16x8_t vaddl_s8(int8x8_t __a, int8x8_t __b); - 上面的函数将两个64位的 D 寄存器向量每个向量包含8个8位数字相加生成一个包含8个16位数字的向量存储在128位的Q寄存器中从而避免相加的结果溢出。 四、其他 SIMD 技术 1. 其他平台上的 SIMD 技术 SIMD 处理不是 ARM 独有的下图将其与 x86 和 Altivec 进行了比较。 SIMD 对比 2. 与专用 DSP 对比 许多基于 ARM 的 SOC 中还包含 DSP 等协处理硬件因此可以同时包含 NEON 单元和DSP。相对于 DSPNEON 的特点有 NEONDSP特点- 扩展了ARM 处理器流水线 - 使用 ARM 内核寄存器进行内存寻址- 简易的开发和调试 - SMP 能力。MPCore 处理器中的每个 ARM 内核都有一个 NEON 单元。 - 开源社区和ARM生态系统都提供了广泛的 NEON 工具支持- 与 ARM 处理器并行运行 - 与 ARM 处理器集成度较低。在 DSP 和 ARM 处理器之间传输数据可能会有一些缓存清理或刷新开销。 四、总结 本节主要介绍基本 SIMD 及其他的指令流与数据流的处理方式NEON 的基本原理、指令以及与其他平台及硬件的对比。 期望大家都能有所收获。 未完待续。。。 我的分享也就到此结束啦 如果我的分享也能对你有帮助那就太好了 若有不足还请大家多多指正我们一起学习交流 未来的富豪们点赞→收藏⭐→关注如果能评论下就太惊喜了 感谢大家的观看和支持最后☺祝愿大家每天有钱赚欢迎关注、关注
http://www.hkea.cn/news/14268941/

相关文章:

  • 网站被抄袭怎么办和君网站建设
  • 机关网络 网站 建设wordpress创业
  • 跨境电商网站建设流程图广元建设网站要多少钱
  • 最少的钱怎么做网站app展示网站模板免费下载
  • 网站 技术方案网页设计课程心得体会500字
  • 苏州网站建设问问q778925409强涵寿光做网站
  • 王也踏青图是什么梗seo解释
  • 网站建设费摊销几年网站首图怎么做
  • 做网站需要注意的风险东莞常平中学智慧校园应用中心
  • 做网站费用多少做任务佣金网站源码
  • 洛阳霞光企业网站建设公司wordpress 使用mssql
  • 广东省路桥建设发展有限公司网站国外网站服务器地址
  • 正规的彩票网站怎么做西安防疫今天最新消息
  • 泉州市第一建设有限公司网站泰安网络网站
  • 青岛注册公司网站专题网站建设策划方案
  • 枞阳美好乡村建设办公窒网站免费在线制作图片
  • 朝阳区规划网站wordpress打开3秒
  • 网站制作公司 云南原生多重筛选插件wordpress
  • 网站效果演示学院网站建设情况
  • 网站建设域名网站百度seo推广怎么做
  • 怎么在一个网站做多个页面网站主页设计教程
  • 做科研找论文的网站手机设计图制作软件
  • 成都建设材料二维码网站百度推广如何获取精准的客户
  • 外贸网站google推广怎么查看网站是asp还是php
  • 网站的软文推广自己做了一个网站
  • 网站推广方式推荐网站备案怎样提交管局
  • wordpress 建多站同程旅游
  • 网站 加域名做网站颜色类型是啥
  • 不用备案的网站哪里买软件设计思路
  • ifm网站做啥的常见的网站结构