网站首页 > 技术教程 正文
转自半导体全解,版权属于原作者,仅用于学术分享,如有侵权留言删除
一、人工智能发展历程
二、CPU和GPU在人工智能中的应用
GPU最初是用于图像处理的,但由于高性能计算需求的出现,GPU因其高度 并行的硬件结构而得以显著提升其并行计算和浮点计算能力,且性能远超于CPU。
由于训练深度神经网络的计算强度非常大,因而在CPU上训练神经网络模型的时间往往非常长。
机器学习模型的并行训练通常适用于以下两种情况:
三、什么是CUDA?
CUDA(Compute Unified Device Architecture)全称统一计算架构,作为NIVIDA公司官方提出的GPU编程模型,它提供了相关接口让开发者可以使用GPU完成通用计算的加速设计,能够更加简单便捷地构建基于GPU的应用程序,充分发挥GPU的高效计算能力和并行能力。
CUDA同时支持C/C++,Python等多种编程语言,使得并行算法具有更高的可行性。由于GPU不是可以独立运行的计算平台,因此在使用CUDA编程时需要与CPU协同实现,形成一种CPU+GPU的异构计算架构,其中CPU被称为主机端(Host),GPU被称为设备端(Device)。
GPU主要负责计算功能,通过并行架构与强大的运算能力对CPU指派的计算任务进行加速。通过 CPU/GPU 异构架构和CUDA C语言,可以充分利用GPU资源来加速一些算法。
典型的GPU体系结构如下图所示,GPU和CPU的主存都是采用DRAM实现,存储结构也十分类似。但是CUDA将GPU内存更好地呈现给程序员,提高了GPU编程的灵活性。
CUDA程序实现并行优化程序设计的具体流程主要分为三个步骤:
在CUDA架构中,网格(Grid),块(Block)和线程(Thread)是三个十分重要的软件概念,其中线程负责执行具体指令的运行任务,线程块由多个线程组成,网格由多个线程块组成,线程和线程块的数量都可以通过程序的具体实现设定。
GPU在执行核函数时会以一个网格作为执行整体,将其划分成多个线程块,再将线程块分配给SM执行计算任务。
GPU内存结构如下图所示,主要包括位于SP内部的寄存器(Register)、位于SM上的共享内存(Shared memory)和GPU板载的全局内存(Global memory)。
在NVIDIA提出的CUDA统一编程模型中采用Grid的方式管理GPU上的全部线程,每个Grid中又包含多个线程块(Block),每个Block中又可以划分成若干个线程组(Warp)。Warp是GPU线程管理的最小单位,Warp内的线程采用单指令多线程(Single Instruction Multiple Threads, SIMT)的执行模式。
CUDA线程管理的基本结构如下图所示:
四、总结
随着深度学习(Deep Learning,DL)的持续进步,各类深度神经网络(Deep Neural Network ,DNN)模型层出不穷。DNN不仅在精确度上大幅超越传统模型,其良好的泛化性也为众多领域带来了新的突破。
因此,人工智能(Artificial Intelligence, AI)技术得以迅速应用于各个行业。如今,无论是在物联网(Intemet of Things, IoT)的边缘设备,还是数据中心的高性能服务器,DNN的身影随处可见,人工智能的发展离不开计算能力的提升,因此高性能GPU的需求也将不断提升!
- 上一篇: 你脚下的油门踏板并不是控制汽车的喷油量, 你知道为什么吗?
- 下一篇: 渲染进程的工作原理(渲染程序)
猜你喜欢
- 2025-03-23 垫步:羽毛球场的隐形加速器,破解移动时机的黄金法则
- 2025-03-23 高考物理近十年必考模型全解析:破题关键与备考策略
- 2025-03-23 渲染进程的工作原理(渲染程序)
- 2025-03-23 你脚下的油门踏板并不是控制汽车的喷油量, 你知道为什么吗?
- 2025-03-23 你脚下的油门踏板并不控制是控制车子的喷油量,
- 2025-03-23 一、简单聊聊CDN(Content Delivery Network,内容分发网络)
- 2025-03-23 为什么手机充电速度越来越快?5分钟充电50%,会影响电池寿命吗?
- 2025-03-23 宗熙先生:什么是DirectX?及其构成、工作原理和应用领域
- 2025-03-23 《怪物猎人荒野》联机中断问题全攻略:网络优化与稳定性解决方案
- 2025-03-23 孩子写作业像树懒?三招提速50%!附「作战地图」直接抄作业
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)