intrinsics 相关问题

在编译语言中使用内在函数来使用语言范围之外的特定CPU指令。

如何为MSVC Visual Studio指定目标CPU/架构Haswell?

我有一个程序,大量使用内部命令 _BitScanForward / _BitScanForward64 (又名计数尾随零,TZCNT,CTZ)。 我不想使用内在函数,而是使用

回答 2 投票 0

上交所内在函数atan2

我需要一个非常快的atan2来从sobel值中获取梯度(我正在实现精明的边缘算法。)。有谁知道一个非常快速的实现,最好是内在函数(SIMD)或非常......

回答 2 投票 0

AVX512-FP16 内在函数在发布模式下失败,在调试模式下工作

终于拿到了支持FP16的CPU,想在VS2022中学习AVX512编程。我在 fp16 值上编写了一个简单的 FIR 滤波循环。如果我在调试中编译,一切正常,我得到

回答 1 投票 0

SIMD _mm_store_si128 | _mm_storeu_si128 未正确存储

我有一根绳子 const 有符号 char From[] = { 0b00000000, 0b00000001, 0b00000010, 0b00000011, 0b00000100, 0b00000101, 0b00000110, 0b00000111, 0b00001000, 0b00001001, 0b00001010, 0b000010...

回答 1 投票 0

_mm512_i32scatter_ps 当索引重复时

当您调用 _mm512_i32scatter_ps 并且索引重复时会发生什么?它存储总和吗?它只存储一个吗?是UB吗?我似乎找不到任何关于这种边缘情况的文档,而且我不......

回答 1 投票 0

使用 _mm256_i64gather_pd 时出现段错误

我正在尝试使用 AVX2 提供的收集内在函数,但代码存在分段错误。 双 src[100]; // src初始化在这里 int 索引[10] = { 2, 10, 12, 13, 48, 60, 71, 7...

回答 1 投票 0

高效使用水平 Neon 内在函数

从 ARM Instruction Set Reference 读取,执行水平归约的操作确实将目标值保存在 neon 寄存器中。 然而,内在函数定义和 clang

回答 1 投票 0

如何最有效地将包含 32 个无符号 8 位整数的 __m256i 向量转换为四个 32 位浮点数的 __m256 向量?

如果我有一个包含 32 个无符号 8 位整数的 __m256i 向量,我怎样才能最有效地解包和转换它以便我得到四个 __m256 向量,每个向量包含八个 32 位浮点数? 我想...

回答 0 投票 0

x86 Intrinsic: load 4 float32 with mask

我必须将 __m256 向量存储在 RAM 中,但只能存储偶数元素。 __m256 = {1,2,3,4,5,6,7,8} 存储后,缓冲区有: {2,4,6,8} 我的中央处理器是: 正版英特尔 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 比...

回答 0 投票 0

SIMD 加法指令(任何算术运算)

给定两个任意大小的数组 n 我们要添加(或任何算术运算,如乘法)。 arr = [1,2,3,4,5,6,7,8] brr = [1,2,3,4,5,6,7,8] 我试过给定的代码,但它没有给出正确的输出...

回答 0 投票 0

x86 内在函数:2 个复数浮点向量的乘积

我的输入是 2 个复数浮点向量。两个向量不交错: VecAReal = Are0, Are1, Are2,...Are[N-1] VecAImag = Aim0, Aim1, Aim2,...Aim[N-1] VecBReal = Bre0, Bre1, Bre2,...Bre[N-1] VecBI...

回答 0 投票 0

使用 C 内在函数从一个 ZMM 寄存器中提取四个 XMM 寄存器,反之亦然

在 SSE 和 AVX512 寄存器之间移动数据有一个普遍的问题,但这个问题是关于 C 内在函数的。 有一个内在函数可以将两个 xmm 寄存器插入一个 ymm:__m256 _mm256_set_...

回答 2 投票 0

使用英特尔内在函数将 16 位向量 (__m128i) 拆分为奇数和偶数位置的 2 个向量

__m128i a = {1,2,3,4,5,6,7,8}; //8x16位 我想把这个寄存器分成 2 个向量,每个包含 4x32bit : __m128i x = {1,3,5,7} __m128i y = {2,4,6,8} 内部代码有可能吗? 在...

回答 0 投票 0

在 AVX512 寄存器中生成 0、1、2、...、7 序列的有效方法?

在 AVX512 寄存器中加载算术序列 [0、1、2、3、4、5、6、7](uint64_t 值)的最有效方法是什么? 一个明显的解决方案是使用

回答 0 投票 0

使用 AVX2 实现 _mm256_mullo_epi4 的最快方法

对于一个研究问题,我需要使用 AVX2/AVX 指令实现非常高效的 4 位乘法(只需要低 4 位)。 我目前的做法是: __m256i _mm256_mullo_epi4(合作...

回答 1 投票 0

加速给定 AVX512 代码的想法

mask_new1 = _mm512_set_epi32(0, 3, 0, 3, 0, 3, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2); s1 = _mm512_permutexvar_pd(mask_new1, r); out1 = _mm512_mul_pd(s1, _mm512_mul_pd(b1, c1)); 有没有办法/...

回答 1 投票 0

将位掩码拆分为设置位的子掩码

我有一个带有少量设置位的掩码,只有 3 或 4 个。 掩码最多可以是 64 位,但让我们举一个简短的例子 - 10100101 我想生成停止在设定位的掩码,但我...

回答 1 投票 0

在Visual Studio中使用__AVX512F__编译代码

我想用AVX512F编译特定部分的代码。 #ifndef __AVX512F__ #undef 标志 1 #万一 要使用标志,我右键单击我的 visual studio 项目并设置启用 enh ...

回答 0 投票 0

使用 AVX2 内在函数的单精度 3D 矢量点积累积中的不稳定误差

来自这里。 我写了一个函数,它在 3D 向量矩阵上运行,计算每个迭代点表示的蓝色十字表示的向量之间的差异...

回答 0 投票 0

如何使用 RDRAND 内在函数?

我在看 H.J. Lu 的补丁:更新 x86 rdrand 内在函数。我不知道我是否应该使用 _rdrand_u64、_rdrand64_step,或者是否还有其他函数。似乎没有测试ca...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.