00:01
Hello,大家好,我是小彬。这是我的第八个技术视频,呃,今天给大家分享呃,UC他呃统一通信框架呃中的UCT也就穿破着统一通信传输层的一个项目简介,希望大家喜欢。首先我们打开文章。呃,来到U统一。通信的传输层的一个简介。呃,UT就是呃,统一通信传输层。它就是抽象了各种硬件价格之间的差异,并提供支持通信协议实现的低级API。该产品的主要目标是以最小的软件开销提供对硬件网络资源的直接有效的访问。
01:00
他有点类似于live fabric。然后。呃,所以这T是依赖于底层驱动程序的,比如说web共享内存,还有。I。呃,科大的。然后刚才还提供通信上下文的管理,比如说是呃UCS的a think context create u work create,以及设备特定存储器,包括加速器中的存储器的分配和管理的构造。在通信API方面,呃UT定义了立即的短消息。也就是。Andpoint a short。还有缓冲区的复制发送,呃。和您拷贝zero copy。呃。呃,短消息针对就地可以立即发布的消息进行了优化,然后。
02:03
B,呃,与所所谓的那个弹跳缓冲区发送的中等大小的消息进行了优化,最后z copy操作公开零复制内存到内存通信的语义,也就是说这个零拷贝它。呃,它的本质就是内存提前,呃经过RDM的注册,比如说呃IV瑞格MR。嗯。通讯语义。通讯语业的话。主要是提供的一个远程内存访问,嗯,Put语义语义。还有远程内存的原子操作,And fe and and swap compare and swap。呃,这个三十二六十四比特的那个参数。呃。
03:00
及活动消息am,嗯,下刷和那个栅栏也是flash and分,在很多技术的场景下都会有RT,因为有分的机制。呃,我们来看一下它的核心的功能。因为对外API的头文件都是在u.H里面。我们可以打开看一下。看一下函数。看到有些。Memory domain open。
04:02
我们看到有。Be copy copy。Get am相关的shot。原子操作。你的大概看一下。对,都是在这里面。然后呃,Put操作,有那个put short put copy copy get也是类似的。啊,活动消息消息也是有类似的。呃,原子操作的话,呃,大概说了一下,就是列这下面,呃,Tag操作这个T操作,呃。呃。结合libric里面也有类似的T操作,嗯,应该是主要用在那个mpi场景里面,会有那个T消息。啊,这种紧急的短消息,嗯,还有取消。
05:01
还有这个接收取消等。呃,重要的那个资源,比如说上下文和通信对象。呃。我们说内存E就是MD,呃,支持内存的注册、分配与使用,底层的传输。它里面有个函数操作表,还有定义的那个组件。嗯。MD resource保证有关当前经济可用的资源的信息具有独特属性,比如说带宽延迟消息梳理、CPU的分布top情况等。下面是它的结构,然后。这里面。资源描述表示网络的资源的对象。资源描述可以独立的通讯资源。通过物理接口定义的虚拟的通讯资源,然后这边比如说它是传输名字。网卡名字,硬件。设备。
06:01
还有设备的类型。这里面是他那个关联的一个系系统标识。然后接下来是worker对通信资源进行分组,并拥有呃驱动引擎的progress显示驱动UCT时需要传递worker对象。嗯,我们后面会讲这一块具体的调用站。呃,里面主要就是它有个。Progress。靠里面这里。私有的一些数据,呃,I face interface。对象都还。表示特定设备上的通讯资源具有唯一的网络地址,并且可能与之建立连接。还保存一个活动消息的表。活动下表。音的上面它。网络结合支持的函数操作表,就像我们上上面提到的put活动消息,然后原子操作,Tag操作。
07:05
Pending query出塞的对立。这里。Sizer。呃,同步的机制。连接的管理,Createct disconnect notify destroy get address。等。然后我们提到的拉下刷,还有那个三栏机制。这边还有那个progress in控制类的。驱动控制、精神控制。还有那个事件这个FD。还有我们下面的连接的。建立的获取设备地址。看他是不是柯达。嗯,然后接下来是endpoint结构与远程对等单略连接有两种呈现方法,一个是呃,创建一个连接,然后远程连接的端点,或者创建一个端点,然后将其。
08:12
呃,连接到远程的断点传输的。至少要支持这一种。然后我们。看到有几种类型,比如说RC reliable,可靠的连接类型,通过Q代表连接UD。UN reliable data gram,不可靠的数据报,这是地址句柄可靠的可信的状态,DC动态连接,呃,动态连接的话支持地址句柄。Addressed andra。共享内存,比如说map共享内存段。嗯。对在远程接口运行保护域内的任何虚拟地址都可以执行远程内存的访问rma remoteis。
09:04
然后这边支持排序语义具断点传输配置,硬件特性,排序属性暴露给上层三大操作可以插入命令执行。呃,完成与本地完成和远程完成。接着我们往下看操作句柄的分配。可能无法立即完成。本地完成。都是通讯API的,是operation。ER。再下面一个。枯否?这里面有那个向回调的结构,用户的分配因只是本地完成,用户应该使用机器回调初始化该结构。机器达到零的时候调用会掉。
10:01
嗯。下面有一个使用的事例。然后的话。活跃的消息,因为它指定回调线程是否是线程安全的。如果不是,这传输必须仅在API调用时期间调用它,而不是从进路线程,如果存在中调用它,回来可以调用任何图形函数,但不能调用progress。这样的话就出现了地轨循环调用。回调的时候,将所需要的操作放在待处理堆里。一方无法启动。嗯,进度与progress,呃,在我们的那个里面也有这种,还有trigger,都是驱动。与类似的工作有一个明确的进度函数I ma和ma,就是auto make操作。
11:06
不需要在物流里显示的调用镜头,如果不支持这个的话,硬件的这个就应该在。Software中进行模拟那种线程安全,所有函数都是线程安全的。嗯,那编辑是可以指定那个。呃,线程事务安全包括所得力度的每个上下文,或者或者尽最大努力从多个线程处理相同的上下。嗯,这是一些编译参数,控制锁的力度,还有那个现场安全。然后内存处理、内存域的支持、分配、释放和注册,取消注册。其实就是RD的类似于R的IV第第二位,所以那种表示为memory.h下方点H。
12:01
呃,为了允许远程的一个访问的话,也就是我们常常说的那个bug,就必须要将那个注册后的RK通过带外的机制给传递到交换给。还在两个端点之间交换。嗯。A直接用于rma。Inleon。像内存域就是MD可以选择缓存机制,比如说内存池啊降低去拍照。或者说按恩这个按需分业的机制。欧迪欧迪皮。呃,这中将有一个函数可以计算出使用多个传输注册内存的正确顺序。恩,数据规格我们刚才已经说了,是短的内敛修的,然后。还有复制。
13:01
林拷贝。呃,单位的分散聚集表。Hi victor。还有项链。呃,连接的建立。就是传输的是本地的操作创建。Crater and point。还有这边connect to endpoint connect to可选择传输能力。这边一侧调用它就足够了,上面这个是两边都要掉。然后。D。Dynamic connection动态连接。孕食的环境。这些没啊,还有回流表。点了点的鱼。然后我们从代码的角度来看,简单看一下它的DEMOUT传输成的服务端和客户端的示例代码的位置是在这个。
14:08
Example下面的那个,然后编译的时候切下去,然后编译。编译的时候,编译完了之后,它这是一个脚本,然后执行。选择一个device type,选择RC可靠连接的vvo,用零拷贝杠Z。啊,客户端就去杠杆指定那个地址。同样的类似的参数连过去我们。看一下这个。你看这里面它服务端和客户端共用一套代码。下面。在里面可以去刷一些火焰图。停在这里的时候,可以通过进城去抓火凝土。然后这边比如说服务器启动的时候,我们看一下他会打有什么信息啊。
15:03
我使用的对战,然后这边命令行打出来。嗯。加载模块。网卡,然后。FD。包括内存池的一个初始化。后面这些都会喜欢的。今天呢,我先大概也做一个简介。这边。当客户端连接时候,它通过QP的状态转换IV modify q p q p的状态,比如说r tr rts read to read read to send来建立QQ连接,连接建好之后,这边会做一个打印,一个调试信息。呃,Li,还有remote m tu time这些都会打印出来,然后。
16:04
这边发出一侧成功。销毁出去,然后我们看客户端的日志。客户端的话,它也是先通过那个TCP的去建立连接。这边。类似的操作。也说他这个提供调试信息,也是可以通过这个环境变量。比如说有些叉,像一些logo,等于debug,它有很多种模式,后面的文章里面也会有提到。嗯,今天的大部分内容都在这里,然后这边有讲它的一个设计。设计文档。然后也设计。我们看一下。
17:06
设计文档是怎么设计的?就结合这个翻译过来的。这边也有讲到它的一些API。这里面我看一下刚才提到的一个UD。DC。动态连接,关于动态连接,我这边应该是有。我看一下这里面有个动态连接DC,你看我们看到那个英维达的那个,呃,就是麦洛斯网卡里面也有讲到动态连接。20。四二适用于大型的那个集群。科尔的数量比较多,非常多,包括什么E啊?
18:05
非常多的。就是动态连接的话,设计用来解决这个弹性化的。大型系统里面弹性化的那个可靠连接。用户可以打开。一批资源。控制这个集群的大小。这是RC的一个传输服务,然后这边是DC的。从C5就开始支持DC了。我看它的那个不用做那种类似于的连接。
19:03
这就是一个RC和DC的一个区别。着杯子吧。嗯。上面有些网卡的一些原理,还有机制。后面有机会给大家详细讲这一块。DC的一些基本的一些初始化之类的,对。这个是那个。我不是借口好的。OK,今天的这个简介也就到此为止,希望大家喜欢。然后。我看一下。
20:01
今天只是一个简介。看一下。OK,后面还有那个深入,还有那个一些原文阅读。包括一些排查的一些命令。老婆人。比如说他的那个。呃。的一些。笔记项目的笔记。还有那个RD的一些笔记,对。反正没的笔记。沛县。大家看一下这里面的。这个是比较细的一个。看还有什么东西。我导给我的点赞。还有一个组织流程,然后服务端怎么起来的,然后。这别有包括有一些重要函数的一些解释。
21:02
大概可以看一下。后面慢慢。给大家来一一的讲解这些啊,客户端的流程对。您拷贝的。记者。要被他。从最开始的一个buffer。注册,然后怎么给您拷贝到远端的。单位操作。OK。像剪辑,包括这个。这个详解的一个预览就到此结束了,希望大家喜欢。拜拜。
我来说两句