CUDA Handbook 补充 CPU和GPU硬件架构2

2024-04-07 21:18

本文主要是介绍CUDA Handbook 补充 CPU和GPU硬件架构2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Latency Hiding = Latency tolerance

        延迟隐匿又叫延迟容忍。通过在同一时间执行更多的warp来获得更高的吞吐量,叫做延迟容忍。所谓warp就是一个线程区里面一起执行的线程,一般是32个线程一起执行。它的意义是为了“隐藏”延迟性,也就是说最大化利用GPU的计算功能,计算相对多了,数据传输则相对就小了(比如同样执行100个操作,其中90个是计算,10个是传输,计算密度就比30个计算,70个传输大)。当然,有时候延迟也是隐匿不了的,(内容来自一本叫做 understanding latency hiding in GPUs的英文书,估计是没有中文翻译的一本比较不太流行的书??)因为功能运算单元利用率太低。阻塞一般分为两类:延迟阻塞和带宽阻塞。延迟阻塞可以通过降低处理器延迟来解决,即加速处理器存取指令等。带宽延迟则是与内存访问速度等有关。因为目前我做图形学方面还仅限于软件,所以硬件内部机制也不太懂,也不敢胡说,所以先了解这些应该就足够了。

        多CPU系统需要利用多线程程序,这样才能发挥多CPU的功能。SMP系统(对称多处理器),所有CPU都是一样的,它们对内存的访问接口都是一样的,都是通过北桥芯片(上一节讲的)连接到CPU内存,也叫统一内存访问。

        上一博客说的北桥可以集成到CPU里也不矛盾,这样的话,CPU就包含了内存控制器,以及连接外部IO设备(如鼠标接口)的功能,同时外部设备接口还连接了GPU设备。也就是说GPU通过连接到IO控制器,再连接到CPU。

        而多CPU系统就有点意思了(CUDA handbook说这个结构有点意思),首先每个CPU都有属于自己的内存空间,而且在AMD处理器和英特尔处理器还各自用了HT总线和QPI总线:

                            借用CUDA handbook的一张图

      其实这种结构中,CPU也可以访问到任意地方的内存,比如左边的CPU想用右边CPU的内存,则需要通过HT/QPI总线来获取,也就是说这个总线通过缓存来复制右边的内存内容,再传给左边的CPU,这样速度肯定比左边的CPU用左边CPU的内存慢很多呀!好在CPU芯片上的缓存非常大,可以减轻这种内存的传输(毕竟假设只有一个缓存空间,很可能在传输的时候不够用,导致阻塞耽误了时间)。而且windows,Linux等都提供了API,可以使程序很好的分配内存到执行它的CPU中,比如左边的CPU要操作一个数组,那么这个数组就分配在左边的CPU,这样内存访问就都是访问本地的内存了。

       

这篇关于CUDA Handbook 补充 CPU和GPU硬件架构2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883698

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

使用Python检查CPU型号并弹出警告信息

《使用Python检查CPU型号并弹出警告信息》本教程将指导你如何编写一个Python程序,该程序能够在启动时检查计算机的CPU型号,如果检测到CPU型号包含“I3”,则会弹出一个警告窗口,感兴趣的小... 目录教程目标方法一所需库步骤一:安装所需库步骤二:编写python程序步骤三:运行程序注意事项方法二

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU