CANN/HCOMM通信模型详解
通信模型【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm图 1HCCL通信模型上图描述了HCCL的通信模型其中均为软件概念下面分别对相应概念进行解释通信内存通信成员上的一块内存可以注册给通信域表示这块内存可以被通信域内的其他通信成员访问。Endpoint表示与其他通信对象通信时使用的端口如网卡的NetDevice等。Endpoint包含地址与协议等属性一个Endpoint可能包含多个物理口比如Bonding场景。每个通信对象可以包含多个Endpoint。Channel通信对象基于特定Endpoint与其他通信对象特定Endpoint之间建立的通信通道。一对Endpoint之间可以建立多个Channel。创建Channel时本端与远端需要同步调用Channel创建接口。创建Channel时本端注册的内存信息会与远端注册的内存信息进行交换控制面也提供了基于Channel查询远端内存信息地址与大小的接口。通信模型又分为网络语义通信模型和内存语义通信模型网络语义通信模型通信算子开发者基于Channel访问远端通信对象内存或与远端通信对象同步。内存语义通信模型远端对象的通信内存可以映射到本地内存地址空间中通信算子开发者可以直接使用本地内存拷贝操作访问远端通信内存。网络语义通信模型在网络语义通信模型中用户使用Channel读写远端通信对象内存或与远端通信对象进行同步详见通信操作接口介绍。图 2网络语义通信模型网络语义通信模型的关键对象是Channel开发者可以在一对Endpoint之间创建多个Channel。下面打开Channel模型详细介绍内部元素。下图是RoCE协议下的Channel模型。图 3RoCE场景的Channel模型Channel是本地与远端对象通信的入口本端通信对象的Channel与远端通信对象的Channel具有一对一的关联关系。Channel关联一个或多个QPQueue Pair实例与远端Channel关联的QP实例存在对应关系Channel建立时对应QP会建链。Channel包含多个Notify实例用于通信对象之间的同步操作。Notify是用于同步操作的抽象概念在不同通信引擎下可能由不同实体实现。创建Channel时可以指定Channel包含的Notify实例数量。本端可以通过Channel向远端对象对应Channel中的某个Notify使用序号指定发送同步信号详见数据面接口章节。本端可以基于Channel的某个Notify等待来自远端通信对象的同步信号等到同步信号后才可以执行后续操作。内存语义通信模型在内存语义通信模型中远端对象的通信内存可以映射到本地进程地址空间中通信算子开发者可以使用本地操作接口实现节点间的数据搬运或同步详见本地操作接口。下图展示了HCCL的内存语义通信模型图 4内存语义通信模型Endpoint表示与其他通信对象进行通信时的网络逻辑口。内存语义通信模型下一个通信对象只有一个Endpoint。Endpoint包含地址与协议等属性一个Endpoint可能包含多个物理口比如Bonding场景。Channel本端通信对象与远端通信对象建立的通信通道在内存语义场景下Channel的建立表示两个通信对象之间的内存映射功能被使能不用于通信对象间的通信。一对通信对象之间只能创建一个Channel。创建Channel时本端注册的内存信息会与远端注册的内存信息进行交换并做内存映射。控制面提供了基于Channel查询远端内存在本端映射后的地址与大小。【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2599246.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!