HMM补丁说明2016

这篇具有很好参考价值的文章主要介绍了HMM补丁说明2016。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文网址:HMM (Heterogeneous Memory Management) [LWN.net]

邮件ID:1457469802-11850-1-git-send-email-jglisse@redhat.com

邮件作者:Jerome Glisse

邮件时间:2016年5月8日

HMM补丁提交说明书

上次我给Linus和Andrew讲到过,将HMM补丁提交到上游社区的需求是,我们希望无论闭源驱动还是开源驱动,除了Mellanox之外HMM还能获得其他真实硬件支持(当前Mellanox还没有采用HMM所有特性)。开源驱动的相关工作正在开展中,我估计NVIDIA和第三方很快就会有更新。

现在我重新提交是因为我希望大家能有时间重新审查HMM代码。在新硬件发布之前,开源驱动在窗口关闭之前不会更新(窗口/门:我理解为主线接纳补丁的时间窗口)。如果有人需要,我可以请上游维护者介绍相关进展情况(应该是指上游社区接纳HMM代码的进展情况)。

诸如IBM和Mediatek等第三方对HMM也很感兴趣。我期待他们能从各自硬件角度出发对HMM做点评。

我希望,HMM很快被上游接纳。

这次提交的HMM补丁版本基本上和上次提交的一样。补丁代码在(现在已经没有了)git://people.freedesktop.org/~glisse/linux hmm-v12 branch。

HMM是设备驱动的帮助层,主要特点是:

——按照设备专用格式,创建一个进程CPU页表的影子页表,并保持CPU页表和影子页表的同步(理解:影子页表其实就是GPU页表)。

——根据影子页表的页表项,替设备处理好DMA所需的系统内存的映射工作。

——将私有匿名内存迁移到私有设备内存上,并处理CPU页故障(CPU页故障又会将页重新迁回到系统主存上,这样CPU才可以访问了)

HMM的优点:

——设备驱动不再需要PIN住内存页,否则内核很多其他特性(内核共享内存KSM、迁移等)都不能用。

——对已有的、不使用HMM的工作场景没有影响(在通用代码路径上增加了两个if条件执行)。

——可以为更广泛的硬件提供通用框架。

——应用程序员编程不再需要手动管理系统主存和设备内存之间的数据拷贝。

——用户空间透明化,例如,库函数使用GPU,而应用程序不需要直接链接GPU。

HMM的动机?

OpenCL2.0和其他GPU计算API要求,可以对进程地址空间做镜像。OpenCL2.0允许各种级别API的实现,当前Linux仅仅支持最低两级的API实现。更高级别API的实现要求,CPU和GPU能并行访问数据,而且要保证缓存一致性,因此我们提出HMM机制,还有其他类似功能被提出,例如通过平台硬件。

但是基于PCIe总线 的ATS/PASID硬件方案,在实现系统内存镜像方面有局限性,还不能将内存迁移到设备内存中(因为这对带宽需求量很大,几乎是现在“独立GPU+常规系统主存”的10倍带宽需求量;而且这对延迟也有要求,要低于PCIe总线延迟)。

AMD、Intel在处理器芯片内部集成了GPU,并采用了ATS/PASID技术,Intel还专门实现了大量的、特殊的快速缓存,专门用作缓存池。

将来依然以独立GPU为主流,因为与集成GPU相比,独立GPU配有更多、更快的设备内存。

我们相信,HMM机制会让应用程序透明访问独立GPU内存,同时对Linux内核内存管理代码修改最小。而且HMM可以和硬件方案一起工作:常规情况让ATS/PASID来处理,而HMM专门处理页迁移。

设计:

补丁1/2/3/4主要是MMU notifier API,能有效地更新CPU页表镜像。

补丁5到14是HMM的主要工作,实现进程地址空间镜像。这里用到第二个页表,HMM将设备需要使用的内存做镜像。HMM本身并不访问任何页,它用MMU notifier API来记录CPU页表的修改,以及更新镜像页表。HMM仅仅是提供简单的API给设备驱动程序。

为此,我们采用通用页表而不是基数树(radix tree基数树:是将指针与long整数键值相关联的机制,它存储有效率,并且可以快速查询,用于指针与整数值的映射、内存管理等),因为我们需要记录更多的标记,而基数树满足不了这个需求,例如dma地址(在一些平台上long类型长度小于dma_addr_t类型长度)。文章来源地址https://www.toymoban.com/news/detail-493569.html

到了这里,关于HMM补丁说明2016的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMQ Management指标说明

    主要是对RabbitMQ的管理页面参数做详细说明。管理页面主要分为一下几个模块。OverView(概览)、Connections(连接)、Channels(通道)、Exchanges(交换机)、Queues(队列)、Admin(管理) 1、Totals 1.1、 Queued messages:当前Vhost下的所有队列消息情况 Ready:准备好的消息数量(生产者

    2024年02月04日
    浏览(38)
  • Windows Server 2016版本说明

    Windows Server 2016 Essentials edition Windows Server 2016 Essentials版是专为小型企业而设计的。它对应于Windows Server的早期版本中的Windows Small Business Server。此版本最多可容纳25个用户和50台设备。它支持两个处理器内核和高达64GB的RAM。它不支持Windows Server 2016的许多功能,包括虚拟化。 W

    2024年02月03日
    浏览(54)
  • RPMB说明与使用(Replay Protected Memory Block)

    首先RPMB是repaly protected memory block,从字面意思理解就是一个回放保护的存储区域。 这个区域是EMMC或者UFS上的一个区域,这个区域可以读,可以写,但是读和写是受到访问控制和回放保护的。 UFS上的RPMB空间大小一般是16M; EMMC上的RPMB空间大小一般是4M,也有64K的; 所以RPMB的

    2024年02月11日
    浏览(48)
  • Solidity 关键词说明(payable transfer event modifier msg external public view pure memory)

    在 Solidity 中, payable 是一个,用于表示函数可以接收以太币(ether)的转账。如果一个函数被声明为 payable ,那么它就可以接收以太币的转账,而不仅仅是使用以太币作为参数进行函数调用。 例如,下面是一个声明了 payable 的函数: 在上面的代码中,函数 buy

    2024年02月04日
    浏览(46)
  • [异构图-论文阅读]Heterogeneous Graph Transformer

    这篇论文介绍了一种用于建模Web规模异构图的异构图变换器(HGT)架构。以下是主要的要点: 摘要和引言 (第1页) 异构图被用来抽象和建模复杂系统,其中不同类型的对象以各种方式相互作用。 许多现有的图神经网络(GNNs)主要针对同构图设计,无法有效表示异构结构。

    2024年02月06日
    浏览(51)
  • 论文笔记:Multiplex Heterogeneous Graph Convolutional Network

    导致很难捕获到跨不同关系的异构结构信号 什么是多类型节点之间多重网络的关系异质性? 首先要知道什么是多重网络(multiplex network),在一个网络中,用户可能会对一个商品有多种交互,比如点击、购买、评论,这些交互都形成了用户节点与商品节点交互的边,但这些边的

    2024年02月05日
    浏览(43)
  • YOLOv7 Backbone| 原文源码详解

    YOLOv7 Backbone结构详解 在之前的文章中,我们以YOLOv5为对象,详细解剖了一只麻雀的内部构造,包括anchor机制、backbone的结构、neck的结构和head的结构。在本篇文章中,我们将以YOLOv7v0.1版本的代码为目标,结合作者团队的YOLOv7原文,详细介绍一下其骨架网络的整体架构及各部分

    2024年03月24日
    浏览(41)
  • 论文阅读--Energy efficiency in heterogeneous wireless access networks

    论文信息:Navaratnarajah S, Saeed A, Dianati M, et al. Energy efficiency in heterogeneous wireless access networks[J]. IEEE wireless communications, 2013, 20(5): 37-43.   本文提出了无线接入网节能的重要方面。我们特别关注最近发展的异构网络(HetNets)中的节能机会,包括单RAT和多RAT。(RAT无线接入技术)。

    2024年02月05日
    浏览(45)
  • 论文阅读:Retrieval-augmented Generation across Heterogeneous Knowledge

    跨异构知识的检索增强生成 NAACL 2022 论文链接 摘要 检索增强生成(RAG)方法越来越受到NLP社区的关注,并在许多NLP下游任务上取得了最先进的性能。与传统的预训练生成模型相比, RAG方法具有知识获取容易、可扩展性强、训练成本低等显著优点 。尽管现有的RAG模型已应用于

    2024年02月06日
    浏览(45)
  • [论文阅读]Visual Attention Network原文翻译

    [论文链接]https://arxiv.org/abs/2202.09741   虽然一开始是被设计用于自然语言处理任务的,但是自注意力机制在多个计算机视觉领域掀起了风暴。然而,图像的二维特性给自注意力用于计算机视觉带来了三个挑战。(1)将图像视作一维序列忽视了它们的二维结构;(2)二次复杂

    2024年02月09日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包