Nvidia CUDA初级教程2 并行程序设计概述

Nvidia CUDA初级教程2 并行程序设计概述

视频:https://www.bilibili.com/video/BV1kx411m7Fk?p=3
讲师:周斌

本节内容:

  1. 为什么需要?
  2. 怎么做?
  3. 一些技术和概念

串并行计算模式

串行计算模式

  • 常规软件时串行的
    • 设计运行于一个中央处理器(CPU)上
    • 通过离散的指令序列完成一个问题的解决
    • 一条一条指令地执行
    • 同时只有一条指令在执行

逻辑上定义的串行计算是这样,实际上前面我们也介绍过,在CPU中也有很多的指令级并行优化。

并行计算模式

  • 并行计算是同时应用多个计算资源解决一个计算问题
    • 涉及多个计算资源或处理器
    • 问题被分解为多个离散的部分,可以同时处理(并行)
    • 每个部分可以由一些列指令完成
  • 每个部分的指令在不同的处理器上执行

并行计算——概念和名词简介

Flynn矩阵

  • SISD (Single Instruction Single Data)
  • SIMD (Single Instruction Multiple Data)
  • MISD
  • MIMD

常见名词

  • Task 任务
  • Parallel Task 并行任务
  • Serial Execution 串行执行
  • Parallel Execution 并行执行
  • Shared Memory 共享存储
  • Distributed Memory 分布式存储
  • Communication 通信
  • Synchronization 同步
  • Granularity 粒度
  • Observed Speedup 加速比
  • Parallel Overhead 并行开销
  • Scalability 可扩展性

存储器架构

  • Shared Memory

  • Distributed Memeory

  • Hybird Distributed-Shared Memory

存储系统的编址

并行编程模型

  • 共享存储模型
  • 线程模型
  • 消息传递模型
  • 数据并行模型

具体实例

  • OpenMP
  • MPI
  • Single Program Multiple Data SPMD
  • Multiple Program Multiple Data MPMD

设计并行处理程序和系统

  • 自动和手动并行

  • 理解问题和程序

    理解问题、程序、算法,是我们设计并行处理系统的基础

  • 分块分割

    根据具体的任务,数据分块、任务分割

  • 通信

    broadcast、scatter、gather、reduction

  • 同步

    barrer、lock/semaphore、synchronous communica

  • 数据依赖

  • 负载均衡

  • 粒度

  • I/O

  • 成本

  • 性能分析和优化

    加速比:

    Amdahl’s Law s p e e d u p m a x = 1 1 − P speedup_{max}=\frac{1}{1-P} speedupmax=1P1 s p e e d u p = 1 P N + S speedup=\frac{1}{\frac{P}{N}+S} speedup=NP+S1

    P P P:并行部分, S S S:串行部分

    程序可能的最高加速比取决于可以被并行化的部分(的占比)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值