当前位置: 首页 > news >正文

贵州建设厅网站八大员报名入口wordpress微信支付插件

贵州建设厅网站八大员报名入口,wordpress微信支付插件,爱站网关键词密度查询,wordpress 页面属性 模版一、RDMA概述 首先我们介绍一下RDMA的一些核心概念#xff0c;当然了#xff0c;我并不打算写他的API以及调用方式#xff0c;我们更多关注这些基础概念背后的硬件执行方式和原理#xff0c;对于这些原理的理解是能够写出高性能RDMA程序的关键。 Memory Region RDMA的网…一、RDMA概述 首先我们介绍一下RDMA的一些核心概念当然了我并不打算写他的API以及调用方式我们更多关注这些基础概念背后的硬件执行方式和原理对于这些原理的理解是能够写出高性能RDMA程序的关键。 Memory Region RDMA的网卡下文以RNIC指代通过DMA来读写系统内存由于DMA只能根据物理地址访问所以RNIC需要保存一份目标内存区域的虚拟内存到物理内存的映射表这个映射表被存储在RNIC的Memory Translation TableMTT中。同时由于目前RDMA的访问大都基于Direct Cache Access不支持page-fault所以我们还需要保证目标内存区域是被pagelock住以防止操作系统将这部分内存页换出。 总结一下就是当我们使用RDMA来访问一块内存的时候这部分内存首先要被pagelock接着我们还需要把这块内存虚拟地址到逻辑地址的映射表发送给RNIC用于后续的访问查找这个过程就叫Memory Registeration这块被注册的内存就是Memory Region。同时我们注册内存的时候需要指定这块内存的访问权限RNIC将这个访问权限信息存储在Memory Protection TablesMPT中用于用户请求时的权限验证。 MTT和MPT被存储在内存中但是RNIC的SRAM中会进行缓存。当RNIC接收到来自用户的READ/WRITE请求的时候首先在SRAM中的缓存中查找用户请求的目标地址对应的物理地址以及这块地址对应的访问权限如果缓存命中了就直接基于DMA进行操作如果没有命中就得通过PCIe发送请求在内存的MTT和MPT中进行查找这带来了相当的额外开销尤其是当你的应用场景需要大量的、细粒度的内存访问的时候此时RNIC SRAM中的MTT/MPT命中缺失带来的影响可能是致命的。 Memory Region的注册是一个耗时的操作但大部分情况下我们都只需要在最开始的时候做一次或者多次。现在也有不需要注册MR基于on-demand paging的方式来访问的比如AWS的EFA协议。但今天先不展开这块的内容因为这块更多是Unified Memory这个话题下的之后我可能会把这个和GPU的UVM放在一起介绍下因为他们的核心原理其实是一样的。 RDMA Verbs 用户通过RDMA的Verbs API向RNIC发送指令Verbs分为Memory Verbs和Message VerbsMemory Verbs主要就是READ、WRITE以及一些ATOMIC的操作Message Verbs主要包含SEND、RECV。Memory verbs是真正的CPU Bypass以及Kernel Bypass所以总归是性能比较好的。Message Verbs需要Responder的CPU的参与相对而言更灵活但是性能相比Memory Verbs而言一般不太行。 Queue Pair RDMA的hosts之间是通过Queue Pair(QP)来通信的一个QP包含一个Send Queue(SQ)一个Receive Queue(RQ)以及对应的Send Completion Queue(SCQ)和Receive Completion Queue(RCQ)。用户发送请求的时候把请求封装为一个Work Queue Element(WQE)发送到SQ里面然后RDMA网卡会把这个WQE发送出去当这个WQE完成的时候对应的SCQ里面会被放一个Completion Queue Element(CQE)然后用户可以从SCQ里面Poll这个CQE并通过检查状态来确认对应的WQE是否成功完成。需要指出的是不同的QP可以共用CQ来减少SRAM的存储消耗。 接下来我们重点介绍一下QP背后的知识。 首先当我们创建了QP之后系统是需要保存状态数据的比如QP的metadata拥塞控制状态等等除去QP中的WQE、MTT、MPT一个QP大约对应375B的状态数据。这在以前RNIC的SRAM比较小的时候会是一个比较重的存储负担所以以前的RDMA工作会有QP Sharing的研究就是不同的处理线程去共用QP来减少meta data的存储压力但是这会带来一定的性能的损失[1]。现在新的RNIC的SRAM已经比较大了Mellanox的CX4、CX5系列的网卡的SRAM大约2MB所以现在新网卡上大家还是比较少去关注QP带来的存储开销除非你要创建几千个几万个QP。 其次RNIC是包含多个Processing Unit(PU)的[2]同时由于QP内的请求处理是具有顺序的且为了避免cross-PU的同步一般而言我们认为一个QP对应一个PU来处理。所以我们可以在一个线程内建立多个QP来加速你数据处理避免RDMA程序性能瓶颈卡在PU的处理上[3]。 二、RDMA性能优化 RDMA性能优化这个东西说复杂也复杂说简单也简单。简单的点在于从性能优化角度而言其实软件层面我们可以做的设计和选择不会太多因为性能上限是被硬件卡住的所以我们为了追求尽可能逼近硬件上限的性能表现其核心就在于按照硬件最友好的方式去做数据访问即可没有特别多复杂的算法在这里面当你想要高性能的时候多多了解硬件就对了。对照着我们在上面介绍的三个核心概念我们一一介绍性能优化的经验。 2.1 关注地址翻译的性能开销 前面我们提到当待请求的数据地址在RNIC SRAM中的MTT/MPT没有命中的时候RNIC需要通过PCIe去在内存中的MTT和MPT进行查找这是一个耗时的操作。尤其是当我们需要 high fan-out、fine-grained的数据访问时这个开销会尤为的明显。现有针对这个问题的优化方式主要有两种 Large Page无论是MTT亦或者操作系统的Page Table虚拟地址到物理地址的映射表项是Page粒度的即一个Page对应一个MTT的Entry或者Page Table的EntryPTE。使用Large Page可以有效的减少MTT的Size进而使得RNIC中的MTT Cache命中率更高。使用Contiguous Memory PA-MR[4, 5]。新一代的CX网卡支持用户基于物理地址访问为了避免维护一个繁重的Page Table我们可以通过Linux的CMA API来申请一大块连续的物理内存。这样我们的MTT就只有一项可以保证100%的Cache命中率。但是这个本身有一些安全隐患因为使用PA-MR会绕过访问权限验证所以使用的时候要注意这点。 当然其实还有一些别的优化手段在最近我们的工作中提出一种新的方式来提升地址翻译的性能具体等工作开源出来之后我再来介绍介绍。 2.2 关注RNIC PU/QP的执行模型 一个QP对应一个PU这是我们对RNIC执行方式的一个简单建模。这个模型下我们需要通过多QP来充分发挥多PU并行处理的能力同时也要关注我们的操作减少PU之间的同步PU之间同步对于性能有着较大的伤害。 2.3 RMDA Verbs 对于RDMA的Verbs的使用以我个人的经验来看就是优先使用READ/WRITE在一些需要CPU介入且需要Batch处理逻辑的可以尝试使用SEND/RECV。过往的工作有很多基于READ/WRITE去构建Message Passing处理语义的工作[1, 6, 7]可以着重参考。 同时一个READ/WRITE的WQE可以通过设置对应的FLAG来设置其是否需要在完成时需要被SIGNALED如果不需要则该WQE完成时不会产生一个CQE。此时一个常见的优化技巧是当你需要连续在一个QP中发送K个READ/WRITE请求时只把最后一个请求设置为SIGNALED其他均为UNSIGNALED由于QP的执行本身具备顺序关系所以最后一个执行完了后一定意味着之前的WQE都已经执行完了。当然是否执行成功需要Application-Specific的方法来确认。 三、 RNIC X 最经典的RNIC的使用方式自然是RNIC System Memory即直接通过RNIC来访问内存。但是随着GP-GPU、NVM的发展通过RNIC来直接访问GPU或者通过RNIC来直接访问NVM都是目前比较成熟和热门的技术。RDMA GPU可以大幅度加速GPU和GPU之间的通信RDMA NVM则可以大幅度的扩大内存容量减少网络通信的需求。这块内容既涉及到硬件又涉及到操作系统的虚拟内存机制要讲清楚需要不少篇幅我们放在下一篇进行介绍。 四、总结 本篇文章主要是介绍一些RDMA的基础概念以及背后的原理基于这些概念和原理我们介绍了RDMA的常见性能优化技巧下一篇我们将会介绍RNIC X包括RNIC GPU以及RNIC NVM的内容介绍感兴趣的读者朋友可以保持关注。
http://www.pierceye.com/news/604/

相关文章:

  • 重庆市建设工程安全网站深圳餐饮网站建设
  • 海南旅游网站建设方式p2p网站开发的流程图
  • 南平建设网站wordpress手机端和pc端兼容
  • 做本地的门户网站代刷网站开发
  • 个人成立公司怎么做企业网站做网站备案 空间是什么意思
  • 那个公司做的网站详情页好看网站营销费用
  • 电白建设局网站网站建设的一些名词
  • 如何建立公司企业网站中国风网站怎么配色
  • 上海网站制作上海网站制作平面设计软件网站
  • 中国建设信用卡积分兑换网站网站建设百科
  • 公司做百度网站要多少钱wordpress 端口
  • 合肥做网站工作室微信开放平台登录入口
  • 南宁seo网站建设费用wordpress全站美化
  • 做网站在图片里加文字地方型旅游网站
  • 建设银行遵义分行网站网易企业邮箱登入入口
  • 淘宝网站是谁做的印尼请人做网站
  • 园林景观设计公司做抖音推广措施seo社区
  • 网站定时数据切换怎么做的互联网创业就是做网站吗
  • 网站关键词百度指数wordpress移动广告不显示不出来
  • 怎么把自己做的网站挂到外网上住房和城乡建设部网站投诉电话
  • 制作网站软件下载wordpress演示
  • 视频网站开发代码wordpress 小程序哪个
  • 网站竞价托管建站价格会差
  • 石家庄网站建设网站建设凡科网站投票排行榜是怎么做的
  • 网站建设流程方案如何找有需求做网站的公司
  • 神鹰网站建设公司openresty wordpress
  • iis .net 网站架设自己建个网站需要什么
  • 网站后台登录地址怎么安全网站底部友情链接
  • 高端网站建设如何收费上海网站制作建设是什么
  • 深圳市国外网站建设服务机构做韩国外贸网站