问题标签 [sse4]
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.
assembly - PTEST 可以用来测试两个寄存器是否都为零或其他条件吗?
除了测试单个寄存器是否全零之外,您还能用SSE4.1做什么?ptest
你能结合使用 SF 和 CF 来测试关于两个未知输入寄存器的有用信息吗?
PTEST 有什么用?您会认为检查打包比较的结果(如 PCMPEQD 或 CMPPS)会很好,但至少在英特尔 CPU 上,使用 PTEST + JCC 进行比较和分支的成本比使用 PMOVMSK(B /PS/PD) + 宏融合 CMP+JCC。
python - 在 Windows 10 上从 Sources 安装 TensorFlow
我已经安装了 tensorflow-gpu,它工作正常。
鉴于我的系统配置如下,我现在想从源代码安装 tensorflow-gpu 以利用 AVX 和 SSE4.2-1.0 指令集;
- CPU : Dual Intel Xeon E5 2670, Sandy Bridge-EP/EX,Revision C2,Instructions MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, Intel 64, NX, VMX, AES, AVX
- 显卡:EVGA SC NVIDIA GeForce GTX 1060 3GB
- 主板:泰安S7066WGM3NR,版本R1.0
- 内存:32 GB 八通道 DDR3 666 MHz
- 操作系统:Windows 10 Pro 64 位
tensorflow 网站(https://www.tensorflow.org/install/install_sources)、youtube上的视频和 stackoverflow 上的其他问题更面向 linux,即便如此,对于像我这样的新手来说也不是直截了当的。
谁能指导我在 Windows 10 上从源代码安装 tensorflow-gpu 的过程?
请随时询问其他系统信息或类似信息。
谢谢你。
c - 内置 pcmpistri 在 gcc 中不起作用
我正在尝试编写一个利用 GCC 内在函数的 SSE4.2 新指令的strcmp版本。
这是我到目前为止的代码:
它应该打印第一个不同字节的索引,但它总是打印 0。
我已经尝试调试它几个小时,直到我在生成的程序集中看到它:
根据Wikibooks,如果输出索引的指令(就像pcmpistri
我尝试使用的那样),结果将保存在ECX
寄存器中,但是,如果我没记错的话,紧随其后的指令pcmpistri
会用EAX
!
我认为这可能是让我发疯的错误,但我没有组装经验,我可能错了。
有人遇到这个问题吗?有谁知道如何解决这个问题?
我已经尝试在 Ubuntu 16.04(实际上是 Windows 上的 bash)下使用 GCC 5.4 和 6.2-O0
和-O1
(-O2
显然-msse4.2
)。
让我觉得这是一个 GCC 错误的原因是,从 Visual Studio 2017 编译的类似代码 undex MSVC 可以正常工作:
gcc - 为多个 SIMD 架构生成代码
我编写了一个库,在其中使用 CMake 来验证 MMX、SSE、SSE2、SSE4、AVX、AVX2 和 AVX-512 的标头是否存在。除此之外,我检查指令是否存在,如果存在,我添加必要的编译器标志,-msse2 -mavx -mfma 等。
这一切都很好,但我想部署一个二进制文件,它适用于多代处理器。
问题:是否可以告诉编译器 (GCC),每当它使用 SIMD 优化函数时,它必须为体系结构列表生成代码?当然还要引入高层分支
我的想法类似于编译器如何为函数生成代码,其中输入指针是 4 或 8 字节对齐的。为了防止这种情况,我使用__builtin_assume_aligned
宏。
什么是最佳实践?多个二进制文件?命名?
assembly - 对于 memcmp,SSE4.2 字符串指令比 SSE2 快多少?
这是我的代码的汇编程序
你能把它嵌入c ++并检查SSE4吗?在速度
我很想看看如何步入SSE4的发展。还是根本不担心他?让我们检查一下(SSSE3以上我没有支持)
docker - 制作一个 Dockerfile 来编译 Tensorflow 二进制文件以使用:SSE4.1、SSE4.2 和 AVX 指令
那么,docker 的优势之一就是可以轻松地部署一个环境来测试软件,对吧?谁能告诉我如何编译一个 Tensorflow 二进制文件以使用:SSE4.1、SSE4.2 on a docker 文件?任何人都可以指出我这样做的 docker 文件吗?如果有可能吗?
总结一下,有两个问题:
- 是否有可能有一个 docker 文件来编译 Tensorflow 二进制文件以使用:SSE4.1、SSE4.2(和 GPU,我只找到了其中一个)
- 你能告诉我在哪里可以找到一个可以做到这一点的 docker 文件或一个好的教程吗?
“这个问题的目的是避免以下情况:主机设置工作但 docker 设置不起作用,因为 Tensorflow 没有以特定方式编译。” 就像下图一样。
x86 - 支持 SSE4 的处理器是否支持 SSSE3 指令?
我正在开发一个需要 SSSE3 指令集的硬件平台。在查看诸如 Intel Atom® x5-Z8350 之类的处理器时,数据表显示它支持 SSE4.1 和 SSE4.2。这会允许为 SSSE3 指令编写的软件运行吗?
我相信这个问题与这个问题略有不同,因为它从未明确表示 SSE4 是 SSSE3 的超集。它只说 AVX 是一个超集。
x86 - 如何更改 VirtualBox 为来宾操作系统模拟的 CPU 指令集,例如禁用 SSE4.2 指令集?
我想要实现的是禁用 VirtualBox 为我的 Linux 客户操作系统模拟的 CPU 的 SSE4.2 指令集以进行调试,即使真正的 CPU 支持 VirtualBox 所基于的 SSE4.2 指令集。我参考了 VirtualBox 手册页,有几个命令可能与这个问题有关:
上面的命令不起作用。
上面的命令可以用来dumps the CPUID parameters for the host CPUs. This can be used for a more fine grained analyis of the host's virtualization capabilities.
输出为:
我知道输出可能与CPUID X86 指令密切相关,但我仍然无法弄清楚这些Leaf no. EAX EBX ECX EDX
行的含义。这些行与CPUID
指令的输出有什么关系?我认为只有知道这些行与CPUID
指令输出的关系,才能正确使用以下命令:
上面的命令是我所知道的唯一可能实现我的目标的方法,那么, 的输出VBoxManage list hostcpuids
、内容后面的内容Leaf no. EAX EBX ECX EDX
和CPUID
指令的输出之间的关系是什么?即使真正的 CPU 支持 VirtualBox 所基于的 SSE4.2 指令集,如何禁用 VirtualBox 为我的 Linux 客户操作系统模拟的 CPU 的 SSE4.2 指令集?会VBoxManage modifyvm --cpuid <leaf> <eax> <ebx> <ecx> <edx>
实现我的目标吗?如果您有任何其他方法可以实现这一目标,请告诉我。
x86-64 - _mm_cmpgt_epi64 内在函数是如何工作的
我正在使用_mm_cmpgt_epi64
内在函数来实现 128 位加法,然后是 256 位加法。看着这个内在的东西的结果让我感到困惑。
我不明白为什么计算的掩码是这样的。
这是我的调试器中的输出:
对于第一个 64 位通道 ( 63:0
) 我没问题。但是为什么第二条车道 ( 127:64
) 也没有满呢?
在我看来0x8000000000000000
> 0x7fffffffffffffff
。
c++ - 如何让 gcc 使用 SSE4.1 pminuq/pminud/etc 操作码对代码进行矢量化?
我一直在使用优秀的 godbolt.org 来确定 gcc 做什么和不矢量化:但我无法找到任何方法让它将 min(X,Y) 函数矢量化为 PMINUQ 等。
查看 gcc 源代码中的 sse.md 机器描述语言文件,我可以在第 12355 行之前看到一个提到 p<maxmin_int><ssemodesuffix> 的块,在我看来它应该输出 PMINUQ 等。所以我可以'看不出为什么用 -msse4 -msse4.1 为这种模式编译不应该只是工作的任何理由。
然而,这部分 md 里面也有一个“&&”行,这似乎 (?) 暗示这个操作码只适用于 AVX 风格的宽目标。
所以,我无法判断这是否是硬件限制、编译器/md 错误、-msse4.1 的 godbolt.org 问题,或者完全是其他原因。谁能帮我缩小一下范围?
godbolt.org 告诉我我得到...
...当我希望...