小编Gav*_*ood的帖子

用于AVX加载/存储指令的Intel broadwell uop fusion

我正在尝试为内存限制的矢量化循环确定性能基线.我是在具有AVX2指令的Intel Broadwell芯片上在32字节对齐环境中执行此操作.

基线循环一次使用8个YMM寄存器从一个位置加载并且非时间存储到另一个位置:

%define ptr
%define ymmword yword
%define SIZE 16777216*8 ;; array size >> LLC

align 32                ;; avx2 vector alignement

global _ls_01_opt

section .text

_ls_01_opt:             ;rdi is input, rsi output
  push rbp
  mov rbp,rsp

  xor rax,rax

  mov ebx, 111          ; IACA PREFIX
  db 0x64, 0x67, 0x90   ; 

  LOOP0:
    vmovapd ymm0, ymmword ptr [  (32) + rdi +8*rax]
    vmovapd ymm2, ymmword ptr [  (64) + rdi +8*rax]
    vmovapd ymm4, ymmword ptr [  (96) + rdi +8*rax]
    vmovapd ymm6, ymmword …
Run Code Online (Sandbox Code Playgroud)

assembly intel avx avx2 iaca

3
推荐指数
1
解决办法
301
查看次数

标签 统计

assembly ×1

avx ×1

avx2 ×1

iaca ×1

intel ×1