Nvidia CUDA初级教程2 并行程序设计概述
Nvidia CUDA初級(jí)教程2 并行程序設(shè)計(jì)概述
視頻:https://www.bilibili.com/video/BV1kx411m7Fk?p=3
講師:周斌
本節(jié)內(nèi)容:
串并行計(jì)算模式
串行計(jì)算模式
- 常規(guī)軟件時(shí)串行的
- 設(shè)計(jì)運(yùn)行于一個(gè)中央處理器(CPU)上
- 通過(guò)離散的指令序列完成一個(gè)問(wèn)題的解決
- 一條一條指令地執(zhí)行
- 同時(shí)只有一條指令在執(zhí)行
邏輯上定義的串行計(jì)算是這樣,實(shí)際上前面我們也介紹過(guò),在CPU中也有很多的指令級(jí)并行優(yōu)化。
并行計(jì)算模式
- 并行計(jì)算是同時(shí)應(yīng)用多個(gè)計(jì)算資源解決一個(gè)計(jì)算問(wèn)題
- 涉及多個(gè)計(jì)算資源或處理器
- 問(wèn)題被分解為多個(gè)離散的部分,可以同時(shí)處理(并行)
- 每個(gè)部分可以由一些列指令完成
- 每個(gè)部分的指令在不同的處理器上執(zhí)行
并行計(jì)算——概念和名詞簡(jiǎn)介
Flynn矩陣
- SISD (Single Instruction Single Data)
- SIMD (Single Instruction Multiple Data)
- MISD
- MIMD
常見名詞
- Task 任務(wù)
- Parallel Task 并行任務(wù)
- Serial Execution 串行執(zhí)行
- Parallel Execution 并行執(zhí)行
- Shared Memory 共享存儲(chǔ)
- Distributed Memory 分布式存儲(chǔ)
- Communication 通信
- Synchronization 同步
- Granularity 粒度
- Observed Speedup 加速比
- Parallel Overhead 并行開銷
- Scalability 可擴(kuò)展性
存儲(chǔ)器架構(gòu)
-
Shared Memory
-
Distributed Memeory
-
Hybird Distributed-Shared Memory
存儲(chǔ)系統(tǒng)的編址
并行編程模型
- 共享存儲(chǔ)模型
- 線程模型
- 消息傳遞模型
- 數(shù)據(jù)并行模型
具體實(shí)例
- OpenMP
- MPI
- Single Program Multiple Data SPMD
- Multiple Program Multiple Data MPMD
設(shè)計(jì)并行處理程序和系統(tǒng)
-
自動(dòng)和手動(dòng)并行
-
理解問(wèn)題和程序
理解問(wèn)題、程序、算法,是我們?cè)O(shè)計(jì)并行處理系統(tǒng)的基礎(chǔ)
-
分塊分割
根據(jù)具體的任務(wù),數(shù)據(jù)分塊、任務(wù)分割
-
通信
broadcast、scatter、gather、reduction
-
同步
barrer、lock/semaphore、synchronous communica
-
數(shù)據(jù)依賴
-
負(fù)載均衡
-
粒度
-
I/O
-
成本
-
性能分析和優(yōu)化
加速比:
Amdahl’s Law speedupmax=11?Pspeedup_{max}=\frac{1}{1-P}speedupmax?=1?P1? speedup=1PN+Sspeedup=\frac{1}{\frac{P}{N}+S}speedup=NP?+S1?
PPP:并行部分,SSS:串行部分
程序可能的最高加速比取決于可以被并行化的部分(的占比)。
總結(jié)
以上是生活随笔為你收集整理的Nvidia CUDA初级教程2 并行程序设计概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2018年广州社保缴费基数
- 下一篇: 股票停盘啥意思