可左右滑动选省市

用于软硬件适配的方法、计算装置、介质和程序产品

更新时间:2024-10-01
用于软硬件适配的方法、计算装置、介质和程序产品 专利申请类型:发明专利;
源自:北京高价值专利检索信息库;

专利名称:用于软硬件适配的方法、计算装置、介质和程序产品

专利类型:发明专利

专利申请号:CN202410444215.6

专利申请(专利权)人:北京壁仞科技开发有限公司,上海壁仞科技股份有限公司
权利人地址:北京市朝阳区望京东园四区13号楼-4至33层101内10层201室

专利发明(设计)人:请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名

专利摘要:本发明涉及一种用于软硬件适配的方法、计算装置、介质和程序产品。该方法包括:获取操作指令所涉及的算子;将所获取的算子缓存在缓冲区,以形成原始算子序列,原始算子序列包括多个算子;针对所缓存的原始算子序列中的算子进行融合模式匹配,以便针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列,所述经由融合而更新的算子序列包括融合算子;以及在执行器中针对经由融合而更新的算子序列进行执行。本发明不仅能够实现软硬件适配的工作量可控,而且保持了不同算子在执行方式上的灵活性。

主权利要求:
1.一种用于软硬件适配的方法,其特征在于,所述方法包括:获取操作指令所涉及的算子;
将所获取的算子缓存在缓冲区,以形成原始算子序列,原始算子序列包括多个算子;
针对所缓存的原始算子序列中的算子进行融合模式匹配,以便针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列,所述经由融合而更新的算子序列包括融合算子;以及在执行器中针对经由融合而更新的算子序列进行执行;
其中,所述方法还包括:
确定硬件是否支持所述融合算子和融合模式匹配失败的算子;以及响应于确定硬件不支持所述融合算子和融合模式匹配失败的算子,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列。
2.根据权利要求1所述的方法,其特征在于,针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列包括:针对融合模式匹配成功的算子进行融合,以便生成所述融合算子;以及利用所述融合算子更新原始算子序列,以便形成经由融合而更新的算子序列,所述经由融合而更新的算子序列还包括原始算子序列中的、融合模式匹配失败的算子。
3.根据权利要求2所述的方法,其特征在于,获得元算子序列包括:基于元算子集合,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列,所述元算子集合包括多个元算子,所述元算子的粒度小于融合算子的粒度。
4.根据权利要求3所述的方法,其特征在于,还包括:将元算子序列和分解失败的算子在执行器中进行执行。
5.根据权利要求3所述的方法,其特征在于,还包括:获取硬件配置信息;
基于硬件配置信息,确定硬件是否满足预定条件;
响应于确定硬件满足预定条件,在执行器中针对经由融合而更新的算子序列进行执行;以及响应于确定硬件不满足预定条件,在执行器中针对元算子序列和分解失败的算子进行执行。
6.一种计算装置,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑5中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被机器执行时执行根据权利要求1‑5中任一项所述的方法。
8.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被机器执行时执行根据权利要求1‑5中任一项所述的方法。 说明书 : 用于软硬件适配的方法、计算装置、介质和程序产品技术领域[0001] 本发明的实施例总体上涉及人工智能领域,更具体地涉及一种用于软硬件适配的方法、计算装置、计算机可读存储介质和计算机程序产品。背景技术[0002] 随着人工智能技术,特别是深度学习技术的日趋成熟和应用落地,越来越多的模型被开发了出来。如何快速在各类加速硬件中支持种类繁多的模型,以使得软硬件快速而稳定地适配,在技术上变得尤为关键。[0003] 传统的用于软硬件适配的方法主要包括两种。第一种是将所有后端算子在新硬件平台逐一实现的方式。第二种是采用AI编译器提前生成静态执行图的方式。针对第一种方式,当深度学习框架增加新硬件支持时,需要将所有后端算子在新硬件平台上实现一遍。但后端算子数量繁多,因此,第一种方式通常带来巨大的工作量。针对第二种方式,需要采用AI编译器先生成静态执行图,再在静态图优化基础上,通过针对大算子进行分解,使其分解到一个闭包小算子集合中,再在小算子基础上进行进一步优化。在第二种方案中,虽然可以实现少量算子能被新硬件所支持,但由于需要借用AI编译器提前生成静态图,并且后继工作都基于静态图进行,即所有算子都必须遵照统一的方式执行,因此,其失去了不同的算子在不同的执行方式下执行的灵活性,同时在算子粒度控制上难以做到可控。[0004] 综上,传统的用于软硬件适配的方法存在的不足之处在于:实现软硬件适配的工作量巨大,并且针对不同算子在执行方式缺乏灵活性。发明内容[0005] 本发明提供了一种用于软硬件适配的方法、计算装置、计算机可读存储介质和计算机程序产品,不仅能够实现软硬件适配的工作量可控,而且保持了不同算子在执行方式上的灵活性。[0006] 根据本发明的第一方面,提供了一种用于软硬件适配的方法。该方法包括:获取操作指令所涉及的算子;将所获取的算子缓存在缓冲区,以形成原始算子序列,原始算子序列包括多个算子;针对所缓存的原始算子序列中的算子进行融合模式匹配,以便针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列,所述经由融合而更新的算子序列包括融合算子;以及在执行器中针对经由融合而更新的算子序列进行执行。[0007] 在一些实施例中,针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列包括:针对融合模式匹配成功的算子进行融合,以便生成所述融合算子;以及利用所述融合算子更新原始算子序列,以便形成经由融合而更新的算子序列,所述经由融合而更新的算子序列还包括原始算子序列中的、融合模式匹配失败的算子。[0008] 在一些实施例中,用于软硬件适配的方法还包括:基于元算子集合,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列,所述元算子集合包括多个元算子,所述元算子的粒度小于融合算子的粒度。[0009] 在一些实施例中,用于软硬件适配的方法还包括:将元算子序列和分解失败的算子在执行器中进行执行。[0010] 在一些实施例中,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列包括:确定硬件是否支持所述融合算子和融合模式匹配失败的算子;以及响应于确定硬件不支持所述融合算子和融合模式匹配失败的算子,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列。[0011] 在一些实施例中,用于软硬件适配的方法还包括:获取硬件配置信息;基于硬件配置信息,确定硬件是否满足预定条件;响应于硬件满足预定条件,在执行器中针对经由融合而更新的算子序列进行执行;以及响应于硬件不满足预定条件,在执行器中针对元算子序列和分解失败的算子进行执行。[0012] 根据本发明的第二方面,还提供了一种计算装置。该计算装置包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使计算装置能够执行本发明的第一方面的方法。[0013] 根据本发明的第三方面,还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序被机器执行时执行本发明的第一方面的方法。[0014] 根据本发明的第四方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被机器执行时执行本发明的第一方面的方法。[0015] 应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。附图说明[0016] 结合附图并参考以下详细说明,本发明各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。[0017] 图1示意性示出了根据本发明实施例的实施用于软硬件适配的方法的计算装置的示意图。[0018] 图2示出了根据本发明的实施例的用于软硬件适配的方法的流程图。[0019] 图3示出了根据本发明的实施例的用于分解算子的方法的流程图。[0020] 图4示出了根据本发明的实施例的用于调度算子的方法的流程图。[0021] 在各个附图中,相同或对应的标号表示相同或对应的部分。具体实施方式[0022] 下面将参照附图更详细地描述本发明的优选实施例。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。[0023] 在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。[0024] 如前文所描述,传统的用于软硬件适配的方法主要包括两种。第一种是将所有后端算子在新硬件平台逐一实现的方式。第二种是采用AI编译器提前生成静态执行图的方式。在将所有后端算子(例如而不限于是深度学习框架中的函数或者接口)在新硬件平台上逐一实现的方式中,由于后端算子量往往非常多(例如,PyTorch就有2198个各类算子),因此,上述方式意味着巨大的工作量和时间。在采用AI编译器提前生成静态执行图的方式中,例如根据前端语言(如python)描述的神经网络结构和参数信息构建固定的静态计算图。然后再执行静态计算图中涉及的计算操作。在静态图模式下,编译器可以通过使用图优化等技术来获得更好的执行性能,有助于规模部署和跨平台运行。经由编译的静态执行图可以适配不同的硬件,例如加速卡、加速器等。由于上述方法需要采用AI编译器先生成静态执行图,再在对静态图优化基础上进行进一步优化。因此,该方法虽然可以减少算子的适配量,但是其需要借用AI编译器,提前生成静态图。并且所有后继工作都需要基于静态图进行,因此,针对不同算子在执行方式上缺乏灵活性,例如,失去了动态图的灵活性。并且在算子的粒度上难以实现可控。[0025] 综上,传统的用于软硬件适配的方法存在的不足之处在于:实现软硬件适配的工作量巨大,并且针对不同算子在执行方式上缺乏灵活性。[0026] 为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本发明的示例实施例提出了一种用于软硬件适配的方法。在该方法中,通过将所获取的操作指令所涉及的算子缓存在缓冲区,以形成包括多个算子的原始算子序列;然后,针对原始算子序列中的算子进行融合模式匹配,以便针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列;以及在执行器中针对经由融合而更新的算子序列进行执行;本发明通过将所缓存的算子序列中融合模式匹配成功的算子进行融合,以形成融合算子用以执行器执行,因此,可以显著减少待执行算子的数量,以及减少多个算子中间输入输出,进而提高加速器件效率的目的。另外,本发明无需提前生成静态图,可以灵活的将不同的算子在不同的执行方式下执行。因而,本发明不仅能够实现软硬件适配的工作量可控,而且保持了不同算子在执行方式上的灵活性。[0027] 图1示意性示出了根据本发明实施例的实施用于软硬件适配的方法的计算装置100的示意图。如图1所示,计算装置100可以具有一个或多个处理单元,包括诸如图形处理器(GraphicsProcessingUnit,GPU)、现场可程序化逻辑门阵列(FieldProgrammableGateArray,FPGA)、专门应用的集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者通用图形处理器(General‑purposecomputingongraphicsprocessingunits,GPGPU)等的专用处理单元以及诸如CPU的通用处理单元。计算装置100至少还包括:算子获取单元102、原始算子序列形成单元104、经由融合而更新的算子序列获得单元106、以及经由融合而更新的算子序列执行单元108。[0028] 关于算子获取单元102,其用于获取操作指令所涉及的算子。[0029] 关于原始算子序列形成单元104,其用于将所获取的算子缓存在缓冲区,以形成原始算子序列,原始算子序列包括多个算子。[0030] 关于经由融合而更新的算子序列获得单元106,其用于针对所缓存的原始算子序列中的算子进行融合模式匹配,以便针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列,所述经由融合而更新的算子序列包括融合算子。[0031] 关于经由融合而更新的算子序列执行单元108,其用于在执行器中针对经由融合而更新的算子序列进行执行[0032] 以下将结合图2描述本发明的实施例的用于软硬件适配的方法200。图2示出了根据本发明的实施例的用于软硬件适配的方法200的流程图。应当理解,方法200例如可以在图1所描述的计算装置100处执行。方法200还可以包括未示出的附加动作和/或可以省略所示出的动作,本发明的范围在此方面不受限制。[0033] 在步骤202处,计算装置100获取操作指令所涉及的算子。[0034] 例如,计算装置100在动态执行脚本(例如Python脚本)时,获得操作指令所涉及的算子。[0035] 关于计算装置100,在一些实施例中,其例如是用于实现深度学习训练框架的装置。应当理解,深度学习框架是一种能够支持人工神经网络进行搭建、训练、调试和部署的软件平台。其可以为深度学习提供一种快捷、可重复和可扩展的开发环境,用以帮助研究者和工程师们更快地研究和开发出复杂的深度学习模型。[0036] 在步骤204处,计算装置100将所获取的算子缓存在缓冲区,以形成原始算子序列,原始算子序列包括多个算子。[0037] 例如,计算装置100并不直接将所获取的算子在硬件的执行器中立即进行执行,而是将所获取的算子缓存在缓冲区,以便形成包括多个算子的原始算子序列。[0038] 在步骤206处,计算装置100针对所缓存的原始算子序列中的算子进行融合模式匹配,以便针对融合模式匹配成功的算子进行融合,用以获得经由融合而更新的算子序列,所述经由融合而更新的算子序列包括融合算子。[0039] 关于融合算子,其例如是代表复合运算的算子,例如,计算装置100根据算子的数学运算逻辑将算子序列中的多个算子整合至一个复合计算中,从而形成融合算子。应当理解,通过采用上述手段,本发明可以显著减少多个算子的中间输入输出,以及提高加速器件效率为目的。[0040] 关于针对所缓存的原始算子序列中的算子进行融合模式匹配的方法,其例如包括:计算装置100基于原始算子序列中的待融合算子的融合对于执行计算的高效性的影响程度,来确定待融合算子是否针对融合模式匹配成功。例如,原始算子序列中的重复算子,其属于融合模式匹配成功的算子,可以被融合,以形成执行更为高效的融合算子。再例如,“除”算子和“乘”算子可以属于融合模式匹配成功的算子。例如,将“除”算子转换为乘以倒数的算子,再与其他“乘”算子进行融合。[0041] 例如,计算装置100在缓冲区中针对原始算子序列中的多个算子进行融合模式匹配成功与否的确认。例如,缓冲区中缓存了第一算子至第六算子。计算装置100例如确认第三算子、第四算子和第五算子融合模式匹配成功,则将第三算子、第四算子和第五算子进行融合,用以获得融合算子,该融合算子例如是经融合而更新的第三算子。则由融合而更新的算子序列例如包括:第一算子、经融合而更新的第三算子、以及第六算子。更新算子序列例如包括融合算子、以及融合模式匹配未成功的算子。[0042] 在步骤208处,计算装置100在执行器中针对经由融合而更新的算子序列进行执行。例如,计算装置100将更新算子序列中的融合算子、以及融合模式匹配未成功的算子在执行器中进行执行。[0043] 应当理解,执行器针对融合算子进行执行,可以减少计算过程中的数据传输开销和重复计算。因此,通过算子融合,可以显著提高模型训练和推断的速度。[0044] 在上述方案中,本发明通过将所缓存的算子序列中融合模式匹配成功的算子进行融合,以形成融合算子用以执行器执行,因此,可以显著减少待执行算子的数量,以及减少多个算子中间输入输出,进而提高加速器件效率的目的。例如,通过本发明方法,可以将原来数千的算子适配变成了数百甚至更少,由此可以显著减少待执行算子的数量,进而可以显著减少了软硬件适配的工作量,以及减少多个算子中间输入输出,进而提高加速器件效率的目的。另外,本发明无需提前生成静态图,由此,可以灵活的将不同的算子在不同的执行方式下执行。因而,本发明能够实现软硬件适配的工作量可控,而且保持了不同算子在执行方式上的灵活性。[0045] 以下将结合图3描述本发明的实施例的用于分解算子的方法300。图3示出了根据本发明的实施例的用于分解算子的方法300的流程图。应当理解,方法300例如可以在图1所描述的计算装置100处执行。方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本发明的范围在此方面不受限制。[0046] 在步骤302处,计算装置100基于元算子集合,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列,所述元算子集合包括多个元算子,所述元算子的粒度小于融合算子的粒度。[0047] 关于元算子集合,其例如是更小粒度的算子集合。元算子集合包括多个元算子。例如,“加”算子、“除”算子、“按位与”算子、“按位异或”算子等等。以下表1例如示例了元算子集合中的元算子。[0048] 表1[0049][0050] 关于针对算子进行分解的方式,其例如是将复杂的算子或函数拆分为更简单、更容易处理的部分,即,元算子,以便执行器更好地理解和实现算子的执行。应当理解,通过算子分解可以简化待执行算子的计算与实现。[0051] 关于针对融合模式匹配失败的算子例如,计算装置100确定硬件是否支持所述融合算子和融合模式匹配失败的算子;以及如果确定硬件不支持所述融合算子和融合模式匹配失败的算子,针对所述融合算子和融合模式匹配失败的算子进行分解,以便获得元算子序列。[0052] 在步骤304处,计算装置100将元算子序列和分解失败的算子在执行器中进行执行。[0053] 元算子的粒度小于原始算子序列中的各个序列的粒度。应当理解,更小粒度的每个元算子均可以得到硬件的支持。另外,该元算子序列是基于元算子集合中的有限种类的元算子而确定的,因此,元算子序列可以更加高效地由执行器所执行。[0054] 通过上述技术手段,本发明可以将复杂的算子或函数拆分为更简单、更容易处理的元算子,从而有效简化待执行算子的计算与实现。[0055] 在一些实施例中,用于软硬件适配的方法200还包括:调度算子的方法。以下将结合图4描述本发明的实施例的用于调度算子的方法。图4示出了根据本发明的实施例的用于调度算子的方法400的流程图。应当理解,方法400例如可以在图1所描述的计算装置100处执行。方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本发明的范围在此方面不受限制。[0056] 在步骤402处,计算装置100获取硬件配置信息。[0057] 在步骤404处,计算装置100基于硬件配置信息,确定硬件是否满足预定条件。[0058] 在步骤406处,如果计算装置100确定硬件满足预定条件,在执行器中针对经由融合而更新的算子序列进行执行。[0059] 应当理解,经由融合而更新的算子序列中的融合算子是粗粒度的算子。关于硬件配置信息是否满足预定条件,其例如是指:硬件配置信息指示当前硬件执行粗粒度的算子的效率更高,即,高于当前硬件执行细粒度的算子的效率。例如,如果基于硬件配置信息可以确定当前硬件直接支持复杂的、粗粒度的算子(例如,矩阵乘)的执行,则计算装置100确定:硬件配置信息是否满足预定条件。[0060] 在步骤408处,如果计算装置100确定硬件不满足预定条件,在执行器中针对元算子序列和分解失败的算子进行执行。[0061] 例如,如果硬件配置信息指示当前硬件执行细粒度的算子的效率更高,则在执行器中针对元算子序列进行执行。[0062] 元算子序列中的元算子是细粒度(例如是最细粒度)的算子。如果,当前硬件不直接支持复杂的、粗粒度的算子的执行,则计算装置100基于元算子集合将经由融合而更新的算子序列进行分解,以便执行器在针对元算子序列和分解失败的算子层面进行执行。[0063] 通过采用上述手段,可发明可以实现可控粒度算子的执行,可以使根据用户需求和硬件资源情况投入选择不同粒度算子的软硬件适配方案。[0064] 上文所描述的各个过程和处理,例如方法200、300、400,可在计算装置处执行。该计算装置例如包括:至少一个处理器(至少一个图形处理器和至少一个中央处理器);以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行。在一些实施例中,方法200、300、400可被实现为计算机软件程序或程序产品,其被有形地包含于机器可读介质。在一些实施例中,计算机程序的部分或者全部可以经由只读存储器(Read‑OnlyMemory,ROM)和/或通信单元而被载入和/或安装到计算装置上。当计算机程序被加载到随机存取存储器(Random‑accessmemory,RAM)并由GPU和CPU执行时,可以执行上文描述的方法200、300、400的一个或多个动作。[0065] 本发明可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。[0066] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。[0067] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的中央处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的中央处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。[0068] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0069] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。[0070] 上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。

专利地区:北京

专利申请日期:2024-04-12

专利公开日期:2024-07-26

专利公告号:CN118051234B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部