您当前的位置: 首页 > 

mutourend

暂无认证

  • 2浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ISPC编译器及example学习

mutourend 发布时间:2019-08-27 14:42:02 ,浏览量:2

1. ISPC简介

ISPC为Intel的一款C程序编译器,是SPMD(Single program, multiple data)编程的扩展。

在SPMD模式下,程序员可仍以常规的串行思维编写串行程序,但在执行时,是由多个程序实例(program instances)在硬件上并行执行。

ISPC编译器可将基于C语言编写的SPMD程序编译到可在支持SIMD的CPU和Intel Xeon Phi架构上运行。 通过ISPC,在支持4-wide vector SSE指令的CPU上,通常可实现3倍以上的性能提升;在支持8-wide AVX vector指令的CPU上,可有5~6倍的性能提升。

ISPC编译器支持多核间的并行,从而可通过增加核数或vector unit size来提升性能。

ISPC的后台代码编译采用LLVM编译架构,目前支持X86/X86-64架构,支持SSE2,SSE4,AVX1,AVX2,AVX512和Xeon Phi的Knight’s Corner指令集。

2. ISPC example编译

cmake版本要求大于3.12。

git clone https://github.com/ispc/ispc
cd ispc/examples
mkdir build
cd build
#生成各个项目相应的make文件
cmake ..

#编译指定的项目
cmake --build simple
./simple/simple

在这里插入图片描述

cmake --build mandelbrot
./mandelbrot/mandelbrot

在这里插入图片描述 在这里插入图片描述

若修改mandelbrot_tasks.cpp中的width=768,height=512,与mandelbrot.cpp中的一样,则其运行性能更快: 在这里插入图片描述

参考资料: [1] https://ispc.github.io/ [2] https://github.com/ispc/ispc/

关注
打赏
1664532908
查看更多评论
立即登录/注册

微信扫码登录

0.0383s