相关疑难解决方法(0)

利用SSE和其他CPU扩展

在我的代码库中有几个地方,对于大型数据集,相同的操作重复了很多次.在某些情况下,处理这些需要相当长的时间.

我相信使用SSE来实现这些循环应该会显着提高它们的性能,特别是在对同一组数据执行许多操作的情况下,所以一旦数据最初被读入缓存,就不应该有任何缓存未命中它.但是,我不确定是否会这样做.

  • 是否有编译器和OS独立的方式编写代码以利用SSE指令?我喜欢VC++内在函数,其中包括SSE操作,但我还没有找到任何交叉编译器解决方案.

  • 我仍然需要支持一些没有或有限SSE支持的CPU(例如Intel Celeron).有没有办法避免不得不制作不同版本的程序,比如有一种"运行时链接器"链接在基本或SSE优化代码基于运行进程时运行它的CPU?

  • 那么其他CPU扩展怎么样,看看各种Intel和AMD CPU的指令集,其中有几个?

c++ gcc cross-platform simd visual-c++

15
推荐指数
2
解决办法
5360
查看次数

未启用SSE指令集

我遇到这个错误的问题:"未启用SSE指令集".我怎么能搞清楚这一点?

我有ACER i7,Ubuntu 11.10,请任何人可以帮帮我吗?

任何帮助将不胜感激!


还运行:

 sudo cat /proc/cpuinfo | grep flags
Run Code Online (Sandbox Code Playgroud)

得到:

flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clfl
ush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfm
on pebs bts xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl
vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt xsave avx lahf_lm 
ida arat epb xsaveopt pln …
Run Code Online (Sandbox Code Playgroud)

c++ intrinsics sse2 sse3

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

标签 统计

c++ ×2

cross-platform ×1

gcc ×1

intrinsics ×1

simd ×1

sse2 ×1

sse3 ×1

visual-c++ ×1