ICode9

精准搜索请尝试: 精确搜索
  • c – 这种处理具有SSE过度杀伤的阵列尾部的方法吗?2019-09-01 04:15:50

    我正在搞乱SSE,尝试编写一个函数,它将累加单精度浮点数组的所有值.我希望它适用于所有长度的数组,而不仅仅是4的倍数,正如网上几乎所有的例子所假设的那样.我提出了这样的事情: float sse_sum(const float *x, const size_t n) { const size_t steps = n / 4,

  • c – 为什么即使是16字节对齐的地址也会导致_mm_load_si128导致访问冲突?2019-08-31 00:06:57

    以下编译在MSVC上没有警告. #include <iostream> #include <emmintrin.h> int main() { __declspec(align(16)) int x = 42; std::cout << &x << "\n"; // Print out the address that holds x __m128i v = _mm_load_si128((__

  • c – _MM_TRANSPOSE4_PS导致GCC编译错误?2019-08-30 15:06:31

    我是第一次在GCC而不是MSVC中编译我的数学库,并且经历了所有的小错误,而且我找到了一个根本没有意义的数学库: 第284行:错误:左值作为赋值的左操作数 第284行是什么?这个: _MM_TRANSPOSE4_PS(r,u,t,_ mm_setr_ps(0.0f,0.0f,0.0f,1.0f)); (r,u和t都是__m128的实例) 那些熟悉使用xmmintrin

  • c – 浮点乘法:AVX对SSE的失速速度?2019-08-30 02:05:11

    我有相同的代码,但AVX版本比SSE版本低得多.有人可以解释一下吗? 我已经做过的是我尝试使用VerySleepy来分析代码,但这不能给我任何有用的结果,它只是证实它更慢…… 我已经查看了SSE / AVX指南和我的CPU(Haswell)中的命令,他们需要相同的延迟/吞吐量,只需要水平添加需要AVX的附加命

  • c – clang模板化使用__attribute __((vector_size(N)))2019-08-29 07:16:40

    我创建了一个使用SSE4.1向量指令的应用程序.为了更好地管理矢量类型,我创建了模板化的辅助结构vector_type,如下所示: template <class T, int N> struct vector_type { typedef T type __attribute__((vector_size(sizeof(T)*N))); using single_element_type = T; stati

  • c – SSE2内在函数 – 找到两个无符号短向量的最大值2019-08-28 18:07:09

    我想找到最多两个包含8 x 16位无符号int元素的向量. __m128i vi_A= _mm_loadu_si128(reinterpret_cast<const __m128i*>(&pSrc[0])); // 8 16-Bit Elements __m128i vi_B= _mm_loadu_si128(reinterpret_cast<const __m128i*>(&pSrc1[0])); // 8 16-Bit Elements __m128i vi_

  • c – 单精度矩阵运算的特征性能AVX与SSE没有差异?2019-08-28 11:05:14

    在我的项目中,我使用Eigen3.3库来进行6×6矩阵的计算.我决定调查AVX指令是否真的让我对SSE加速.我的CPU确实支持这两组: model name : Intel(R) Xeon(R) CPU E5-1607 v2 @ 3.00GHz flags : ... sse sse2 ... ssse3 ... sse4_1 sse4_2 ... avx ... 所以,我用gcc4.8

  • c – SSE:将__m128和__m128i转换为两个__m128d2019-08-27 07:06:59

    两个相关的问题. 这就是我的代码需要处理相当大量的数据.它在内部循环中完成,性能很重要. >将__int32的转换和数组转换为双精度数(或将__m128i转换为两个__m128d). >将浮点数和数组转换为双精度数(或将__m128转换为两个__m128d). 基本上,我需要具有以下签名的功能: void convert_in

  • c – SSE累积求和2019-08-26 04:12:40

    我有一个简单的问题.具有起始uint_32值(比如125)和要添加的__m128i操作数,例如(5,10,-1,-5).我想尽可能快地得到一个向量(125 5,125 5 10,125 5 10 -1,125 5 10 -1-5),即从操作数累加值到起始值.到目前为止,我能想到的唯一解决方案是添加4个__m128i变量.例如,他们会 /* pseudoSSE

  • c – 为什么这比memcmp慢2019-08-25 23:08:13

    我想比较两行像素. 像素被定义为包含4个浮点值(RGBA)的结构. 我不使用memcmp的原因是因为我需要返回第一个不同像素的位置,memcmp不会这样做. 我的第一个实现使用SSE内在函数,比memcmp慢约30%: inline int PixelMemCmp(const Pixel* a, const Pixel* b, int count) { for (int i

  • c – SSE:reinterpret_cast而不是_mm_load_ps2019-08-25 09:09:14

    我正在用C语言编写一个简单的卷积函数,从基本的“滑动窗口”卷积开始,使用常规产品(现在没有FFT的东西),直到SEE,AVX和可能的OpenCL.我遇到了SSE的问题.我的代码看起来像这样: for (x = 0; x < SIZEX - KSIZEX + 1; ++x) { for (y = 0; y < SIZEY - KSIZEY + 1; ++y) {

  • c – 为什么_mm_set_epi16有时比_mm_load_si128快?2019-08-25 05:06:47

    我知道最好避免使用_mm_set_epi *,而是依赖于_mm_load_si128(如果数据未对齐,则依赖于_mm_loadu_si128,性能损失很小).但是,这对性能的影响似乎与我不一致.以下是一个很好的例子. 考虑使用SSE内在函数的以下两个函数: static uint32_t clmul_load(uint16_t x, uint16_t y) { co

  • c – 尝试将std :: aligned_storage与SSE和new一起使用2019-08-25 04:04:56

    我想尝试使用C中的SSE instrincs来获取一些浮点数的平方根.但是当我尝试存储结果时,我得到一个例外.我可以像这样使用std :: aligned_storage吗? #include <iostream> #include <type_traits> #include <xmmintrin.h> using namespace std; using float_storage = aligned_storage

  • c – 使用AVX从结构中提取整数和短路?2019-08-24 23:06:55

    我有一个结构,其中包含各种数据成员之间的联合和一个AVX类型,以加载一个加载中的所有字节.我的代码看起来像: #include <immintrin.h> union S{ struct{ int32_t a; int32_t b; int16_t c; int16_t d; }; __m128i x; } 我想使用AVX

  • c – SSE内在函数,用于复制寄存器中的字节2019-08-24 21:07:14

    假设我有四个浮点数加载到寄存器(f0到f3),如下面的伪代码所示: __m128 xmm1 = < f0, f1, f2, f3 > 现在我想将第一个元素复制到其他位置,以便我得到一个看起来如下的寄存器: __m128 xmm2 = < f0, f0, f0, f0 > (f0仅在该SSE登记册内有效) 如何以尽可能高效的方式存档?我知道有一个

  • 优化无极限:从96秒到1.5秒2019-08-21 16:36:44

    原文链接:http://www.cnblogs.com/walker01/archive/2010/01/16/1648931.html      最近我们部门组织了一次编程竞赛。题目是这样的:在三维空间中,给出一组射线和一组三角形,其中每条射线给出基点O和方向量D,每个三角形给出三个顶点A,B,C的坐标,要求输出

  • 通过SSE(Server-Send Event)实现服务器主动向浏览器端推送消息2019-08-11 16:03:35

    一、SSE介绍 1.EventSource 对象 SSE 的客户端 API 部署在EventSource对象上。下面的代码可以检测浏览器是否支持 SSE。 if (‘EventSource’ in window) {  }  使用 SSE 时,浏览器首先生成一个EventSource实例,向服务器发起连接。 var source = new EventSource(url);  上面的ur

  • 项目启动报错:Field XXX in required a bean of type 'XXX' that could not be found2019-08-06 19:37:44

    Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 2019-08-06 16:57:34.058 [ERROR] [main] [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter-] | *********

  • 使用SSE将C中32位整数的两个向量相乘的最快方法2019-07-29 00:07:08

    我有两个无符号向量,大小都是4 vector<unsigned> v1 = {2, 4, 6, 8} vector<unsigned> v2 = {1, 10, 11, 13} 现在我想将这两个向量相乘并获得一个新向量 vector<unsigned> v_result = {2*1, 4*10, 6*11, 8*13} 什么是SSE操作?它是跨平台还是仅跨平台 在某些指定的平台? 添加:如果

  • c – Mac OSX minumum支持sse版本2019-07-27 06:06:46

    在osx上可以启用的最小支持sse标志是什么? 大多数硬件,我现在使用支持sse2.在Windows和Linux上,我有一些代码来测试sse支持.我在某处读到了osx长期以来对sse的支持.但我不知道哪个是可以启用的最低版本.最终的二进制文件将被复制到其他osx平台,所以我不能像GCC那样使用-march = nati

  • c – 为什么std :: inner_product比天真的实现慢?2019-07-24 15:07:36

    这是我对dot产品的天真实现: float simple_dot(int N, float *A, float *B) { float dot = 0; for(int i = 0; i < N; ++i) { dot += A[i] * B[i]; } return dot; } 这是使用C库: float library_dot(int N, float *A, float *B) { return std::inner_pro

  • c – 告诉GCC“我想使用SSE4.1,但仅限于我想要的地方!”2019-07-23 00:06:12

    正如主题所说..我如何告诉GCC允许我使用SSE4.1内在函数但不优化SSE4.1(例如通过SSE4.1字符串比较)在同一翻译单元的所有其余代码中?解决方法:您可以使用Function Attributes在每个函数的基础上更改编译目标选项. GCC手册给出了以下示例: int core2_func (void) __attribute__ ((__ta

  • memcpy在linux中移动128位2019-07-13 21:50:39

    我正在linux中为PCIe设备编写设备驱动程序.此设备驱动程序执行多次读写操作以测试吞吐量.当我使用memcpy时,TLP的最大有效载荷是8字节(在64位架构上).在我看来,获得16字节有效载荷的唯一方法是使用SSE指令集.我已经看过this但是代码没有编译(AT& T / Intel语法问题). >有一种方法可

  • SpringBoot服务端主动推送SSE2019-07-08 18:38:52

    长时间和后台保持通讯的有三种方式,分别是ajax的setInterval(),和websocket,已经SSE。 ajax长时间和合同保持通讯太占内存。 websocket可以进行服务端和后台双向通讯。 SSE只能进行服务器往前端单向传送数据。 服务端接口写法 import java.text.DecimalFormat; import org.springfr

  • c – 使用带有自定义对齐分配器实现的最新g编译SSE和-O3选项时的非法指令(核心转储)2019-07-08 14:50:42

    当使用g(GCC)4.8.3 20140911(Red Hat 4.8.3-7)使用编译命令“g -g -fno-omit-frame-pointer -msse2 -mssse3 -O3 Memory”编译以下代码时. cpp“,可执行文件在执行时引发”非法指令(核心转储)“. 它使用较旧的g版本使用相同的编译器标志编译并运行没有问题.当编译器标志“-mssse3 -

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有