GPU并行编程方法
2015-07-15 16:12
246 查看
转载自:http://blog.sina.com.cn/s/blog_a43b3cf2010157ph.html
编写利用GPU加速的并行程序有多种方法,归纳起来有三种:
1. 利用现有的GPU函数库。
Nvidia
的CUDA工具箱中提高了免费的GPU加速的快速傅里叶变换(FFT)、基本线性代数子程序(BLAST)、图像与视频处理库(NPP)。用户只要把源代码中CPU版本的快速傅里叶变换、快速傅里叶变换和图像与视频处理库替换成相应的GPU版,即可得到性能加速。除了Nvidia提供的函数库以外,第三方的GPU函数库有:
CUDA数据并行基元库(cuDPP)
CULA工具:由EM Photonics公司推出,
CUDA GPU中的LAPACK
MAGMA:由Dongarra’s Group推出,CUDA
GPU和多核CPU中的LAPACK
雅可比预处理共轭梯度(JCG)
GPULib:针对接口描述语言(IDL)以及矩阵实验室(MATLAB)的数学函数库
GPU VSIPL信号处理库
计算机视觉(CV)以及成像库
OpenCurrent:规则网格系统中CUDA加速PDE(partial
differential equation,偏微分方程)开源数据库解决方案
CUDA / GPU中的libSVM
Multisvm:利用CUDA的多等级SVM
cuSVM:支持矢量分类与衰减的CUDA使用方法
2. CUDA
编程。
这是最普遍、最适用的方法,使用CUDA可以最大限度地发挥GPU的加速性能。
3. 指令(Directive)编程。
基于的OpenACC标准,GPU Directive编程是加快科学或工业的代码容易的、行之有效的方法。使用GPU指令,简单地在你的源码中插入编译指令,编译器会自动把计算密集型代码部分映射到到GPU的中去计算,从而加速你的代码。下面是一个简单的用一条指令如何可以加快计算圆周率的例子。使用GPU指令,你可以很快上手,并在当天看到的结果。
![](http://img.blog.csdn.net/20150727173940713?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
OpenACC编程的优点:
l 简单:只要在你的代码中插入编译提示
l 开放:单个代码库既可以在CPU又可以在GPU上运行
l 功能强大:只需几小时就可以发挥GPU的强大
并行计算工具的领导者PGI、CAPS和Cray将率先支持OpenACC。
转载自:http://blog.sina.com.cn/s/blog_a43b3cf2010157ph.html
编写利用GPU加速的并行程序有多种方法,归纳起来有三种:
1. 利用现有的GPU函数库。
Nvidia
的CUDA工具箱中提高了免费的GPU加速的快速傅里叶变换(FFT)、基本线性代数子程序(BLAST)、图像与视频处理库(NPP)。用户只要把源代码中CPU版本的快速傅里叶变换、快速傅里叶变换和图像与视频处理库替换成相应的GPU版,即可得到性能加速。除了Nvidia提供的函数库以外,第三方的GPU函数库有:
CUDA数据并行基元库(cuDPP)
CULA工具:由EM Photonics公司推出,
CUDA GPU中的LAPACK
MAGMA:由Dongarra’s Group推出,CUDA
GPU和多核CPU中的LAPACK
雅可比预处理共轭梯度(JCG)
GPULib:针对接口描述语言(IDL)以及矩阵实验室(MATLAB)的数学函数库
GPU VSIPL信号处理库
计算机视觉(CV)以及成像库
OpenCurrent:规则网格系统中CUDA加速PDE(partial
differential equation,偏微分方程)开源数据库解决方案
CUDA / GPU中的libSVM
Multisvm:利用CUDA的多等级SVM
cuSVM:支持矢量分类与衰减的CUDA使用方法
2. CUDA
编程。
这是最普遍、最适用的方法,使用CUDA可以最大限度地发挥GPU的加速性能。
3. 指令(Directive)编程。
基于的OpenACC标准,GPU Directive编程是加快科学或工业的代码容易的、行之有效的方法。使用GPU指令,简单地在你的源码中插入编译指令,编译器会自动把计算密集型代码部分映射到到GPU的中去计算,从而加速你的代码。下面是一个简单的用一条指令如何可以加快计算圆周率的例子。使用GPU指令,你可以很快上手,并在当天看到的结果。
OpenACC编程的优点:
l 简单:只要在你的代码中插入编译提示
l 开放:单个代码库既可以在CPU又可以在GPU上运行
l 功能强大:只需几小时就可以发挥GPU的强大
并行计算工具的领导者PGI、CAPS和Cray将率先支持OpenACC。
相关文章推荐
- MySQL Study之--MySQL下图形工具的使用(phpMyAdmin)
- springMVC 请求转发和重定向(RedirectAttributes)
- 【转】Java 字节流与字符流的区别
- servlet容器相关
- java系统学习(一) --------java语言中的数据与运算符
- java系统学习(一) --------java语言中的数据与运算符
- Java 删除当前目录及其目录下的所有文件
- yii中数据模型的使用
- Python脚本刷点击率。
- javase
- Yii CDBCriteria常用方法
- 使用vimdiff作为svn diff的查看代码工具
- 编程小技巧之文本操作
- ASP.Net MVC从客户端中检测到有潜在危险的 Request.Form 值
- Java学习心得(看到后觉得很好,在博客上分享一下,希望对大家有启发)
- yii中常用路径
- C#简单实现SNMP的方法
- java nio
- yii中 columnszii.widgets.grid.CGridView
- Mac配置环境:maven、jdk、Scala以及遇到的问题