为什么启用pentium4级别优化和openmp不能同时使用呢?

Brrrrr 2007-01-17 09:20:42
想用sse2优化double运算,但只要/Qopenmp /QaxN同时存在,程序运行起来就出错,单个参数那个都好使。看了一些资料,有些说编译使用的openmp库和mkl中openmp库冲突引起的?可是明明我用的是intel自家的编译器啊?郁闷ing...兄弟们给想想办法吧

硬件环境:pentium D820
软件环境:winxp professional sp2 ,vs2005(vs2003同时安装但不使用),intel c/c++ complier 9.1
编译参数为:icl -Qvc8 "-Qlocation,link,C:\Program Files\Microsoft Visual Studio 8\VC\Bin" /c /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /EHsc /MT /GS /GR /Fo"Release/" /W3 /nologo /Wp64 /Zi /Gd /Qopenmp /QaxN
...全文
304 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanyun 2007-01-19
  • 打赏
  • 举报
回复
1F4Ch 不是16的倍数 不能用__mm_load_pd 要用__mm_loadu_pd
Brrrrr 2007-01-19
  • 打赏
  • 举报
回复
难倒是传说中16位对齐的情况,我回去试试,多谢!
icansaymyabc 2007-01-18
  • 打赏
  • 举报
回复
减少没必要的参数,在命令行使用下面语句编译试试:

icl *.cpp /Qopenmp /O2 /QaxN
Brrrrr 2007-01-18
  • 打赏
  • 举报
回复
还是不行啊,怀疑vs2005中openmp和intel mkl中得有冲突
Brrrrr 2007-01-17
  • 打赏
  • 举报
回复
potential_serial.exe 中的 0x00401444 处未处理的异常: 0xC0000005: 读取位置 0xffffffff 时发生访问冲突
汇编的错误显示为:00401444 movapd xmmword ptr [esp+edx*8+1F4Ch],xmm7 其中esp的值为8764464,edx的值为0
怎么会读取0xffffffff呢?

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧