神经网络参数部署方法、AI集成芯片及其相关装置与流程

文档序号:33244904发布日期:2023-02-17 22:53阅读:37来源:国知局
神经网络参数部署方法、AI集成芯片及其相关装置与流程
神经网络参数部署方法、ai集成芯片及其相关装置
技术领域
1.本技术涉及人工智能领域,尤其涉及一种神经网络参数部署方法、人工智能(artificial intelligence,ai)集成芯片、ai计算装置、电子设备及计算机可读存储介质。


背景技术:

2.随着信息技术与ai技术的演进,ai计算逐渐从云端扩展到终端,具备ai计算能力的智能终端逐渐在智能手机、公共安全、汽车辅助驾驶、智慧家庭等领域普及。然而现有的ai计算所需要的高算力引起的高成本、性能瓶颈、功耗瓶颈、安全隐患等始终是智能终端设备面临的挑战。
3.如图1所示,现有的ai计算系统一般包括神经网络处理单元(neural-network processing unit,npu)、中央处理单元(central processing unit,cpu)、片内静态随机访问存储器(static random access memory,sram)及片外动态随机访问存储器(dynamic random access memory,dram)。dram用于存储npu计算所需要的软件代码,权重参数、待处理数据等。npu的软件代码和权重参数具有极高的商业价值,存储在片外dram很难进行保护,容易被破解。


技术实现要素:

4.有鉴于此,有必要提供一种神经网络参数部署方法、ai集成芯片、ai计算装置、电子设备及计算机可读存储介质,其可提升npu软件代码和权重参数的安全等级。
5.本技术实施例第一方面公开了一种ai计算装置,ai计算装置包括ai集成芯片及片外存储器。ai集成芯片包括cpu、npu、第一片内存储单元及第二片内存储单元。片外存储器用于存储与npu关联的第一神经网络代码及第一权重参数。第二片内存储单元用于存储与npu关联的第二神经网络代码及第二权重参数,npu用于基于第一神经网络代码、第二神经网络代码、第一权重参数及第二权重参数对指定数据进行处理。第二片内存储单元设置有仅允许npu读取的权限,及仅允许cpu写入的权限。
6.通过采用该技术方案,增设第二片内存储单元来存储与npu关联的第二神经网络代码及第二权重参数,例如第二片内存储单元可以是嵌入式非易失存储器,将相对重要的第二神经网络代码与第二权重参数存储在第二片内存储单元,将相对不重要的第一神经网络代码与第一权重参数存储在片外存储器,可提升第二神经网络代码与第二权重参数的安全等级,npu可从第二片内存储单元读取第二神经网络代码与第二权重参数,可降低npu访问片外存储器的带宽需求,同时将第二片内存储单元设置为仅允许npu读取、cpu写入,可以进一步提升第二神经网络代码与第二权重参数的安全等级。
7.在一些实施例中,ai集成芯片还包括第三片内存储单元,第三片内存储单元用于缓存从片外存储器读取的第一神经网络代码及第一权重参数的至少部分。
8.通过采用该技术方案,增设第三片内存储单元来缓存npu从片外存储器读取的第一神经网络代码及第一权重参数,例如第三片内存储器可以是嵌入式非易失存储器,相比
npu从片外存储器读取第一神经网络代码及第一权重参数的速度,npu从第三片内存储单元读取第一神经网络代码及第一权重参数的速度更快,可以提升npu的数据处理效率。
9.在一些实施例中,cpu还用于接收密文数据,并将密文数据写入至第二片内存储单元,密文数据为对第二神经网络代码及第二权重参数进行加密得到的。
10.通过采用该技术方案,ai厂商将神经网络代码和权重参数使用加密密钥加密后发送给设备厂商,设备厂商将密文的神经网络代码以及权重参数写入芯片的内置enwm(上述第二片内存储单元)中,而该芯片内的一次性可编程otp器件中内置有解密密钥,该解密密钥用于对密文的神经网络代码以及权重参数进行解密,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权。
11.在一些实施例中,ai集成芯片还包括密钥存储单元及解密单元,解密密钥在密文数据写入至第二片内存储单元之前存储至密钥存储单元,密钥存储单元设置有仅允许解密单元读取的权限,npu还用于从第二片内存储单元读取密文数据,并调用解密单元使用解密密钥对密文数据进行解密,得到第二神经网络代码及第二权重参数。
12.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,避免解密密钥泄露给设备厂商,同时可以仅为密钥存储单元设置一个读端口,该读端口提供给解密单元,实现仅允许解密单元读取解密密钥,进一步避免解密密钥泄露,再者可以在npu从第二片内存储单元读取密文数据时再对密文数据进行解密处理,避免设备厂商获取明文的第二神经网络代码及第二权重参数。
13.在一些实施例中,ai集成芯片还包括密钥存储单元及解密单元,密钥存储单元用于存储解密密钥,密钥存储单元设置有仅允许解密单元读取的权限,cpu用于接收密文数据,并调用解密单元使用解密密钥对密文数据进行解密,密文数据为对第二神经网络代码及第二权重参数进行加密得到的,cpu还用于将解密得到的第二神经网络代码及第二权重参数写入至第二片内存储单元。
14.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,示例性的,该otp器件仅设置有一个读端口,该读端口连接至芯片内的解密单元,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的。设备厂商从ai厂商购买密文的神经网络代码和权重参数,以及从芯片厂商购买植入了解密密钥的芯片,该芯片内还设置有envm,设备厂商购买了该密文的神经网络代码和权重参数后,将该密文的神经网络代码和权重参数写入该芯片内的envm中,芯片内的解密单元通过调用内置在otp器件中的解密密钥对密文的神经网络代码和权重参数进行解密后使用。这样,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权。
15.在一些实施例中,密钥存储单元包括一次性可编程otp器件。
16.通过采用该技术方案,使用otp器件存储解密密钥,由于otp器件的一次性可编程特性,可以避免解密密钥被篡改,且由于otp器件具有很强的抗攻击、抗反向工程能力,可提
升解密密钥的存储安全性。
17.在一些实施例中,片外存储器还用于存储指定数据及指定数据的处理结果,第一片内存储单元用于缓存从片外存储器读取的指定数据。
18.通过采用该技术方案,通过第一片内存储单元来缓存从片外存储器读取的指定数据,例如第一片内存储单元可以是片内sram,相比npu从片外存储器读取指定数据的速度,npu从第一片内存储单元读取指定数据的速度更快,可以加快npu读取指定数据的速度,提升npu的数据处理效率。
19.在一些实施例中,第一片内存储单元包括sram,片外存储器包括dram,第二片内存储单元包括efalsh、envm、mram或rram中的任意一种,第三片内存储单元包括efalsh、envm、mram或rram中的任意一种。
20.本技术实施例第二方面公开了一种ai集成芯片,ai集成芯片包括cpu、npu、第一片内存储单元及第二片内存储单元。第二片内存储单元用于存储与npu关联的神经网络代码及权重参数,npu用于基于神经网络代码及权重参数对指定数据进行处理。第二片内存储单元包括efalsh、envm、mram或rram中的任意一种。
21.通过采用该技术方案,增设第二片内存储单元来存储与npu关联的神经网络代码及权重参数,相比现有将神经网络代码及权重参数存储在片外存储器,可提升神经网络代码与权重参数的安全等级,npu从第二片内存储单元读取神经网络代码与权重参数,可降低npu访问片外存储器的带宽需求,提升npu性能,同时将神经网络代码及权重参数写入至片内efalsh、envm、mram或rram进行储存,设备厂商无法窃取ai厂商所提供的神经网络代码及权重参数。
22.在一些实施例中,第二片内存储单元仅设置一个读端口与一个写端口,读端口电连接于npu,写端口电连接于所述cpu。
23.通过采用该技术方案,将第二片内存储单元设置为仅允许npu读取的权限及仅允许cpu写入的权限,可以进一步提高第二片内存储单元存储的神经网络代码与权重参数的安全等级。
24.在一些实施例中,cpu还用于接收密文数据,并将密文数据写入至第二片内存储单元,密文数据为对神经网络代码及权重参数进行加密得到的。
25.通过采用该技术方案,ai厂商将神经网络代码和权重参数使用加密密钥加密后发送给设备厂商,设备厂商将密文的神经网络代码以及权重参数写入芯片的内置enwm(上述第二片内存储单元)中,而该芯片内的一次性可编程otp器件中内置有解密密钥,该解密密钥用于对密文的神经网络代码以及权重参数进行解密,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权。
26.在一些实施例中,ai集成芯片还包括密钥存储单元及解密单元,解密密钥在密文数据写入至第二片内存储单元之前存储至密钥存储单元,密钥存储单元设置有仅允许解密单元读取的权限,npu还用于从第二片内存储单元读取密文数据,并调用解密单元使用解密密钥对密文数据进行解密,得到神经网络代码及权重参数。
27.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,避免解密密钥泄露给设备厂商,同时可以仅为密钥存储单元设置一个读端口,该读端口提供给解密单元,实现仅允许解密单元读取解密密钥,进一步避免解密密钥泄露,再者可以在npu从第二片内存储单元读取密文数据时再对密文数据进行解密处理,避免设备厂商获取明文的第二神经网络代码及第二权重参数。
28.在一些实施例中,ai集成芯片还包括密钥存储单元及解密单元,密钥存储单元用于存储解密密钥,密钥存储单元设置有仅允许解密单元读取的权限,cpu用于接收密文数据,并调用解密单元使用解密密钥对密文数据进行解密,密文数据为对神经网络代码及权重参数进行加密得到的,cpu还用于将解密得到的神经网络代码及权重参数写入至第二片内存储单元。
29.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,示例性的,该otp器件仅设置有一个读端口,该读端口连接至芯片内的解密单元,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的。设备厂商从ai厂商购买密文的神经网络代码和权重参数,以及从芯片厂商购买植入了解密密钥的芯片,该芯片内还设置有envm,设备厂商购买了该密文的神经网络代码和权重参数后,将该密文的神经网络代码和权重参数写入该芯片内的envm中,芯片内的解密单元通过调用内置在otp器件中的解密密钥对密文的神经网络代码和权重参数进行解密后使用。这样,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权。
30.在一些实施例中,密钥存储单元包括一次性可编程otp器件。
31.通过采用该技术方案,使用otp器件存储解密密钥,由于otp器件的一次性可编程特性,可以避免解密密钥被篡改,且由于otp器件具有很强的抗攻击、抗反向工程能力,可提升解密密钥的存储安全性。
32.第三方面,本技术实施例提供一种神经网络参数部署方法,应用于ai计算装置,ai计算装置包括ai集成芯片及片外存储器。ai集成芯片包括cpu、npu、第一片内存储单元及第二片内存储单元。神经网络参数部署包括:将与npu关联的第一神经网络代码、第一权重参数存储至片外存储器;将与npu关联的第二神经网络代码及第二权重参数存储至第二片内存储单元;其中,npu用于基于第一神经网络代码、第二神经网络代码、第一权重参数及第二权重参数对指定数据进行处理,第二片内存储单元设置有仅允许npu读取的权限,及仅允许cpu写入的权限。
33.通过采用该技术方案,增设第二片内存储单元来存储与npu关联的第二神经网络代码及第二权重参数,例如第二片内存储单元可以是嵌入式非易失存储器,将相对重要的第二神经网络代码与第二权重参数存储在第二片内存储单元,将相对不重要的第一神经网络代码与第一权重参数存储在片外存储器,可提升第二神经网络代码与第二权重参数的安全等级,npu可从第二片内存储单元读取神经网络代码与权重参数,可降低npu访问片外存储器的带宽需求,同时将第二片内存储单元设置为仅允许npu读取、cpu写入,可以进一步提升第二神经网络代码与第二权重参数的安全等级。
34.在一些实施例中,ai集成芯片还包括第三片内存储单元,神经网络参数部署方法
还包括:从片外存储器读取第一神经网络代码及第一权重参数后缓存在第三片内存储单元中。
35.通过采用该技术方案,增设第三片内存储单元来缓存npu从片外存储器读取的第一神经网络代码及第一权重参数,例如第三片内存储器可以是嵌入式非易失存储器,相比npu从片外存储器读取第一神经网络代码及第一权重参数的速度,npu从第三片内存储单元读取第一神经网络代码及第一权重参数的速度更快,可以提升npu的数据处理效率。
36.在一些实施例中,神经网络参数部署方法还包括:接收加密装置发送的密文数据,并将密文数据写入至第二片内存储单元;其中,密文数据为对第二神经网络代码及第二权重参数进行加密得到的。
37.通过采用该技术方案,ai厂商将神经网络代码和权重参数使用加密密钥加密后发送给设备厂商,设备厂商将密文的神经网络代码以及权重参数写入芯片的内置enwm(上述第二片内存储单元)中,而该芯片内的一次性可编程otp器件中内置有解密密钥,该解密密钥用于对密文的神经网络代码以及权重参数进行解密,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权。
38.在一些实施例中,神经网络参数部署方法还包括:当npu从第二片内存储单元读取密文数据时,调用预先存储的解密密钥对密文数据进行解密,得到第二神经网络代码及第二权重参数。
39.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,避免解密密钥泄露给设备厂商,同时可以仅为密钥存储单元设置一个读端口,该读端口提供给解密单元,实现仅允许解密单元读取解密密钥,进一步避免解密密钥泄露,再者可以在npu从第二片内存储单元读取密文数据时再对密文数据进行解密处理,避免设备厂商获取明文的第二神经网络代码及第二权重参数。
40.在一些实施例中,神经网络参数部署方法还包括:接收加密装置发送的密文数据,并调用预先存储的解密密钥对密文数据进行解密;将解密得到的第二神经网络代码及第二权重参数写入至第二片内存储单元;其中,密文数据为对第二神经网络代码及第二权重参数进行加密得到的。
41.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,示例性的,该otp器件仅设置有一个读端口,该读端口连接至芯片内的解密单元,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的。设备厂商从ai厂商购买密文的神经网络代码和权重参数,以及从芯片厂商购买植入了解密密钥的芯片,该芯片内还设置有envm,设备厂商购买了该密文的神经网络代码和权重参数后,将该密文的神经网络代码和权重参数写入该芯片内的envm中,芯片内的解密单元通过调用内置在otp器件中的解密密钥对密文的神经网络代码和权重参数进行解密后使用。这样,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权。
42.第四方面,本技术实施例提供一种神经网络参数部署方法,包括:第一处理端将解密密钥写入至ai集成芯片的otp器件;第二处理端对神经网络代码及权重参数进行加密,得到密文数据;第三处理端将密文数据写入至ai集成芯片的片内存储单元;其中,解密密钥用于对密文数据进行解密,片内存储单元包括efalsh、envm、mram或rram中的任意一种。
43.通过采用该技术方案,相比现有方案由设备厂商将解密密钥写入至ai集成芯片,改由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,示例性的,该otp器件仅设置有一个读端口,该读端口连接至芯片内的解密单元,示例性的,该解密密钥是由ai厂商和芯片厂商协商好后并由芯片厂商植入芯片内部的,设备厂商从ai厂商购买密文的神经网络代码和权重参数,以及从芯片厂商购买植入了解密密钥的芯片,该芯片内还设置有efalsh、envm、mram或rram,设备厂商购买了该密文的神经网络代码和权重参数后,将该密文的神经网络代码和权重参数写入该芯片内的efalsh、envm、mram或rram中,芯片内的解密单元通过调用内置在otp器件中的解密密钥对密文的神经网络代码和权重参数进行解密后使用。这样,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权,再者将密文数据存储在片内efalsh、envm、mram或rram中,相比现有方案将神经网络代码与权重参数存储在片外存储器,可以进一步提升神经网络代码与权重参数的安全等级。
44.第五方面,本技术实施例提供一种神经网络参数部署方法,包括:获取密文数据,密文数据为对神经网络代码及权重参数进行加密得到的;将密文数据写入至ai集成芯片的片内存储单元;其中,ai集成芯片的otp器件中预先写入有对密文数据进行解密的解密密钥,片内存储单元包括efalsh、envm、mram或rram中的任意一种。
45.通过采用该技术方案,对于设备厂商而言,解密密钥是有芯片厂商写入至ai集成芯片的otp器件,例如该解密密钥是由ai厂商和芯片厂商协商好后,由芯片厂商植入芯片内部,设备厂商从ai厂商购买密文的神经网络代码和权重参数,以及从芯片厂商购买植入了解密密钥的芯片,该芯片内还设置有efalsh、envm、mram或rram,设备厂商购买了该密文的神经网络代码和权重参数后,将该密文的神经网络代码和权重参数写入该芯片内的efalsh、envm、mram或rram中,芯片内的解密单元通过调用内置在otp器件中的解密密钥对密文的神经网络代码和权重参数进行解密后使用,ai厂商无需将解密密钥发送给设备厂商,而是由芯片厂商内置在芯片中,设备厂商的设备在使用了上述芯片后可以正常使用该解密密钥解密密文的神经网络代码和权重参数,设备厂商或其他任何第三方厂商无法获取明文的神经网络代码,有效保护了ai厂商的知识产权,再者将密文数据存储在片内efalsh、envm、mram或rram中,相比现有方案将神经网络代码与权重参数存储在片外存储器,可以进一步提升神经网络代码与权重参数的安全等级。
46.在一些实施例中,ai集成芯片包括元cpu、npu、第一片内存储单元及第二片内存储单元,将密文数据写入至ai集成芯片的片内存储单元,包括:将密文数据写入至第二片内存储单元,其中第二片内存储单元设置有仅允许npu读取的权限,及仅允许cpu写入的权限。
47.通过采用该技术方案,npu可从第二片内存储单元读取神经网络代码与权重参数,可降低npu访问片外存储器的带宽需求,同时将第二片内存储单元设置为仅允许npu读取、
cpu写入,可以进一步提升第二神经网络代码与第二权重参数的安全等级。
48.在一些实施例中,神经网络参数部署方法还包括:当npu从第二片内存储单元读取密文数据时,调用otp器件存储的解密密钥对密文数据进行解密,得到神经网络代码及权重参数。
49.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,避免解密密钥泄露给设备厂商,同时可以仅为密钥存储单元设置一个读端口,该读端口提供给解密单元,实现仅允许解密单元读取解密密钥,进一步避免解密密钥泄露,再者可以在npu从第二片内存储单元读取密文数据时再对密文数据进行解密处理,避免设备厂商获取明文的第二神经网络代码及第二权重参数。
50.在一些实施例中,将密文数据写入至ai集成芯片的片内存储单元,包括:调用解密密钥对密文数据进行解密;将解密得到的神经网络代码及权重参数写入至第二片内存储单元。
51.通过采用该技术方案,由芯片厂商将解密密钥先写入至芯片内的密钥存储单元如otp器件中,避免解密密钥泄露给设备厂商,同时可以仅为密钥存储单元设置一个读端口,该读端口提供给解密单元,实现仅允许解密单元读取解密密钥,进一步避免解密密钥泄露,再者可以在将密文数据写入至ai集成芯片的片内存储单元时再对密文数据进行解密处理,避免设备厂商获取明文的第二神经网络代码及第二权重参数。
52.第六方面,本技术实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第三方面所述的神经网络参数部署方法。
53.第七方面,本技术实施例提供一种电子设备,包括如第一方面所述的ai计算装置或者包括如第二方面所述的ai集成芯片。
54.第八方面,本技术实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第三方面所述的神经网络参数部署方法。
55.可以理解地,上述提供的第四方面所述的计算机可读存储介质,第五方面所述的电子设备,第六方面所述的计算机程序产品,第七方面所述的装置均与上述第二方面或第三方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
56.图1为现有技术中的ai计算系统的架构示意图;
57.图2为本技术一实施例提供的ai计算装置的架构示意图;
58.图3a~3b为本技术另一实施例提供的ai计算装置的架构示意图;
59.图4为本技术一实施例提供的解密单元对密文数据进行解密的示意图;
60.图5为本技术一实施例提供的神经网络参数部署方法的流程示意图;
61.图6为本技术另一实施例提供的神经网络参数部署方法的流程示意图;
62.图7为本技术又一实施例提供的神经网络参数部署方法的流程示意图;
63.图8为本技术实施例提供的一种可能的电子设备。
具体实施方式
64.需要说明的是,本技术中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。本技术的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
65.下面结合图2示例性的介绍本发明一实施例提供的人工智能(artificial intelligence,ai)计算装置的架构示意图。
66.ai计算装置100可以应用于智能终端,智能终端可以是智能手机、平板电脑、智能汽车、智能家居设备等。ai计算装置100可以包括ai集成芯片10及片外存储器20。ai集成芯片10可以包括中央处理单元(central processing unit,cpu)11、神经网络处理单元(neural-network processing unit,npu)12、第一片内存储单元13及第二片内存储单元14。
67.cpu 11可以包括npu驱动,cpu 11可以通过npu驱动配置npu 12。例如,cpu 11可以通过npu驱动配置npu 12对指定数据进行处理,为处理指定数据对npu 12内的寄存器进行分配。指定数据可以是指由cpu 11所指定的数据。可以由cpu 11分配任务,npu 1再执行相应任务。例如,以智能汽车为例,摄像头拍摄的每帧图像可以自动存储在某个存储器中,每次有图像存储进来,cpu 11可以向npu 12下发执行命令,指示npu 12从该存储器中调用该图像进行ai模型推理。
68.npu 12为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu 12可以实现智能终端的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。npu 12在数据处理过程中所需的网络代码可以被划分为第一神经网络代码与第二神经网络代码,在数据处理过程中所需的权重数据可以被划分为第一权重参数与第二权重参数。第二神经网络代码可以是指该网络代码中具有高价值的神经网络代码/神经模型代码,第二神经网络代码可以由开发者进行指定。第一神经网络代码可以是指该网络代码中除了第二神经网络代码之外的其余代码。第二权重参数可以是指该权重数据中具有高价值的权重参数,第二权重参数可以由开发者进行指定。第一权重参数可以是指该权重数据中除了第二权重参数之外的其余权重参数。npu 12可基于第一神经网络代码、第二神经网络代码、第一权重参数及第二权重参数对指定数据进行处理。
69.基于硬件成本考量,ai计算装置100所采用的第二片内存储单元14容量有限,可能无法存储npu 12所需的所有网络代码和权重数据,可以利用片外存储器20存储第一神经网络代码、第一权重参数、指定数据及指定数据的处理结果,利用第二片内存储单元14存储第二神经网络代码及第二权重参数,使得npu 12的核心神经网络代码和核心权重参数存储在ai集成芯片10,可提高核心神经网络代码和核心权重参数的安全等级。
70.例如,第二片内存储单元14可以是嵌入式非易失存储器,ai集成芯片10通过增设第二片内存储单元14来存储相对重要的第二神经网络代码与第二权重参数,将相对不重要的第一神经网络代码与第一权重参数存储在片外存储器20,可提升第二神经网络代码与第二权重参数的安全等级,由于npu 12可从第二片内存储单元读取第二神经网络代码与第二
权重参数,可降低npu 12访问片外存储器20的带宽需求,提升npu 12性能。若ai集成芯片10已包含有嵌入式非易失存储器,ai集成芯片10亦可复用该嵌入式非易失存储器来存储相对重要的第二神经网络代码与第二权重参数,无需额外增设一嵌入式非易失存储器作为第二片内存储单元14。
71.第一片内存储单元13可用于缓存从片外存储器20读取的指定数据,例如当npu 12对存储在片外存储器20中的第一数据进行处理时,该第一数据可以从片外存储器20读到第一片内存储单元13,通过第一片内存储单元13缓存该第一数据,可以加快npu处理数据的速度、提升数据处理效率。
72.在一些实施例中,第一片内存储单元13可以包括静态随机访问存储器(static random access memory,sram),第二片内存储单元14可以包括嵌入式闪存(embedded flash,efalsh)、嵌入式非易失性存储器(embedded non-volatile memory,envm)、磁性随机访问存储器(magnetic random access memory,mram)、或阻性随机访问存储器(resistive random access memory,rram)中的任意一种。第二片内存储单元14也可以为其他类型的嵌入式存储器件。片外存储器20可以包括动态随机访问存储器(dynamic random access memory,dram)。
73.在一些实施例中,为了提高第二片内存储单元14所存储的数据私密性,可以将第二片内存储单元14设计为仅允许npu 12读取的权限,及仅允许cpu 11写入的权限。例如,第二片内存储单元14可以仅设置一个读端口与一个写端口。第二片内存储单元14的写端口仅电连接于cpu 11,实现仅允许cpu 11写入的权限。第二片内存储单元14的读端口仅电连接于npu 12,实现仅允许npu 12读取的权限。
74.在一些实施例中,第二片内存储单元14存储的第二神经网络代码与第二权重参数可以选择性进行密码学加密处理或数学运算加扰处理,以提高第二神经网络代码与第二权重参数的安全性。加密处理或加扰处理的算法可以根据实际需求进行选定,本技术对此不做限定,例如加密算法可以是对称加密算法(aes算法、des算法、sm4算法等)或非对称加密算法。加扰算法可以是开发者自定义的算法,例如开发者自定义的数学查表、倒序处理等可逆的加扰算法。加密处理或加扰处理可以在ai集成芯片10外部离线处理,例如可以由ai厂商(进行神经网络代码与权重参数开发的厂商)采用加密装置(独立于ai集成芯片10之外的元件或者装置,如电脑、服务器等设备)对第二神经网络代码与第二权重参数进行加密或加扰处理,得到密文数据,加密装置可以将密文数据发送给ai集成芯片10。密文数据的解密或解扰处理可以在ai集成芯片10内部进行。
75.在一些实施例中,如图3a与3b所示,ai集成芯片10还可以包括密钥存储单元15、解密单元16及第三片内存储单元17。密钥存储单元15用于存储解密密钥或解扰密钥。解密单元16用于根据密钥存储单元15存储的解密密钥或解扰密钥对密文数据进行解密或解扰处理。密钥存储单元15可以是设置ai集成芯片10内部的一次性可编程(one time programmable,otp)器件,解密单元16可以是设置在ai集成芯片10内部的用于对密文数据进行解密或解扰处理的硬件电路。
76.第三片内存储单元17用于缓存从片外存储器20读取的第一神经网络代码及第一权重参数的至少部分。例如,npu 12在需要使用第一神经网络代码及第一权重参数对指定数据进行处理时,存储在片外存储器20的部分或者全部的第一神经网络代码及第一权重参
数可以从片外存储器20读到第三片内存储单元17,通过第三片内存储单元17缓存第一神经网络代码与第一权重参数,可以加快npu 12读取第一神经网络代码与第一权重参数的速度,提升数据处理效率。第三片内存储单元17可以是efalsh、envm、mram、或rram中的任意一种。第三片内存储单元17也可以为其他类型的嵌入式存储器件。
77.在一些实施例中,若第二片内存储单元14能够存储npu 12所需的所有网络代码和权重数据,即将第一神经网络代码、第二神经网络代码、第一权重参数及第二权重参数存储在第二片内存储单元14,此时片外存储器20可用于存储指定数据及指定数据的处理结果,第三片内存储单元17亦可被省略(即无需设置第三片内存储单元17缓存从片外存储器20读取的神经网络代码与权重参数)。
78.如图3a所示,ai集成芯片10可以在密文数据写入第二片内存储单元14时对密文数据进行解密或解扰处理,实现将第二神经网络代码与第二权重参数以明文形式存储在第二片内存储单元14,例如,cpu 11在接收到密文数据时,可以调用解密单元16对密文数据进行解密或解扰处理,再将解密或解扰处理得到的第二神经网络代码与第二权重参数写入至第二片内存储单元14进行存储。
79.如图3b所示,ai集成芯片10也可以在密文数据文件写入第二片内存储单元14时不进行解密或解扰处理,将第二神经网络代码与第二权重参数以密文形式存储在第二片内存储单元14,npu 12从第二片内存储单元14读取密文数据时再对密文数据进行解密或解扰处理。例如,npu从第二片内存储单元14读取密文数据时,可以调用解密单元16对密文数据进行解密或解扰处理,得到第二神经网络代码及第二权重参数。
80.在一些实施例中,在ai集成芯片10上电后,解密单元16可以自动对存储在密钥存储单元15内的解密密钥或解扰密钥进行读取。例如,otp器件包括otp存储器与otp控制器,当ai集成芯片10上电后,otp控制器自动控制otp存储器将解密密钥或解扰密钥传送给解密单元16,使得解密单元16可以在ai集成芯片10上电后自动完成解密密钥或解扰密钥的读取。密钥存储单元15可以设置仅允许解密单元16读取的权限,避免解密密钥或解扰密钥的泄露。例如密钥存储单元15仅设置一个读取端口,该读取端口仅电连接于解密单元16。
81.举例而言,第二神经网络代码与第二权重参数以密文形式存储在第二片内存储单元14,当npu 12从第二片内存储单元14读取密文数据时,npu 12可以发送调用指令至解密单元16,解密单元16接收到npu 12的调用指令时才使用解密密钥对密文数据进行解密处理,得到第二神经网络代码及第二权重参数。
82.上述ai计算装置,增设第二片内存储单元来存储与npu关联的第二神经网络代码及第二权重参数,将相对重要的第二神经网络代码与第二权重参数存储在第二片内存储单元,将相对不重要的第一神经网络代码与第一权重参数存储在片外存储器,可提升第二神经网络代码与第二权重参数的安全等级,npu可从第二片内存储单元读取神经网络代码与权重参数,可降低npu访问片外存储器的带宽需求,同时将第二片内存储单元设置为仅允许npu读取、cpu写入,可以进一步提升第二神经网络代码与第二权重参数的安全等级,且可以避免设备厂商获取解密密钥、明文的第二神经网络代码与第二权重参数。
83.如图4所示,以存储在密钥存储单元15内的密钥为解密密钥为例进行说明,不同输入地址的密文数据对应不同的解密密钥,输入的密文数据需要采用与其输入地址关联的解密密钥进行解密。解密单元16可以根据密文数据的输入地址,使用解密密钥对密文数据进
行解密处理,得到明文数据及输出地址,其中输入地址作为解密处理的指示信息,输入地址与输出地址可以相同。密文数据的输入地址可以是指密文数据的存储地址,例如为存储在密钥存储单元15内的地址。
84.在一些实施例中,若所有密文数据共用一个解密密钥,解密单元16可以直接使用解密密钥对密文数据进行解密处理,得到明文数据。
85.参照图5所示,本技术实施例提供的一种神经网络参数部署方法,应用于ai计算装置100。ai计算装置100包括ai集成芯片10及片外存储器20。ai集成芯片10包括cpu 11、npu 12、第一片内存储单元13及第二片内存储单元14。
86.在一些实施例中,npu 12在数据处理过程中所需的网络代码被划分为第一神经网络代码与第二神经网络代码,在数据处理过程中所需的权重数据可以被划分为第一权重参数与第二权重参数。第二神经网络代码可以是指该网络代码中具有高价值的神经网络代码/神经模型代码,第二神经网络代码可以由开发者进行指定。第一神经网络代码可以是指该网络代码中除了第二神经网络代码之外的其余代码。第二权重参数可以是指该权重数据中具有高价值的权重参数,第二权重参数可以由开发者进行指定。第一权重参数可以是指该权重数据中除了第二权重参数之外的其余权重参数。本实施例中,神经网络参数部署方法可以包括:
87.步骤50、将第一神经网络代码及第一权重参数存储至片外存储器20。
88.在一些实施例中,可以通过cpu 11将第一神经网络代码及第一权重参数写入至片外存储器20进行存储。片外存储器20可以包括dram。
89.步骤51,将第二神经网络代码及第二权重参数存储至第二片内存储单元14。
90.在一些实施例中,可以通过cpu 11将第二神经网络代码及第二权重参数写入至第二片内存储单元14进行存储。第二片内存储单元14可以是efalsh、envm、mram、或rram中的任意一种,第二片内存储单元14可以设置有仅允许npu 12读取的权限,及仅允许cpu 11写入的权限,进而可以提高存储在第二片内存储单元14内的第二神经网络代码与第二权重参数的安全性。
91.在一些实施例中,ai集成芯片10还可以包括第三片内存储单元17,npu 12从片外存储器20读取第一神经网络代码与第一权重参数时,读取的第一神经网络代码与第一权重参数可以缓存在第三片内存储单元17。第三片内存储单元17可以是efalsh、envm、mram、或rram中的任意一种,通过第三片内存储单元17可以加快npu 12读取第一神经网络代码与第一权重参数的速度,提升数据处理效率。
92.在一些实施例中,第二片内存储单元14存储的第二神经网络代码与第二权重参数可以选择性进行密码学加密处理或数学运算加扰处理,以提高第二神经网络代码与第二权重参数的安全性。加密处理或加扰处理的算法可以根据实际需求进行选定,本技术对此不做限定。加密处理或加扰处理可以在ai集成芯片10外部离线处理,例如可以采用独立于ai集成芯片10之外的加密装置对第二神经网络代码与第二权重参数进行加密或加扰处理,得到密文数据,加密装置可以将密文数据发送给ai集成芯片10。密文数据的解密或解扰处理可以在ai集成芯片10内部进行。
93.ai集成芯片10可以在密文数据写入第二片内存储单元14时对密文数据进行解密或解扰处理,实现将第二神经网络代码与第二权重参数以明文形式存储在第二片内存储单
元14。ai集成芯片10也可以在密文数据文件写入第二片内存储单元14时不进行解密或解扰处理,将第二神经网络代码与第二权重参数以密文形式存储在第二片内存储单元14,npu 12从第二片内存储单元14读取密文数据时再对密文数据进行解密或解扰处理。
94.在一些实施例中,若第二片内存储单元14能够存储npu 12所需的所有网络代码和权重数据,即可以将第一神经网络代码、第二神经网络代码、第一权重参数及第二权重参数存储在第二片内存储单元14。
95.上述神经网络参数部署方法,增设第二片内存储单元来存储与npu关联的第二神经网络代码及第二权重参数,将相对重要的第二神经网络代码与第二权重参数存储在第二片内存储单元,将相对不重要的第一神经网络代码与第一权重参数存储在片外存储器,可提升第二神经网络代码与第二权重参数的安全等级,npu可从第二片内存储单元读取神经网络代码与权重参数,可降低npu访问片外存储器的带宽需求,同时将第二片内存储单元设置为仅允许npu读取、cpu写入,可以进一步提升第二神经网络代码与第二权重参数的安全等级,且可以避免设备厂商获取解密密钥、明文的第二神经网络代码与第二权重参数。
96.参照图6所示,本技术实施例提供的一种神经网络参数部署方法,应用于第一处理端、第二处理端及第三处理端。第一处理端可以是指芯片厂商侧的电子装置,第二处理端可以是指ai厂商侧的电子装置,第三处理端可以是设备厂商侧的电子装置。芯片厂商提供ai集成芯片10的硬件模块,例如硬件模块可以包括cpu 11、npu 12、第一片内存储单元13、第二片内存储单元14、密钥存储单元15、解密单元16等。ai厂商提供ai集成芯片10的软件模块,例如软件模块包括ai集成芯片10中的npu 12所需的神经网络代码及权重参数。设备厂商基于芯片厂商提供的ai集成芯片10的硬件模块与ai厂商提供ai集成芯片10的软件模块加工得到包含ai集成芯片10的终端。本实施例中,神经网络参数部署方法包括:
97.步骤61、第一处理端将解密密钥或解扰密钥写入至ai集成芯片10的密钥存储单元15。
98.在一些实施例中,芯片厂商与ai厂商可以协商解密密钥或解扰密钥,可以是ai厂商自己生成后提供给芯片厂商,也可以是芯片厂商生成后提供给ai厂商。密钥存储单元15可以是otp器件,芯片厂商可以通过第一处理端将解密密钥或解扰密钥写入至ai集成芯片10的otp器件。芯片厂商可以将植入有解密密钥或解扰密钥的ai集成芯片10的硬件模块提供给设备厂商。例如,第一处理端可以为烧录设备,芯片厂商使用烧录设备将解密密钥或解扰密钥写入至ai集成芯片10的otp器件。
99.步骤62、第二处理端对与npu 12关联的神经网络代码及权重参数进行加密,得到密文数据。
100.在一些实施例中,当ai厂商完成与npu 12关联的神经网络代码及权重参数的开发后,ai厂商对神经网络代码及权重参数进行加密(加密所使用的加密密钥可以与解密密钥相同),得到密文数据。例如,ai厂商可以使用个人电脑(personal computer,pc)或服务器对神经网络代码及权重参数进行加密,得到密文数据。当ai厂商得到密文数据后,ai厂商可以将密文数据通过线上或线下方式提供给设备厂商。比如,设备厂商可以通过线下方式从ai厂商购买密文数据,设备厂商也可以于ai厂商进行线上交易,如向ai厂商的云服务器请求密文数据,ai厂商的云服务器在确认线上交易后,发送密文数据给设备厂商(设备厂商侧的pc、或服务器等设备)。
101.步骤63、第三处理端将密文数据写入至ai集成芯片10的第二片内存储单元14。
102.在一些实施例中,设备厂商可以通过第三处理端将密文数据写入至ai集成芯片10的第二片内存储单元14,进而ai集成芯片10后续在进行ai推理时,解密单元16可以使用内置的解密密钥或解扰密钥对密文数据进行解密得到明文的神经网络代码及权重参数。第二片内存储单元14可以包括efalsh、envm、mram或rram中的任意一种。例如,第三处理端可以为烧录设备,设备厂商使用烧录设备将密文数据写入至ai集成芯片10的第二片内存储单元14。
103.在一些实施例中,在ai集成芯片10上电后,解密单元16可以自动对存储在密钥存储单元15内的解密密钥或解扰密钥进行读取。例如,otp器件包括otp存储器与otp控制器,当ai集成芯片10上电后,otp控制器自动控制otp存储器将解密密钥或解扰密钥传送给解密单元16,使得解密单元16可以在ai集成芯片10上电后自动完成解密密钥或解扰密钥的读取。同时,otp器件可以设置仅允许解密单元16读取的权限,避免解密密钥或解扰密钥的泄露。例如密钥存储单元15仅设置一个读取端口,该读取端口电连接于解密单元16。
104.在一些实施例中,如果ai厂商需要升级神经网络代码及权重参数时,可以通过第二处理端对升级后的神经网络代码与权重参数进行加密,并将新的密文数据提供给设备厂商,设备厂商可以通过第三处理端将新的密文数据写入至ai集成芯片10的第二片内存储单元14。
105.上述神经网络参数部署方法,相比现有方案由设备厂商将解密密钥及明文的神经网络代码与权重参数写入至ai集成芯片,改由芯片厂商将解密密钥写入至ai集成芯片,再将储存有解密密钥的ai集成芯片提供给设备厂商,由ai厂商对神经网络代码及权重参数进行加密,ai厂商将神经网络代码及权重参数以密文形式提供给设备厂商,由设备厂商将密文数据写入至第二片内存储单元,可以避免设备厂商获取解密密钥及明文的神经网络代码与权重参数,再者将密文数据存储在片内efalsh、envm、mram或rram中,相比现有方案将神经网络代码与权重参数存储在片外存储器,可以进一步提升神经网络代码与权重参数的安全等级。
106.参照图7所示,本技术实施例提供的一种神经网络参数部署方法,应用于第三处理端。第三处理端可以是设备厂商侧的电子设备。本实施例中,神经网络参数部署方法包括:
107.步骤70、获取密文数据。
108.在一些实施例中,密文数据可以是指对与npu 12关联的神经网络代码及权重参数进行加密得到的数据。例如,可以由ai厂商对神经网络代码及权重参数进行加密得到密文数据,并将密文数据提供给设备厂商。
109.在一些实施例中,当ai厂商得到密文数据后,ai厂商可以将密文数据通过线上或线下方式提供给设备厂商。比如,设备厂商可以通过线下方式从ai厂商购买密文数据,设备厂商也可以与ai厂商进行线上交易,如向ai厂商的云服务器请求密文数据,ai厂商的云服务器在确认线上交易后,发送密文数据给设备厂商(设备厂商侧的pc、或服务器等设备)。
110.步骤71、将密文数据写入至ai集成芯片10的第二片内存储单元14。
111.在一些实施例中,当设备厂商得到密文数据是,设备厂商可以通过第三处理端将密文数据写入至ai集成芯片10的第二片内存储单元14。第二片内存储单元14可以包括efalsh、envm、mram或rram中的任意一种。例如,第三处理端可以为烧录设备,设备厂商使用
input/output,gpio)接口,sim接口,和/或usb接口等。
120.在一些实施例中,第一存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
121.本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现如图5所述的神经网络参数部署方法。
122.本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现如图5所述的神经网络参数部署方法。
123.其中,本实施例提供的电子设备、计算机存储介质或计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
124.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
125.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例是示意性的,例如,该模块或单元的划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
126.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
127.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
128.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
129.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1