基于CUDA的异构并行计算

一、并行计算

目的:提高运算速度

原则:将大的问题划分为很多可以同时解决的小问题

要求:硬件方面(计算机架构支持并行执行多进程或多线程)、软件方面(充分利用硬件并行执行)

1. 并行编程与串行编程

        编程时我们会很自然的把问题划分为很多运算块,块之间依次执行——串行。如果有并行执行的运算块则为并行。有些块可以并行,有些块则必循串行执行,视情况而定。比如数据相关发生时,就会限制程序的并行性。

2. 并行性

        并行存在两种:任务并行、数据并行。任务并行:任务或函数可以独立地并行执行,重点在于利用多核系统对任务进行分配。数据并行:同时处理许多数据,重点在于利用多核系统对数据进行分配

        数据并行是指当大量的数据进行相同的运算操作时,可以通过同时在多个计算单元上运行相同的指令,分别处理不同的数据,最终共同完成这些数据的运算。数据并行第一步就要对数据进行划分,划分的方式有两种,块划分和周期划分。

块划分:每个线程作用于一部分数据,通常数据具有相同大小。

周期划分:每个线程作用于数据的多部份。

3.计算机架构

弗林分类:SISD、SIMD(单指令多数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值