Advertisement

深度学习硬件(李沐老师课程)

阅读量:

这张图呈现了一台配置了GPU的机器的详细参数。依次排列,各组成部分及其详细参数一目了然。

该款处理器采用Intel第七代Threading Engine架构(i7-6700K),单线程浮点运算能力达到0.15 TeraFLOPS(每秒万亿次浮点计算)。在系统 bus 网络中以双向通信通道的形式实现了CPU与内存之间的高效数据传输。

DDR4 内存 : 计算机配备32GB容量的DDR4内存,用于存储程序运行时所需的数据。

Nvidia Titan X GPU : 该款高性能显卡产品具备卓越的计算能力与大容量存储空间组合,在图形渲染与大规模并行计算任务中展现出卓越效能表现。其核心架构设计优化了数据处理效率,并支持多种专业级软件的应用场景需求。

该部分承担着整合于 ninth-generation Intel processor graphics core的任务

Memory & I/O interfaces:这是内存和Input/Output interfaces区域(通常用英文字母缩写),负责协调管理中央处理器(CPU)与其外围设备(如硬盘驱动器、网络接口卡等外部存储与通信设备)之间的数据传输关系。

System agent equipped with display, memory, and I/O controller**: This system agent is designed to manage and coordinate the allocation of resources and communication processes within an entire system.

Shared LLC :共享三级缓存属于一种高速缓存技术,并且其分布于四个CPU核心之间。这种缓存机制的主要作用在于存储频繁访问的数据,并通过这种方式来提升系统的整体性能水平。

CPU core :在图形中显示了四个CPU core ,每个CPU core 是专门负责独立执行指令的区域,并采用多线程架构设计以实现并行计算功能。这些CPU core 能够同时承担多项任务以提升系统性能。

[Intel i7-6700K]:该处标题明确标识了其为Intel i7系列中的一个型号;型号标识为6700K;属于Skylake架构。

从整体架构来看,这张图阐述了该处理器如何通过整合不同模块实现了高性能计算能力和多Media处理能力。

这张图片上列出了关于提升CPU利用率的一些建议和概念。内容如下:

在计算 "a + b" 之前,需要准备数据。

主存储器将在访问三级缓存之前依次访问一系列层级:从主存储器开始一直到寄存器结束。

各级缓存的访问延迟:

L1缓存的访问延时为0.5 ns。

L2缓存的访问延时为7 ns,大约是L1缓存访问时间的14倍。

主内存的访问延时为100ns,大约是L1缓存访问时间的200倍。

提升空间和时间的内存本地性:

时间本地性:重用数据以便保持它们在缓存里。

空间本地性:按顺序读写数据使得可以预取。

这些信息突显了通过优化代码来提升缓存利用率的关键性。由于缓存访问速度远超主内存,在程序执行过程中减少因数据未命中缓存导致的延迟至关重要。通过增强数据的空间和时间局部性,并结合高效的预取策略,在程序运行时能够显著提升CPU的有效利用率。例如,在程序的数据访问模式具有可预测性的前提下,“如果”一个程序遵循某种特定的数据访问模式,则可以通过预取机制将相关数据加载至缓存中,“那么”在实际需要时就能够迅速获取所需信息而不必等待较慢的主内存调用。“此外,在程序运行过程中重复使用的数据应尽可能保留在缓存中”,这样能够进一步减少重复加载所需的额外时间。“

这张图片呈现的是NVIDIA Titan X Pascal显卡的架构构成模式。具体来说它详细展示了一块GPU芯片的不同组成部分

GPCs(Graphics Processing Clusters - GPU架构中的图形处理器集群):通过图示可以看到三个主要区域。每个区域内部整合了多个流式多处理器(Streaming Multiprocessors),这些核心组件构成了GPU的计算架构。

SMs:每个GPC由许多SM构成;它们位于负责执行CUDA核心以及纹理单元的微小处理单元中。

L2 Cache 位于中间位置的一个深蓝色方框内,并与多个GPCs相连,并具备更大的缓存容量以提升数据访问效率。

Memory Controllers :分布在各个GPC周围,负责管理GPU的显存访问。

PCI Express Host Interface 位于总线顶端位置,并负责将 GPU 与主板相连的同时实现与 CPU 及其他组件之间的通信。

该图解展示了GPU的高度并行架构。该设计的目的在于高效处理大量并行任务,并特别适用于图形处理以及计算密集型的工作负载(例如深度学习与科学计算领域)。每个SM能够独立运行大量线程,在此基础上多个SM可在同一GPC协同运作以提升性能表现。这种架构使GPU在处理大数据时展现出了卓越的吞吐能力。

这张图片对比了CPU和GPU的主要特性。具体来说:

图片左侧是Intel Core i7处理器,右侧是NVIDIA Titan X显卡。

核心数量:通常情况下,普通CPU配备6个独立的物理核;而高端型号则可配备多达64个超线程核心。GPU方面,则分为两种规格:包括2K分辨率版本和4K分辨率版本。

TFLOPS(每秒千万亿次浮点运算):CPU的计算性能较弱,在较低水平上达到0.2至1 TFLOPS;相比之下 GPU在计算能力上分别提升至10至100 TFLOPS展现显著优势

内存大小:CPU通常配备32 GB或1 TB的内存,而GPU则是16 GB或32 GB。

系统性能方面:在计算资源方面,CPU部分的内存带宽较低,在30 GB/s或100 GB/s之间;而GPU部分由于采用了更先进的架构设计,在内存带宽上表现更为突出,在400 GB/s或1 TB/s范围内运行。

控制流:CPU擅长控制流,而GPU在这方面的表现较弱。

总的来说,在图像处理和机器学习等技术领域中,在图像处理和机器学习等技术领域中

这张图片列出了一些提升GPU利用率的方法:

并行处理 :为了最大限度地利用GPU的强大并行计算能力,在执行任务时最好尽可能启动数千个线程。这意味着要将任务分解为多个小部分,并让每个线程负责其中一个部分。

内存局部性:由于GPU的缓存容量有限且架构较为简单, 因此应优先考虑内存局部性. 这意味着尽量使数据靠近正在处理的数据所在的硬件, 从而降低内存访问的时间延迟.

GPU对于控制语句的支持较为受限,并且同时带来较高的同步代价。因此建议尽可能减少对控制语句的应用,尤其是那些涉及线程间协同操作的任务

这些策略主要针对的是最大化GPU的并行处理能力的同时消除不必要的等待时间,并进而提升整体计算效率。开发人员在编写针对GPU优化的代码时应着重考虑数据布局、任务划分以及算法选择等因素,并以此确保尽可能充分地发挥 GPU 的并行计算能力

这张图片展示了CPU/GPU带宽的概念,并给出了两个具体的例子:

左侧区域配备了Intel Core i7处理器以及两个内存插槽数组,在带宽性能方面表现突出

右侧是NVIDIA TITAN X显卡,它具有更高的带宽,达到480 GB/s。

在中心位置有一条深橙色的曲线代表数据传输路径,在这条曲线上连接着CPU与GPU装置之间建立了一定的数据传递通道。为了确保系统的稳定运行,在这条通道上设置了PCIe 3.0 x16带宽作为最大承载能力,并且这一配置能够支持最高达16GB/s的数据传输速度。

文本解释强调了以下内容:"避免频繁在CPU与GPU之间进行数据交换:带宽瓶颈及同步延迟"。这是因为CPUs与GPUs之间的数据传输速率远低于各自内部专用带宽的容量。因此,在编程过程中若频繁进行CPU与GPU之间的数据交换可能导致系统性能受限。为了优化系统性能,在编程实现中建议尽可能减少CPU与GPU之间每次的数据交互次数,并适当提高每次交互的数据量以缓解带宽限制的影响。

全部评论 (0)

还没有任何评论哟~