并行计算及GPU简介
并行计算(Parallel Computing)指同时使用多种计算资源解决计算问题的过程,它的基本思想是将待求解问题分解成多个子问题,在相同的时间用不同的处理器计算各个子问题,从而有效地节约计算的时间。早期的并行计算只能由专门设计的大型并行计算机或是多个计算机构成的集群完成。但拥有众多处理器的大型并行计算机往往制造成本昂贵、使用功耗巨大,因此在一般的研究过程中实用性不强。利用图形处理器,也就是我们常说的GPU进行并行计算正在成为发展趋势。
同名字一样,GPU起初的设计目的是辅助CPU完成图像渲染等计算机图形学功能。由于图像渲染等相关问题具有高度并行的特点,因此GPU与CPU的硬件设计理念是不同的。CPU将更多的资源(晶体管)用到控制(Control)及缓存(Cache)部分,而GPU则将更多的资源用于计算单元(ALU),如图3-1所示。
GPU与CPU硬件架构上的区别导致了它们在计算中的优势不同:CPU拥有更加完备的逻辑与缓存单元,因此更加适用于计算不规则的数据结构、不可预测的存取模式与单线程程序;而GPU拥有更多的并行计算单元,因此更加擅长处理规则数据结构、可预测存取模式与多线程的程序。
随着硬件及相关软件体系的不断完善,GPU的应用已不再局限于计算机图形处理,基于GPU的通用并行计算研究引发了广泛的关注。在图像处理、视频播放、信号处理、金融分析、石油勘探及天文计算等领域中,基于GPU的并行计算正逐渐成为人们提高运算效率的一个重要手段。但早期将GPU用于计算的方法十分复杂, OpenGL与DirectX等图形接口是研究人员与GPU交互的唯一方式,这就要求研究人员拥有极为丰富的图形接口编程知识,这一点极大地限制了基于GPU的并行计算的发展。
相关文章
- Metalama简介5.配合VisualStudio自定义重构或快速操作功能
- Java NIO简介
- Reactive 简介
- q-dir功能简介
- Google Earth Engine 实现 LandTrendr 光谱-时间分割算法的指南(简介和土地趋势分析)
- OPC UA简介
- 《ASP.NET 开发从入门到精通》----1.2 Web技术简介
- MyRocks简介
- Nvidia GPU 入门教程之 03 在 GPU 上运行 Python 脚本,对比cpu与gpu性能,检测a100性能(教程含源码)
- MindSpore分布式并行训练 (GPU-Docker)mindspore—1.2.1—gpu—docker版本运行报错,Failed to init nccl communicator for group,init nccl communicator for group nccl_world_group
- 浅析SpringSecurity未授权或权限不足的处理:AuthenticationEntryPoint认证入口点及其实现类简介及AccessDeineHandler介绍
- Monkey简介
- 正则表达式简介及常用正则表达式分享
- Maven简介及配置
- 【网摘】DICOM 基础简介