[發明專利]一種用于硬件加速設備與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.szxzyx.cn/pat/books/202110014750.4/1.html,轉載請聲明來源鉆瓜專利網。





