• 【CUDA学习笔记】什么是GPU计算


    系列文章目录

    第一章 初识CUDA


    前言

    本文是我学习CUDA课程的学习笔记,主要供自己以后温故知新,在此梳理一遍也算是二次学习。如对您有所帮助,不甚荣幸。初学CUDA,若所言有误,十分欢迎指正。如有侵权,请联系作者删除。


    一、CPU架构 vs GPU架构

    CPU架构

    在这里插入图片描述

    GPU架构

    这里以三种GPU举例。总的来说,GPU分成三层:GPU-SM-SP
    sm: (全称:Streaming Multiprocessor,流多处理器)
    sp: (全称:Streaming Processor,流处理器)

    1、早期GPU(C2050):

    在这里插入图片描述

    2、费米架构:

    在这里插入图片描述

    3、较新版本GPU:

    在这里插入图片描述

    二、什么是GPU计算:

    • NVIDIA公司发布了CUDA,他是建立在NVIDIA的CPUs上的一个通用并行计算平台和编程模型,基于CUDA编程可以利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。
    • GPU并不是一个独立运行的计算平台,而需要与CPU协同工作,可以看成是CPU的协处理器,因此当我们在说GPU并行计算时,其实是指的基于CPU+GPU的异构计算架构。cpu控制整个程序的架构和逻辑,gpu作为协作,作为计算模块,从而加速整个程序的运行速度。
    • 在易购计算架构中,GPU与CPU通过PCIe总线链接在一起来协同工作。PCIe的速度可以达到16G/s、32G/s
    • CPU所在位置称为主机端(host),而GPU所在位置称为设备端(device).

    三、为什么使用GPU计算:

    • GPUs的并行计算引擎强大,可以大幅度加快计算速度,例如15倍左右。
    • 超级计算机使用加速器,例如天河,Summit。
    • 机器学习以及人工智能需要训练模型,需要大量的计算,特别是稠密矩阵向量计算,GPU可以快十倍以上
    • GPU最成功的一个应用就是深度学习领域,基于GPU的并行计算已经成为训练深度学习模型的标配。

    四、CPU与GPU分工与协作:

    • GPU包括更多的运算核心,其特别适合数据并行的计算密集型任务,如大型矩阵运算。
    • CPU的运算核心较少,但是其可以实现复杂的逻辑运算,因此其适合控制密集型任务。
    • CPU上的现成是重量级的,上下文切换开销大
    • GPU由于存在很多核心,其线程是轻量级的
    • 基于CPU+GPU的异构计算平台可以优势互补,CPU负责处理逻辑负责的串行程序,而GPU重点处理数据密集型的并行计算程序,从而发挥最大功效。

    五、GPU计算架构:

    在这里插入图片描述

    六、程序架构:

    在这里插入图片描述

    七、语言选取:

    • CUDA是NVIDIA公司所开发的GPU编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序。
    • CUDA提供了对其他编程语言的支持,如C/C++,Python,Fortran等语言,这里我们选择CUDA C/C++接口对CUDA编程进行讲解。

    八、编译器:

    • CUDA:NVIDIA,latest CUDA nvcc
    • OS:Linux Ubuntu
    • Linux 优势:
      1. 容易写编译脚本,Makefile;
      2. 很多命令行可以尝试;
      3. 轻量级操作环境;
      4. 免费

    九、CUDA工具:

    • 编译器:nvcc(C/C++)
    • 调试器:nvcc-gdb
    • 性能分析:nsight,nvprof
    • 函数库:cublas,nvblas,cusolver,cufftw,cuspares,nvgraph

    十、示例程序:

    • https://github.com/huiscliu/tutorials
    • Env:Linux,Mac OSX
  • 相关阅读:
    学C++从CMake学起
    NAT模式 LVS负载均衡群集部署
    CPU缓存一致性
    基于Spring事件驱动模式实现业务解耦
    已解决ModuleNotFoundError: No module named ‘Workbook‘
    数据库应用:kylin 部署 达梦数据库DM8
    Leetcode: 645.错误的集合 题解【超详细】
    【闲聊杂谈】ElasticSearch的深度分页相关
    7-91 统计字符出现次数
    Vue2_人力资源管理系统项目笔记
  • 原文地址:https://blog.csdn.net/guigenyi/article/details/126085120