社区
英特尔边缘计算技术
帖子详情
SIMD和多核并行(OpenMP)的问题
wwwquzhinet
2009-05-04 11:29:21
我将一段浮点运算的程序使用SSE优化后,速度得到大幅度的提高。然后,为了获得更高的匀速,我想采用OpenMP指令。
但是,我测试后发现,性能只是提升了一点点。并没有因为是四核,所以快很多。
我的机器是: Intel Core 2 Quad Q9550
请问在四核计算机上,SIMD寄存器是四组还是只有一组?也就是说,在四核计算机上,是否能并行执行四条SIMD指令?
或者说,综合使用SSE和OpenMP,是否能同时处理个16(4 * 4)个相同的浮点运算?
...全文
1104
6
打赏
收藏
SIMD和多核并行(OpenMP)的问题
我将一段浮点运算的程序使用SSE优化后,速度得到大幅度的提高。然后,为了获得更高的匀速,我想采用OpenMP指令。 但是,我测试后发现,性能只是提升了一点点。并没有因为是四核,所以快很多。 我的机器是: Intel Core 2 Quad Q9550 请问在四核计算机上,SIMD寄存器是四组还是只有一组?也就是说,在四核计算机上,是否能并行执行四条SIMD指令? 或者说,综合使用SSE和OpenMP,是否能同时处理个16(4 * 4)个相同的浮点运算?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tigerqqq
2009-05-28
打赏
举报
回复
所以,理论加速比确实是:4x4=16?
我也遇到了同样的问题,在单线程模式下SIMD指令确实获得了加速,多线程下性能反而下降了。(使用OpenMP)
wwwquzhinet
2009-05-17
打赏
举报
回复
我是做计算机视觉的,用在机器视觉上:工业自动化中的基于图像处理的测量、缺陷检查和定位。
在我的程序中,最浪费时间的是图像处理函数(尤其是滤波,比如说高斯滤波之类的函数)。
在这些函数中,循环语句是基本的结构。
在这个领域,为了适应生产线的要求,都要求程序有非常高的速度。
因此,充分利用计算机的能力实现最快速度的程序是一个重要的目标。
基于这样一种目标,我利用SIMD指令写了这些函数,相对于原来的函数,速度已经得到很大的提高。
为了得到更快的速度,我尝试将循环结构OpenMP并行化处理,我现在就在做这个事情。
但是,我发现不是很理想。所有有了上面的问题。
看了1楼的帖子,我觉得却是可能是cpu缓存的问题。
光宇广贞
2009-05-15
打赏
举报
回复
[Quote=引用 2 楼 intel_www 的回复:]
四核计算机上,SIMD寄存器是四组还是只有一组?
有四组,但是是在不同的core里面。
在四核计算机上,是否能并行执行四条SIMD指令?
可以,但是这四条指令必须在不同的线程中。
[/Quote]
好解法。
另楼主,OPENMP是用于协调多核的多线程处理的。核再多,也只能有一个核应付多个线程,不会出现多个核应付同一个线程的情况。楼主的设想便相当于多核应对同一线程,目前这种技术做不到。
OPENMP对于处理循环语句块多线程和并行模块多线程效果非常好,也只有这时候才真正体现多核的并发优势。除此之外,用不用,没多大的区别的。而且,你若用错了地方,比如说不是我前面说的该用OPENMP的地方用了,将导致OPENMP让多个线程——至少是你的所有CPU,去并行走同一个过程,也就是说同一个过程在你的所有CPU中各走一遍,这就是浪费了,而且更容易出危险。
intel_www
2009-05-06
打赏
举报
回复
四核计算机上,SIMD寄存器是四组还是只有一组?
有四组,但是是在不同的core里面。
在四核计算机上,是否能并行执行四条SIMD指令?
可以,但是这四条指令必须在不同的线程中。
intel_iclifort
2009-05-06
打赏
举报
回复
同一处理器中不同核的SSE处理单元都是独立的, 所以我觉得问题可能是由于数据的组织或者访问造成的cache效率问题
或许这里帖子对你会有启发的:
http://topic.csdn.net/u/20080910/23/c8bcbb29-3b8b-4ff1-8574-6be72e20f4f6.html
多核
处理器
并行
计算模型研究.pdf
多核
处理器
并行
计算模型研究.pdf
C:\Users\Administrator\Desktop\
多核
与
并行
程序设计-郭鸣
Intel
多核
编程
OpenMP
.pdf
希望对学习高性能计算机的同学有用
OpenMP
主要是在Linux下使用
openmp
-4.5.rar
OpenMP
4.5版本官方手册,
OpenMP
Application Programming Interface version 4.5
TBB
多核
编程及其混合编程模型的研究
TBB
多核
编程及其混合编程模型的研究
英特尔边缘计算技术
567
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章