gpt4 book ai didi

c - 使用 SSE 将 4 个 float 乘以 4 个 float 的最有效方法是什么?

转载 作者:行者123 更新时间:2023-12-04 20:05:50 29 4
gpt4 key购买 nike

我目前有以下代码:

float a[4] = { 10, 20, 30, 40 };
float b[4] = { 0.1, 0.1, 0.1, 0.1 };
asm volatile("movups (%0), %%xmm0\n\t"
"mulps (%1), %%xmm0\n\t"
"movups %%xmm0, (%1)"
:: "r" (a), "r" (b));

首先我有几个问题:

(1) 如果我要在 16 字节边界上对齐数组,它会起作用吗?由于数组是在堆栈上分配的,所以对齐它们几乎是不可能的吗?

查看此帖子的选定答案:Are stack variables aligned by the GCC __attribute__((aligned(x)))?

(2) 是否可以重构代码以提高效率?如果我将两个 float 组而不是一个都放在寄存器中会怎么样?

谢谢

最佳答案

用C写,使用

gcc -S -mssse3

如果你有一个相当新的 gcc 版本。

关于c - 使用 SSE 将 4 个 float 乘以 4 个 float 的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1227249/

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