问题标签 [sse3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
414 浏览

c++ - 编译没有 sse3 的 gnu 程序

我正在为架构不支持 sse2 以外的 sse 的设备编译一个应用程序,并且想知道是否可以从 GNU autoconf 生成的配置脚本中禁用使用 sse3 指令进行编译?我知道您可以使用 mno-sse3 选项在 gcc/g++ 中将其关闭,但如果我可以在配置级别将其关闭而不是生成 make 文件然后手动插入该编译器标志,那就太好了...

0 投票
1 回答
718 浏览

atomic - _mm_mwait 是如何工作的?

如何_mm_mwaitpmmintrin.h工作?(我的意思不是它的 asm,而是行动以及如何在 NUMA 系统中采取这种行动store监控很容易在基于总线的 SMP 系统上实现,并具有总线侦听功能。)

什么处理器实现它?

它用于某些自旋锁吗?

0 投票
2 回答
4262 浏览

visual-studio-2008 - 如何在 Visual Studio 2008 中启用 SSE3/SSE4.1 指令集?

我试图遵循:

项目 > 属性 > 配置属性 > C/C++ > 代码生成 > 启用增强指令集

但我得到的唯一选择是 - SSE 或 SSE2。

谢谢。

0 投票
1 回答
212 浏览

c++ - 真正基础的 SSE

我有一个非常简单的程序,我正在尝试提高性能。我知道会有所帮助的一种方法是利用 SSE3(因为我正在工作的机器支持这一点),但我完全不知道如何做到这一点。这是一个代码片段(c++):

我已经阅读了一些关于这个的内容,并且理解了这个想法,但我完全不知道如何实现这个。有人可以帮我吗?我认为这相当简单,尤其是对于我的简单程序,但有时入门是最难的部分。

谢谢!

0 投票
3 回答
25354 浏览

c++ - SSE 指令集未启用

我遇到了这个错误:“SSE 指令集未启用”。我怎么能弄清楚这个?

我有ACER i7,Ubuntu 11.10,请问有人可以帮助我吗?

任何帮助将不胜感激!


也在运行:

给出:

实际上我试图安装gazebo-1.0.0-RC2-x86_64,并得到这个错误。


我的 cmakefile 中已经有了这个选项

0 投票
1 回答
1125 浏览

sum - _m128 向量的四个 32 位元素之和

我正在使用内在函数来优化我的程序。但现在我想将 __m128 向量中的四个元素相加,以便将结果与浮点值进行比较。例如,假设我有这个 128 位向量:{a, bc, d}。如何将 a+b+c+d 与 e 进行比较,其中 e 的类型为 float ?

SSE2 或 SSE3 是否提供了一种简单的方法,或者您有任何可以帮助我的代码片段吗?谢谢 !

0 投票
3 回答
5751 浏览

x86 - 在 Intel 上使用 SSE2 减少无符号字节的总和而不溢出

我试图在 Intel i3 处理器上找到 32 个元素(每个 1 字节数据)的总和减少。我这样做了:

但是,它需要更多时间,因为我的应用程序是一个需要更少时间的实时应用程序。请注意,最终总和可能超过 255。

有没有一种方法可以使用低级 SIMD SSE2 指令来实现?不幸的是,我从未使用过 SSE。为此,我尝试搜索 sse2 函数,但它也不可用。(sse)是否保证减少这种小型问题的计算时间?

有什么建议么??

注意:我已经使用 OpenCL 和 CUDA 实现了类似的算法,并且效果很好,但仅在问题规模很大时才有效。对于小型问题,开销成本更高。不确定它如何在 SSE 上运行

0 投票
2 回答
6546 浏览

c - 使用英特尔 SSE 内在函数优化代码以进行矢量化

这是我第一次使用 SSE 内在函数。我正在尝试使用英特尔 SSE 内在函数(最高 SSE4.2)将一段简单的代码转换为更快的版本。我似乎遇到了一些错误。

代码的标量版本是:(简单的矩阵乘法)

这是我的版本:我已包含#include <ia32intrin.h>

我哪里错了?我收到几个这样的错误:

mm_vec.c(84):错误:“int”类型的值不能分配给“__m128d”类型的实体 a_i = __mm_load_ps(&A[n*i+k]);

这就是我的编译方式: icc -O2 mm_vec.c -o vec

有人可以帮我准确转换此代码。谢谢!

更新:

根据您的建议,我做了以下更改:

但现在我似乎遇到了分段错误。我知道这可能是因为我没有正确访问数组 A、B、C 的数组下标。我对此很陌生,不知道如何进行。

请帮助我确定处理此代码的正确方法。

0 投票
1 回答
615 浏览

assembly - 我应该在存在 ASM SSSE3 代码的情况下使用 -mssse3 进行编译吗?

我有一个关于在 GCC 上编译 x264 的问题。

x264 具有处理 SSE3 和 SSSE3 等指令集的汇编代码,并且默认情况下在 makefile 中禁用自动矢量化。

我是否应该使用 -mssse3 标志编译它,或者这实际上会导致性能损失?

-mssse3 是否暗示 -msse3 还是 SSE3 与 SSSE3 分开?

0 投票
2 回答
902 浏览

c++ - 使用 SSE 操作时的内存访问冲突

我一直在尝试重新实现一些现有的向量和矩阵类以使用 SSE3 命令,每当我对向量数组执行一系列操作时,我似乎都会遇到这些“内存访问冲突”错误。我对 SSE 比较陌生,所以我从简单开始。这是我的矢量类的全部内容:

所以,还没有发生很多事情,只是一些构造函数、访问器和一个操作。使用我对 SSE 的(诚然有限的)知识,我实现了加法操作,如下所示:

为了快速测试我的新向量类与旧向量类(看看是否值得重新实现整个事情),我创建了一个简单的程序,它生成一个随机的 SSEVector3D 对象数组并将它们添加在一起。没什么太复杂的:

sseVectors变量是一个包含 类型元素的 std::vector SSEVector3D,其组件全部初始化为 和 之间的随机-11

这是我遇到的问题。如果大小sseVectors8,191或小于(我通过大量试验和错误得出的数字),则运行良好。如果大小是8,192或更大,当我尝试运行它时会出现此错误:

信号:SIGSEGV,si_code:0(地址内存访问冲突:0x00000080)

但是,如果我在最后注释掉该打印语句,即使sseVectors大小为 8,192 或更大,我也不会收到错误消息。

我写这个向量类的方式有问题吗?我正在使用 GCC 4.6 版运行 Ubuntu 12.04.1