[发明专利]一种用于硬件加速设备与docker内进程通信的方法与系统在审
申请号: | 202110014750.4 | 申请日: | 2021-01-06 |
公开(公告)号: | CN112764877A | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 吴礼福;葛长恩 | 申请(专利权)人: | 北京睿芯高通量科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/54;H04L29/08 |
代理公司: | 北京科龙寰宇知识产权代理有限责任公司 11139 | 代理人: | 孙皓晨 |
地址: | 102600 北京市大兴区北京经济技*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 硬件加速 设备 docker 进程 通信 方法 系统 | ||
1.一种用于硬件加速设备与docker内进程通信的方法,其特征在于,包括以下步骤:
S1:主机服务端启动,并检测外部设备;
S2:所述主机根据检测到的外部设备创建虚拟文件和共享内存,等待客户端连接;
S3:启动docker,将docker的网络模式设置为主机模式,并将所述虚拟文件所在的目录映射到docker内;
S4:启动docker内的应用程序,建立与所述主机的网络连接并执行处理任务;
S5:完成任务后,所述docker内的应用程序与所述主机断开连接。
2.根据权利要求1所述的方法,其特征在于,若步骤S1中检测到多个外部设备,则在步骤S2中创建虚拟文件时需要根据对应外部设备的设备ID为每个设备创建一个独立的虚拟文件。
3.根据权利要求2所述的方法,其特征在于,步骤S2具体为:
S21:所述主机根据检测到的外部设备创建虚拟文件;
S22:所述主机将所述虚拟文件映射到内存,然后将内存属性设置为共享内存,建立主机共享内存;
S23:所述主机对映射的所述主机共享内存进行初始化;
S24:所述主机等待客户端连接。
4.根据权利要求3所述的方法,其特征在于,步骤S4具体为:
S41:启动docker内的应用程序,所述docker内的应用程序作为客户端建立与所述主机的网络连接,并获取当前占用的对应外部设备的设备ID和通道ID;
S42:根据获取的所述设备ID和所述通道ID,docker内的应用程序在docker内将对应的虚拟文件映射到docker内存中,创建docker共享内存;
S43:docker内的应用程序读取docker本地数据,并通过所述docker共享内存与所述主机共享内存的数据同步将本地数据发送到主机服务端;
S44:所述主机服务端将本地数据存入所述主机共享内存中与通道对应的输入缓冲区,对应外部设备直接读取输入缓冲区的本地数据并进行处理,然后将处理后的数据返回所述主机共享内存中的输出缓冲区;
S45:docker内的应用程序通过所述docker共享内存与所述主机共享内存的数据同步读取处理后的数据,并保存在docker本地;
S46:循环执行S44~S45。
5.根据权利要求4所述的方法,其特征在于,步骤S44中还包括:所述主机将所述主机共享内存的首地址传递给与主机连接的对应外部设备,所述外部设备根据首地址直接读取所述主机共享内存中的数据。
6.根据权利要求4所述的方法,其特征在于,步骤S5具体为:
当所有本地数据处理完成后,docker内的应用程序断开与所述主机的连接并删除docker共享内存。
7.根据权利要求1所述的方法,其特征在于,所述docker内的应用程序与所述主机建立的网络连接为socket连接。
8.一种用于用于硬件加速设备与docker内进程通信的系统,用于执行权利要求1-7任一项的方法,其特征在于,包括:
一主机,作为宿主机;
一docker,设置在所述主机内,其网络模式设置为主机模式,所述docker包含docker内的应用程序;
一虚拟文件,在所述主机内由所述主机创建,并作为所述主机与所述docker数据同步的载体通过文件映射的方式映射到所述docker内;
一主机共享内存,在所述主机内由所述虚拟文件映射生成;
一docker共享内存,在所述docker内由所述虚拟文件映射生成,并与所述主机共享内存数据同步;
至少一外部设备,与所述主机连接并直接读取所述主机共享内存中的数据。
9.根据权利要求8所述的系统,其特征在于,任一外部设备对所述主机共享内存的读写操作是通过将所述主机共享内存的首地址传递给所述外部设备实现的,且所述外部设备对所述主机共享内存的读写操作由所述主机共享内存中的互斥变量控制。
10.根据权利要求8所述的系统,其特征在于,所述docker内的应用程序对所述docker共享内存的读写操作是通过将所述docker共享内存的首地址传递给所述docker内的应用程序实现的,且所述docker内的应用程序对所述docker共享内存的读写操作由所述docker共享内存中的互斥变量控制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京睿芯高通量科技有限公司,未经北京睿芯高通量科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110014750.4/1.html,转载请声明来源钻瓜专利网。