gpt4 book ai didi

alignment - aarch64 上未对齐 SIMD 加载/存储的性能

转载 作者:行者123 更新时间:2023-12-03 02:00:45 24 4
gpt4 key购买 nike

older answer表示 aarch64 支持未对齐的读/写,并提到了性能成本,但尚不清楚答案是否也只涵盖 ALU 或 SIMD(128 位寄存器)操作。

相对于对齐的 128 位 NEON 加载和存储,aarch64 上未对齐的 128 位 NEON 加载和存储要慢多少(如果有的话)?

是否有针对未对齐 SIMD 加载和存储的单独指令(如 SSE2 的情况),或者已知对齐加载/存储与潜在未对齐加载/存储相同的指令?

最佳答案

根据Cortex-A57 Software Optimization Guide4.6加载/存储对齐部分它说:

The ARMv8-A architecture allows many types of load and store accesses to be arbitrarily aligned. The Cortex-A57 processor handles most unaligned accesses without performance penalties. However, there are cases which reduce bandwidth or incur additional latency, as described below:

  • Load operations that cross a cache-line (64-byte) boundary
  • Store operations that cross a 16-byte boundary

因此,这可能取决于您使用的处理器,无序(A57、A72、A-72、A-75)或有序(A-35、A-53、A-55)。我没有找到任何针对有序处理器的优化指南,但是它们确实有一个硬件性能计数器,您可以使用它来检查未对齐指令的数量是否确实影响性能:

    0xOF_UNALIGNED_LDST_RETIRED Unaligned load-store

这可以与 perf 工具一起使用。

AArch64 中没有针对未对齐访问的特殊说明。

关于alignment - aarch64 上未对齐 SIMD 加载/存储的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45714535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com