【并行计算-CUDA开发】GPU并行编程方法
转载自: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
2. CUDA 编程。
这是最普遍、最适用的方法,使用CUDA可以最大限度地发挥GPU的加速性能。
3. 指令(Directive)编程。
基于的OpenACC标准,GPU Directive编程是加快科学或工业的代码容易的、行之有效的方法。使用GPU指令,简单地在你的源码中插入编译指令,编译器会自动把计算密集型代码部分映射到到GPU的中去计算,从而加速你的代码。下面是一个简单的用一条指令如何可以加快计算圆周率的例子。使用GPU指令,你可以很快上手,并在当天看到的结果。
OpenACC编程的优点:
l 简单:只要在你的代码中插入编译提示
l 开放:单个代码库既可以在CPU又可以在GPU上运行
l 功能强大:只需几小时就可以发挥GPU的强大
并行计算工具的领导者PGI、CAPS和Cray将率先支持OpenACC。
【并行计算-CUDA开发】GPU并行编程方法的更多相关文章
- 【并行计算-CUDA开发】浅谈GPU并行计算新趋势
随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(General Purpose c ...
- 三 GPU 并行编程的运算架构
前言 GPU 是如何实现并行的?它实现的方式较之 CPU 的多线程又有什么分别?本文将做一个较为细致的分析. GPU 并行计算架构 GPU 并行编程的核心在于线程,一个线程就是程序中的一个单一指令流, ...
- 第三篇:GPU 并行编程的运算架构
前言 GPU 是如何实现并行的?它实现的方式较之 CPU 的多线程又有什么分别? 本文将做一个较为细致的分析. GPU 并行计算架构 GPU 并行编程的核心在于线程,一个线程就是程序中的一个单一指令流 ...
- 五 浅谈CPU 并行编程和 GPU 并行编程的区别
前言 CPU 的并行编程技术,也是高性能计算中的热点,也是今后要努力学习的方向.那么它和 GPU 并行编程有何区别呢? 本文将做出详细的对比,分析各自的特点,为将来深入学习 CPU 并行编程技术打下铺 ...
- 第五篇:浅谈CPU 并行编程和 GPU 并行编程的区别
前言 CPU 的并行编程技术,也是高性能计算中的热点,也是今后要努力学习的方向.那么它和 GPU 并行编程有何区别呢? 本文将做出详细的对比,分析各自的特点,为将来深入学习 CPU 并行编程技术打下铺 ...
- 【并行计算-CUDA开发】GPU 的硬体架构
GPU 的硬体架构 这里我们会简单介绍,NVIDIA 目前支援CUDA 的GPU,其在执行CUDA 程式的部份(基本上就是其shader 单元)的架构.这里的资料是综合NVIDIA 所公布的资讯, ...
- 【并行计算-CUDA开发】从零开始学习OpenCL开发(一)架构
多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012 本文将作为我<从零开始做OpenCL开发>系列文章的 ...
- 四 GPU 并行编程的存储系统架构
前言 在用 CUDA 对 GPU 进行并行编程的过程中,除了需要对线程架构要有深刻的认识外,也需要对存储系统架构有深入的了解. 这两个部分是 GPU 编程中最为基础,也是最为重要的部分,需要花时间去理 ...
- 第四篇:GPU 并行编程的存储系统架构
前言 在用 CUDA 对 GPU 进行并行编程的过程中,除了需要对线程架构要有深刻的认识外,也需要对存储系统架构有深入的了解. 这两个部分是 GPU 编程中最为基础,也是最为重要的部分,需要花时间去理 ...
随机推荐
- Oracle逻辑导入数据(IMP/IMPDP)
使用IMPDP导入数据的前提是数据是使用EMPDP导出的,同样也是在DOS窗口下直接输入IMPDP和登录数据库的用户名,即可导人数据. impdp导到指定用户下: impdp student/1234 ...
- 【转载】windbg 常用命令详解
windbg 常用命令详解 https://blog.csdn.net/chenyujing1234/article/details/7743460 vertarget 显示当前进程的大致信息 lmv ...
- Struts2框架的搭建
Struts2是WebWork框架的升级版本,替代了Servlet. 由于用IDEA下载jar包失败,直接创建手动导包. 1.导包: (1)Struts2的目录结构: (2)导入jar包: 2.书写A ...
- ent 基本使用十八 查询谓词
ent 生成的代码包含了比较完整的查询谓词 字段谓词 Bool: =, != Numeric: =, !=, >, <, >=, <=, IN, NOT IN Time: =, ...
- pipelinewise 学习二 创建一个简单的pipeline
pipelinewise 提供了方便的创建简单pipeline的命令,可以简化pipeline 的创建,同时也可以帮我们学习 生成demo pipeline pipelinewise init --n ...
- 5-微信小程序开发(小程序页面跳转和布局说明)
https://www.cnblogs.com/yangfengwu/p/11605209.html 新建一个小程序 咱现在新建个页面 在pages 上右击,选择新建目录 会自动添加这几个文件 现在做 ...
- luogu P1550 [USACO08OCT]打井Watering Hole
题目背景 John的农场缺水了!!! 题目描述 Farmer John has decided to bring water to his N (1 <= N <= 300) pastur ...
- nginx 访问控制之 http_referer
在rewrite时,曾经用过该变量,当时实现了防盗链功能. 其实基于该变量,我们也可以做一些特殊的需求. 示例: 背景:网站被黑挂马,搜索引擎收录的网页是有问题的,当通过搜索引擎点击到网站时,却显示一 ...
- React 如何适用less
1.使用 create-react-app 创建的项目,默认情况下是看不到 webpack 相关的配置文件,我们需要给它暴露出来,使用下面命令即可: npm run eject 2.添加less np ...
- E4A碰到打开自动闪退又自动打开又闪退一直循环的问题
E4A碰到打开自动闪退又自动打开又闪退一直循环的问题 这几天写了一个脚本,自己手机上,模拟器上,均测试没有问题,可以正常操作 发给另一个人,他那边居然没有一个设备能运行成功! 而且一直闪退,闪退后又打 ...