14得票2回答
使用Intel SSE内置函数进行向量化以优化代码

这是我第一次使用SSE指令集。我试图将一个简单的代码转换为使用英特尔SSE内置函数(支持到SSE4.2)的更快版本。但我似乎遇到了许多错误。 代码的标量版本如下:(简单矩阵乘法) void mm(int n, double *A, double *B, double *C) ...

13得票3回答
SSE乘法16 x uint8_t

我想使用SSE4来对一个__m128i对象中的16个无符号8位整数进行乘法运算,但我发现只有针对16位整数的内置函数。是否没有像_mm_mult_epi8这样的函数?

13得票2回答
为多个SIMD架构生成代码

我写了一个库,在其中使用CMake来验证MMX、SSE、SSE2、SSE4、AVX、AVX2和AVX-512的头文件是否存在。除此之外,我还会检查指令是否存在,如果存在,就添加必要的编译器标志,如 -msse2 -mavx -mfma 等。 这一切都很好,但我想部署一个单一的二进制文件,可以...

12得票2回答
MOVDQU指令+页面边界

我有一个简单的测试程序,使用movdqu指令加载xmm寄存器,在页面边界访问数据(操作系统= Linux)。 如果以下页面已映射,则可以正常工作。 如果没有映射,则会收到SIGSEGV信号,这可能是预期的。 然而,这大大降低了不对齐负载的实用性。 此外,支持非对齐内存引用的SSE4.2指令...

11得票1回答
__popcnt()和_mm_popcnt_u32()有什么区别?

MS Visual C++支持在带有SSE4.2的CPU上使用2种类型的popcnt指令: __popcnt() _mm_popcnt_u32() 我发现唯一的区别是 __popcnt() 的文档标记为“Microsoft Specific”,而 _mm_popcnt_u32() 似乎...

9得票3回答
如何在我的计算机上启用POPCNT指令/内置支持?

我尝试在我的电脑(Fedora 17 32位)上运行以下程序。如何使我的系统支持popcnt指令以实现快速人口统计? #include <stdio.h> #include <nmmintrin.h> int main(void) { int pop = _...

9得票3回答
最佳的SSE无符号8位比较

我正在尝试使用SSE(高达SSE 4.2)找到执行8位无符号比较的最佳方法。 我处理的最常见情况是进行“> 0U”比较。 _mm_cmpgt_epu8(v, _mm_setzero_si128()) // #1 (这当然也可以被视为非零的简单测试。)...

9得票1回答
PTEST能用于测试两个寄存器是否都为零或其他条件吗?

除了测试单个寄存器是否全为零,SSE4.1 ptest 还可以做什么? 你能使用 SF 和 CF 的组合来测试两个未知输入寄存器的任何有用信息吗? PTEST 有什么好处?你可能会认为它适用于检查打包比较(如 PCMPEQD 或 CMPPS)的结果,但至少在英特尔 CPU 上,使用 PTE...

9得票2回答
_mm_crc32_u64定义不清楚。

为什么世界上会这样定义_mm_crc32_u64(...)呢? unsigned int64 _mm_crc32_u64( unsigned __int64 crc, unsigned __int64 v ); “crc32”指令始终累加32位CRC,而不是64位CRC(毕竟是CRC32...

8得票1回答
制作一个Dockerfile,用于编译Tensorflow二进制文件并使用:SSE4.1、SSE4.2和AVX指令。

那么,Docker 的一个目的是为了轻松部署环境以测试软件,对吗?有人能告诉我如何在 Dockerfile 中编译 Tensorflow 二进制文件以使用 SSE4.1、SSE4.2 吗?是否有可能做到这一点? 总之,有两个问题: 是否可能有一个 Dockerfile 来编译 Tenso...