码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【CUDA学习笔记】什么是GPU计算


    系列文章目录

    第一章 初识CUDA


    文章目录

    • 系列文章目录
      • @[TOC](文章目录)
    • 前言
    • 一、CPU架构 vs GPU架构
      • CPU架构
      • GPU架构
        • 1、早期GPU(C2050):
        • 2、费米架构:
        • 3、较新版本GPU:
    • 二、什么是GPU计算:
    • 三、为什么使用GPU计算:
    • 四、CPU与GPU分工与协作:
    • 五、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
  • 相关阅读:
    Day39、40、41 尚硅谷JUC——ThreadPool线程池
    数据结构学习笔记(第二章线性表)
    MySQL-3-多表查询和事务(结合案例学习)
    MongoDB集群之分片集群 Shard Cluster
    Python数据分析案例—淘宝用户行为分析
    Java学历、技术哪个更重要?学历不好还能进大厂吗?
    动态规划 贪心算法
    常用Linux命令
    ubuntu安装golang
    我第一个开源AI小产品-video2blog即将正式发布
  • 原文地址:https://blog.csdn.net/guigenyi/article/details/126085120
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号