本发明的实施例总体上涉及人工智能领域,更具体地涉及一种用于传输数据的方法、系统、计算装置、计算机可读存储介质和计算机程序产品。
背景技术:
1、在人工智能计算环境中涉及较为频繁的数据交互,例如,在主机(host)和设备(例如,gpu)之间需要传输相当数量的数据。其中,从 host 到 gpu 经由pcie传输的数据可能包括:直接内存访问(direct memory access,dma)数据、命令包、页表、核函数等等。在传统的主机和设备之间传输数据的方法中,数据通常是未经加密进行传输的,并且数据被未受保护地进行存储,由此,容易导致敏感数据的泄露。
2、综上,传统的用于传输数据的方法存在的不足之处在于:容易导致敏感数据的泄露。
技术实现思路
1、本发明提供了一种用于传输数据的方法、系统、计算装置、计算机可读存储介质和计算机程序产品,能够有效避免敏感数据的泄露。
2、根据本发明的第一方面,提供了一种用于传输数据的方法。该方法包括:获取主机与设备之间的交互数据,所述主机与设备配置有一个或多个物理隔离的硬件访问通路,所述交互数据包括业务数据和其他数据;将所述交互数据中的业务数据提供至密码引擎;以及经由密码引擎,针对所述业务数据进行加密和/或解密,所述密码引擎内联在硬件访问通路上。
3、在一些实施例中,所述密码引擎被配置为内联在设备侧的设备门户与高速总线之间,并且所述密码引擎被配置为基于机密计算模式标识而被启动或禁用。
4、在一些实施例中,所述交互数据为直接内存访问数据,所述其他数据包括:命令包、核函数、页表中的至少一种数据,所述方法还包括:经由设备门户,将所述交互数据中的其他数据提供至高带宽内存中的、与硬件访问通路相关联的开放缓冲区域;以及将经由密码引擎加密和/或解密的所述业务数据存储至高带宽内存中的、与硬件访问通路相关联的加密内存区域。
5、在一些实施例中,将所述交互数据中的业务数据提供至密码引擎包括:经由设备门户的安全检测模块,将从设备到主机的业务数据提供至密码引擎,密码引擎被配置为内联在设备门户和高速总线之间。
6、在一些实施例中,用于传输数据的方法还包括:在主机侧,经由内核模式驱动程序,调用加密算法以便针对待传输至设备侧的交互数据中的业务数据进行加密,以便将经加密的业务数据提供至加密缓冲器;经由内核模式驱动程序,将待传输至设备侧的交互数据中的其他数据提供至主机共享内存;以及将经加密的业务数据和未经加密的其他数据经由pcie提供至设备门户。
7、在一些实施例中,经由密码引擎,针对所述业务数据进行加密和/或解密包括:经由设备门户的安全检测模块,检查加密计算模式、关于交互数据的数据类型、以及硬件访问通路标识;响应于安全检测模块确定加密计算模式已经启动,并且所述数据类型指示业务数据,将业务数据提供给密码引擎,以便密码引擎针对业务数据进行解密;基于硬件访问通路标识,将经由解密的业务数据提供至高带宽内存中的、与硬件访问通路标识对应的加密内存区域;以及响应于安全检测模块确定所述数据类型指示其他数据,基于硬件访问通路标识,将其他数据提供至高带宽内存中的、与硬件访问通路标识对应的开放缓冲区域。
8、在一些实施例中,用于传输数据的方法还包括:将设备侧的高带宽内存划分出多个内存区域,以用于分别与硬件隔离的多个硬件访问通路相映射,多个硬件访问通路包括至少一个机密硬件访问通路;以及将与机密硬件访问通路对应的内存区域配置为开放缓冲区域和加密内存区域,所述开放缓冲区域用于存储与机密硬件访问通路相关联的其他数据,所述加密内存区域用于存储与机密硬件访问通路相关联的业务数据。
9、在一些实施例中,用于传输数据的方法还包括:经由密码引擎,针对来自设备门户的、待传输至主机侧的直接内存访问数据进行加密,以便获得经加密的直接内存访问数据;经由pcie,将经加密的直接内存访问数据提供至主机的指定缓冲区;以及通知主机的加密虚拟机,经加密的直接内存访问数据已准备好。
10、根据本发明的第二方面,还提供了一种系统。该系统包括:主机,被配置为经由pcie与设备之间传输交互数据;设备,所述设备至少包括:设备门户,获取主机与设备之间传输的交互数据,所述主机与设备配置有一个或多个物理隔离的硬件访问通路,所述交互数据包括业务数据和其他数据;以及密码引擎,被配置为针对所述业务数据进行加密和/或解密,所述密码引擎内联在硬件访问通路上。
11、根据本发明的第三方面,还提供了一种计算装置。该计算装置包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明的第一方面的方法。
12、根据本发明的第四方面,还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序被机器执行时执行本发明的第一方面的方法。
13、根据本发明的第五方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被机器执行时执行本发明的第一方面的方法。
14、应当理解,本发明不仅可以将主机与gpu之间的交互的业务数据进行加密和/或解密,从而有效避免敏感数据的泄露,而且不会带来因针对所有交互数据进行过多加解密运算而带来的性能消耗成本。
15、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种传输数据的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述密码引擎被配置为内联在设备侧的设备门户与高速总线之间,并且所述密码引擎被配置为基于机密计算模式标识而被启动或禁用。
3.根据权利要求1所述的方法,其特征在于,所述交互数据为直接内存访问数据,所述其他数据包括:命令包、核函数、页表中的至少一种数据,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,将所述交互数据中的业务数据提供至密码引擎包括:
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权利要求1所述的方法,其特征在于,经由密码引擎,针对所述业务数据进行加密和/或解密包括:
7.根据权利要求1所述的方法,其特征在于,还包括:
8.根据权利要求1所述的方法,其特征在于,还包括:
9.一种系统,其特征在于,包括:
10.一种计算装置,其特征在于,包括:
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被机器执行时执行根据权利要求1-8中任一项所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被机器执行时执行根据权利要求1-8中任一项所述的方法。