CUDA 编程 之并行计算思想
2017-05-31 21:47
190 查看
思想这个东西,是个人理解的问题。
无论是 MPI OPENMP 等等并行计算的方法,都是使用多线程同时并发的执行。
所谓并发,就是看起来一起执行罢了,在真正的单核CPU中,是在某段时间内,串行执行,通过线程调度来掩盖其执行的顺序。
那么CUDA 编程中,并行计算的思想是SIMT,simple instruction multiple thread。你可以分配好多线程给GPU,无所谓其中的SP有多少,但是最好还是根据SP 的个数来设置其threadPerBlock,这样既方便调度,又可以提高资源利用率。
由于 GPU中 寄存器的数量庞大,可以保存不同线程的运行状态,可以较快的切换进程的上下文,因此也从另一个方面掩盖了访存延迟。
我觉得,GPU并行思想,与其硬件架构有很大关系,与CPU主要做控制逻辑相比,GPU更喜欢做一些可以大量重复或者并行的计算,而避免复杂的条件分支。
无论是 MPI OPENMP 等等并行计算的方法,都是使用多线程同时并发的执行。
所谓并发,就是看起来一起执行罢了,在真正的单核CPU中,是在某段时间内,串行执行,通过线程调度来掩盖其执行的顺序。
那么CUDA 编程中,并行计算的思想是SIMT,simple instruction multiple thread。你可以分配好多线程给GPU,无所谓其中的SP有多少,但是最好还是根据SP 的个数来设置其threadPerBlock,这样既方便调度,又可以提高资源利用率。
由于 GPU中 寄存器的数量庞大,可以保存不同线程的运行状态,可以较快的切换进程的上下文,因此也从另一个方面掩盖了访存延迟。
我觉得,GPU并行思想,与其硬件架构有很大关系,与CPU主要做控制逻辑相比,GPU更喜欢做一些可以大量重复或者并行的计算,而避免复杂的条件分支。
相关文章推荐
- 【CUDA并行编程之五】计算向量的欧式距离
- 【并行计算-CUDA开发】CUDA编程——GPU架构,由sp,sm,thread,block,grid,warp说起
- 【CUDA并行编程之五】计算向量的欧式距离
- 【并行计算-CUDA开发】GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- CUDA C 编程权威指南 学习笔记:第一章 基于CUDA的异构并行计算
- 【并行计算-CUDA开发】GPU并行编程方法
- CUDA之大规模GPU并行系列教程(二)——大规模并行计算GPU与CUDA简介
- CUDA计算向量内积的程序(源自CUDA范例编程)
- 最近做了个并行的计算各项异性地震波的有限元程序(cuda+mpi),可以计算超大规模问题,网格点个数可以几百亿都没有问题.
- 并行计算简介和多核CPU编程Demo
- 理解cuda并行程序的规约思想
- 并行计算简介和多核CPU编程Demo
- 【转】浅谈.NET下的多线程和并行计算(八)Winform中多线程编程基础上
- 多核处理器并行计算编程利器OpenPM
- MPI实现fft的迭代算法 源于并行计算——结构。算法。编程中伪码 更新2
- Hadoop并行计算原理与分布式并发编程
- CUDA计算向量内积的程序(源自CUDA范例编程)
- 并行计算的内存模型和编程模型
- CUDA:大规模并行计算的利器
- CUDA并行计算框架(一)概念相关、内容比较抽象。