avx相关内容

在具有不同体系结构的群集上应指定哪个AVX和行军?

我目前正在尝试使用Intel编译器来编译用于HPC-Cluster的软件.登录节点是我编译和准备计算的地方,使用英特尔至强E5-2660 v3 / Intel Xeon Gold 6138 ). 据我从上面的链接了解,我的登录节点支持Intel SSE4.2,Intel AVX,Intel AVX2和Intel AVX-512,但我的计算节点仅支持Intel AVX2(Haswell)或In ..
发布时间:2021-04-12 20:54:36 其他开发

VEX前缀编码和SSE/AVX MOVUP(D/S)指令

我试图了解SSE/AVX指令的VEX前缀编码.所以,如果我问一些简单的问题,请多多包涵.我有以下相关问题. 让我们采用 以下两种指令编码产生相同的结果: db 0fh,10h,00000000b;movups xmm0,xmmword ptr [rax]db 0c5h,11111000b,10h,00000000b;vmovups xmm0,xmmword ptr [rax] ..
发布时间:2021-04-12 20:54:33 其他开发

将带有uint16索引的AVX2字节收集到__m256i中

我正在尝试将__m256i变量与数组中的32个字符组成并由索引指定.这是我的代码: char数组[];//每次都使用不同的数组.uint16_t偏移量[32];//多次重复使用相同的偏移量_mm256_set_epi8(array [offset [0]],array [offset [1]],array [offset [2]],array [offset [3]],array [offse ..
发布时间:2021-04-12 20:54:30 其他开发

AVX/SSE回合向下浮动并返回整数向量吗?

有没有一种方法可以使用AVX/SSE来获取浮点向量,向下舍入并生成整数向量?所有的Floor固有方法似乎都产生最终的浮点向量,这很奇怪,因为舍入会产生整数! 解决方案 SSE可以通过选择截断(向零)或当前舍入模式(通常为IEEE默认模式,最接近将平局符舍入为)从FP转换为整数.像 nearbyint()一样,不像 round()那样,平局决胜负数为-0.如果需要在x86上使用四舍五入模式, ..
发布时间:2021-04-12 20:54:26 C/C++开发

AVX 4位整数

我需要执行以下操作: w [i] =比例* v [i] +点 比例尺和点是固定的,而 v [] 是4位整数的向量. 我需要为任意输入向量 v [] 计算 w [] ,并且我想使用AVX内在函数加快处理速度.但是, v [i] 是4位整数的向量. 问题是如何使用内在函数对4位整数执行运算?我可以使用8位整数并以这种方式执行操作,但是有一种方法可以执行以下操作: [a,b] + ..
发布时间:2021-04-12 20:54:23 C/C++开发

如何在x64 CPU上快速计算sincos?

这是一个熟悉SSE/AVX指令系列的用户以及熟悉其性能分析的用户所面临的一个问题.我看到了许多不同的实现和方法,范围从 SSE2较旧到较新的.网络充斥着这样的链接.但是就我个人而言,我在sse组装分析方面没有丰富的经验.有些人指出了微指令,缓存,这需要一些低级的知识.因此,我要求您提供一些提示和您的个人经历.如果您有时间展开一些比较,那么您将了解“什么是最快的"以及为什么选择了什么方法.实现可能不 ..
发布时间:2021-04-12 20:54:17 其他开发

出于测试目的禁用CPU中的AVX2

我有一个需要AVX2正常运行的应用程序.已实施检查以在应用程序启动期间检查CPU是否具有AVX2指令.我想检查它是否正常工作,但是我只有具有AVX2的CPU.有没有一种方法可以暂时将其关闭以进行测试?还是以某种方式模仿其他CPU? 解决方案 是的,请使用 ..
发布时间:2021-04-12 20:54:11 其他开发

打包和解包以及扩展打包数据是什么

我已经遍历了 Intel Intrinsics ,并且每个函数都对整数或打包或未打包或扩展打包的float或double. 似乎应该在互联网上的某个地方回答这个问题,但我根本找不到答案. 那是什么包装物? 解决方案 好吧,我一直在寻找相同问题的答案,但是也没有成功.所以我只能猜测. 英特尔已经在其MMX技术中引入了打包和标量指令.例如,他们引入了一个功能 __ m64 ..
发布时间:2021-04-12 20:53:59 其他开发

比较AVX/AVX2中的两个向量(c)

我有两个 __ m256i 向量(每个向量都包含字符),我想找出它们是否完全相同.如果所有位都相等,我需要的是 true ,否则是 0 . 最有效的方法是什么?这是加载数组的代码: char * a1 ="abcdefhgabcdefhgabcdefhgabcdefhg";__m256i r1 = _mm256_load_si256((__ m256i *)a1);char * a2 = ..
发布时间:2021-04-12 20:53:56 其他开发

霓虹灯vuzp的sse/avx等效项

Intel的向量扩展名SSE,AVX等为每种元素大小提供了两个解压缩操作,例如SSE内在函数是 _mm_unpacklo _ * 和 _mm_unpackhi _ * .对于向量中的4个元素,它将执行以下操作: 输入:(A0 A1 A2 A3)(B0 B1 B2 B3)unpacklo/hi:(A0 B0 A1 B1)(A2 B2 A3 B3) 相当于解压缩的是ARM NEON指令集中的 v ..
发布时间:2021-04-12 20:53:53 其他开发

Ubuntu-如何判断CPU应用程序当前是否正在使用AVX或SSE?

我目前在具有GPU的许多服务器上运行BOINC. 服务器同时运行GPU和CPU BOINC应用程序. 由于AVX和SSE在CPU应用程序中使用时会降低CPU频率,因此我必须选择同时运行哪个CPU/GPU,因为某些GPU应用程序会像其他应用程序那样瓶颈(运行时间完成较慢)不是. 目前,某些CPU应用已被命名,因此可以清楚地看到它们是否使用了AVX,但大多数都没有. 因此,有什 ..
发布时间:2021-04-12 20:53:50 其他开发

基于比较的条件SSE/AVX加或零元素

我有以下 __ m128 个向量: v_weight v_entropy 仅当 v_weight 中的元素不为0f时,我才需要向 v_weight 中添加 v_entropy . 很显然, _mm_add_ps()会添加所有元素. 我最多可以编译AVX,但不能编译AVX2. 编辑 我确实知道 v_weight 中有多少个元素将为0(总为0或最后的1、2或3 ..
发布时间:2021-04-12 20:53:44 其他开发

使用SSE/AVX/AVX2检查__m128i的所有字节是否匹配单个字节

我正在寻找有效的方法来计算以下函数: 输入: __ m128i数据,uint8_t输入; 输出:布尔值,指示 data 中的任何字节是否在 in 中. 我实际上是在使用它们为容量为8的字节实现时空有效的堆栈.我最有效的解决方案是首先计算一个 __ m128i tmp ,所有字节均作为 in .然后检查 tmp \ xor数据中的任何字节是否为零字节. 解决方案 是的,AV ..
发布时间:2021-04-12 20:53:38 其他开发

编写std :: copysign的便携式SSE/AVX版本

我目前正在使用SSE和AVX内部函数编写矢量化版本的QR分解(线性系统求解器).子步骤之一需要选择与另一个值相反/相等的值的符号.在串行版本中,我为此使用了std :: copysign.现在,我想为SSE ​​/AVX寄存器创建一个类似的功能.不幸的是,STL为此使用了内置函数,因此我不能只复制代码并将其转换为SSE ​​/AVX指令. 我还没有尝试过(所以现在没有代码可显示),但是我的简 ..
发布时间:2021-04-12 20:53:35 C/C++开发

Linux上的AVX分段错误

我正在尝试运行此代码,并且在运行该代码时显示分段错误.它编译良好.这是代码.(在Windows上可以正常工作.) #include#include#includeconst int size = 1000000;std :: vector A(size);std :: vectorfloatB(size);std ..
发布时间:2021-04-12 20:53:32 服务器开发