有没有办法在带有 SSE 扩展的 x86 中将四个打包的单精度浮点值转换为四个双字? 最接近的指令是CVTPS2PI ,但它不能在两个 xmm 寄存器上执行,而应作为CVTPS2PI MM, XMM/M64 。 如果我想要像<conversion_mnemonic> XMM, XMM/M ...
有没有办法在带有 SSE 扩展的 x86 中将四个打包的单精度浮点值转换为四个双字? 最接近的指令是CVTPS2PI ,但它不能在两个 xmm 寄存器上执行,而应作为CVTPS2PI MM, XMM/M64 。 如果我想要像<conversion_mnemonic> XMM, XMM/M ...
如果我的理解是正确的, _mm_movehdup_ps(a) 给出了相同的结果 _mm_shuffle_ps(a, a, _MM_SHUFFLE(1, 1, 3, 3)) ? 这两者有性能差异吗? ...
我不知道如何在x86中访问stl向量。 我已经尝试过这样做,但是有一些错误。 我想用SSE语言做同样的事情。 先感谢您! ...
我正在编写一个复杂的仿真程序,它得出的结论是,最耗时的例程是将四个向量(float4)与4x4矩阵相乘的例程。 我需要在几台或多或少旧的计算机上运行该程序。 这就是为什么我尝试在以下代码中检查此类操作的SIMD功能: 我对这种问题的改进有些麻烦。 运行代码时,我得到以下结果(使用- ...
我想知道是否有任何快速方法在音频样本数组上进行24位到16位量化(使用内在函数或asm)。 源格式签署24 le。 更新:管理以完成转换,如下所述: 现在为抖动 - 如何避免量化效应? 任何提示都是受欢迎的。 谢谢 ...
我将以下代码作为程序的一部分,但是当我对其进行编译时,出现以下错误: 代码在哪里: 问题是在这条线 我发现了指令__m128i _mm_cvtsi32_si128(int a)但不幸的是,它仅用于32位元素,而我只有16位元素(大小为8的向量)。 ...
我有一个专为Sandbridge处理器设计的应用程序,使用SSE到AVX,现在我希望在Atom处理器上运行相同的应用程序。 我最近浏览网络以获得对Atom cloverview处理器的内在支持。 它提到的每个地方都支持SSE3。 但这意味着它只支持SSE3或SSE3中包含补充SSE ...
我正在开发一个性能关键型应用程序,它必须移植到Intel Atom处理器,它只支持MMX,SSE,SSE2和SSE3。 我以前的应用程序支持SSSE3以及AVX,现在我想将它降级到Intel Atom处理器(MMX,SSE,SSE2,SSE3)。 当我用此代码替换ssse3指令,特别是_ ...
我试图找到一种方法来将文件读取到带有“间隙”的数组中: 因此,读取的数据位于字节数组buffer的位置buffer[0], buffer[2], .., buffer[2*i] ,而没有任何明显的速度损失。 更具体地说,我想以int方式阅读(即b[0], b[4], ..., b[i ...
我正在使用SSE指令编写程序来乘法和相加整数值。 我使用浮点数执行相同的程序,但是我缺少整数版本的instruccion。 使用浮点数后,完成所有操作后,我将de值返回到常规的浮点数数组中,以执行以下操作: temp4是浮点数*,而temp3是__m128。 问题是我找不到 ...
我有一个使用SSSE3内部命令的代码(注意三S)和运行时检查是否使用它,因此我假设应用程序应该在没有SSSE3支持的CPU上执行。 但是,当使用-mssse3和-O1优化时,编译器还会插入我没有明确调用的SSSE3指令,因此程序崩溃。 有什么方法可以在我明确调用相关的内部函数时启用SSS ...
我正在尝试使用来自的HMMlib库在c ++中处理一些隐藏的马尔可夫代码 我使用的是ubuntu 12.04,带有gcc / g ++ 4.6 我的编译步骤说明是: 这会产生以下错误: 我完全不知道这些错误是什么意思,以及如何解决它们 ...
我最近开始使用ROS,但遇到一个问题。 我需要使用一些需要SSE2,SSE3和SSSE3 CPU扩展的类。 我试图编辑ROS Package的manifest.xml文件,例如 但这没用! 该代码在“ Not-ROS-project”中运行良好,但是在某种程度上,编译器似乎 ...
我一直在尝试重新实现一些现有的向量和矩阵类来使用SSE3命令,每当我对向量数组执行一系列操作时,我似乎遇到了这些“内存访问冲突”错误。 我对SSE比较陌生,所以我一开始就很简单。 这是我的矢量类的全部内容: 所以,还没有进行很多,只有一些构造函数,访问器和一个操作。 使用我(无可否 ...
我有一个关于在GCC上编译x264版本的问题。 x264具有用于处理指令集(例如SSE3和SSSE3)的汇编代码,默认情况下,makefile中禁用了自动矢量化。 我是否仍应使用-mssse3标志对其进行编译,否则可能会导致性能损失? -mssse3隐含-msse3还是SSE3 ...
这是我第一次使用SSE内在函数。 我试图将一段简单的代码转换为使用英特尔SSE内在的更快的版本(直到SSE4.2)。 我好像遇到了一些错误。 代码的标量版本是:(简单矩阵乘法) 这是我的版本:我已经包含了#include <ia32intrin.h> 我哪里 ...
我试图在 Intel i3 处理器上找到 32 个元素(每个 1 字节数据)的总和减少。 我这样做了: 但是,它需要更多时间,因为我的应用程序是一个需要更少时间的实时应用程序。 请注意,最终总和可能会超过 255。 有没有办法可以使用低级 SIMD SSE2 指令来实现这一点? 不幸的是,我从 ...
我正在使用内在函数来优化我的程序。 但是现在我想对__m128向量中的四个元素求和,以将结果与浮点值进行比较。 例如,假设我有这个128位向量:{a,bc,d}。 如何将a + b + c + d与e比较,其中e是float类型? SSE2或SSE3是否提供一种简单的方法来执行此操作 ...
我遇到这个错误的问题: “未启用SSE指令集” 。 我怎么能搞清楚这一点? 我有ACER i7,Ubuntu 11.10,请任何人可以帮帮我吗? 任何帮助将不胜感激! 还运行: sudo cat /proc/cpuinfo | grep flags 得到: fl ...
我有一个非常简单的程序,试图提高性能。 我知道会有所帮助的一种方法是利用SSE3(因为我正在使用的计算机支持此功能),但是我绝对不知道如何执行此操作。 这是一个代码片段(c ++): 我已经阅读了一些,并理解了这个想法,但是我完全不知道如何实现这一点。 有人可以帮我吗? 我认为这 ...