小编mao*_*ofu的帖子

无法使用 AVX 内在函数,因为我的函数编译时不支持“xsave”

我想使用 AVX 内在,例如:__m256 factor_min = _mm256_set1_ps(1.329227); 但我收到以下编译错误:

Always_inline 函数“_mm256_set1_ps”需要目标功能“xsave”,但会被内联到不支持“xsave”编译的函数“AveragePooling”中

我的环境是?MacOs + Intel Core i7 + xcode8.3 在此处输入图片说明 我已经看到关于“xsave”的其他讨论。但仍然不知道如何解决这个编译错误。我对汇编指令一无所知。有没有简单的方法来解决这个错误(也许只是更改 xode 设置?)?非常感谢。

我认为 Intel Core i7 可以完全支持 AVX。

macos xcode avx

4
推荐指数
1
解决办法
4908
查看次数

如何使用 neon 内在函数优化直方图统计?

我想用 neon 内在函数优化直方图统计代码。但我没有成功。这是 c 代码:

#define NUM (7*1024*1024)
uint8 src_data[NUM];
uint32 histogram_result[256] = {0};
for (int i = 0; i < NUM; i++)
{
    histogram_result[src_data[i]]++;
}
Run Code Online (Sandbox Code Playgroud)

Historam 统计更像是串行处理。用 neon 内在函数很难优化。有人知道如何优化吗?提前谢谢。

intrinsics neon

3
推荐指数
1
解决办法
1814
查看次数

如何使用c++模板有条件地编译asm代码?

有一个名为“Enable”的布尔变量,当“Enable”为false时,我想创建以下函数:

void test_false()
{
   float dst[4] = {1.0, 1.0, 1.0, 1.0};
   float src[4] = {1.0, 2.0, 3.0, 4.0};
   float * dst_addr = dst;
   float * src_addr = src;


   asm volatile (
                 "vld1.32    {q0}, [%[src]]  \n"
                 "vld1.32    {q1}, [%[dst]]  \n"
                 "vadd.f32   q0, q0, q1      \n"
                 "vadd.f32   q0, q0, q1      \n"
                 "vst1.32    {q0}, [%[dst]]  \n"
                 :[src]"+r"(src_addr),
                 [dst]"+r"(dst_addr)
                 :
                 : "q0", "q1", "q2", "q3", "memory"
                 );

   for (int i = 0; i < 4; i++)
   {
       printf("%f, ", dst[i]);//0.0  0.0  0.0  0.0
   } …
Run Code Online (Sandbox Code Playgroud)

c++ assembly templates conditional-statements

2
推荐指数
1
解决办法
670
查看次数