ISPC编译器及example学习

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值