1.一种用于生成CUDA程序的设备,其特征在于,包括:
存储访问库,包括多个存储访问模板,所述存储访问模板包括用于实现数据访问的代码模块;其中,所述代码模块包括用于调用封装运算单元的计算参数;
函数调用库,包括多个函数调用模板,所述函数调用模板包括核函数的调用配置;其中,所述函数调用模板包括用于调用封装运算单元的计算参数;所述调用配置用于表示所述核函数的调用方式的代码;
运算模块,包括多个封装运算单元,所述封装运算单元用于实现特定的运算功能;
其中,所述CUDA程序是基于对所述存储访问模板、所述函数调用模板以及所述封装运算单元的调用生成的。
2.根据权利要求1所述的设备,其特征在于,每个所述存储访问模板包括适用于特定运算类型和/或特定数据类型情况下的数据访问的代码模块。
3.根据权利要求1或2所述的设备,其特征在于,所述数据访问包括以下至少一种:从全局存储器中访问所述封装运算单元的输入数据,以自动变量的方式将所述封装运算单元的中间数据存储在寄存器中,将所述封装运算单元的输出数据存储在全局存储器中;或者,从全局存储器中访问所述封装运算单元的输入数据,以数组的方式将所述封装运算单元的中间数据存储在共享存储器中;将所述封装运算单元的输出数据存储在全局存储器中。
4.根据权利要求1所述的设备,其特征在于,所述多个存储访问模板包括第一存储访问模板,所述第一存储访问模板用于实现第一预设访问模式,在所述第一预设访问模式下,线程对运算类型为第一运算类型和/或数据类型为第一数据类型的数据读写性能达到特定条件。
5.根据权利要求2或4所述的设备,其特征在于,所述运算类型包括以下至少一种:向量运算、卷积运算、矩阵运算。
6.根据权利要求1所述的设备,其特征在于,所述核函数的调用配置包括下列中的至少一种:线程块的尺寸、线程流配置、动态共享存储配置和线程网格的尺寸。
7.根据权利要求6所述的设备,其特征在于,所述线程块包括多个线程,每个线程用于执行所述封装运算单元的一次运算。
8.根据权利要求6或7所述的设备,其特征在于,所述多个函数调用模板包括第一函数调用模板,所述第一函数调用模板用于实现第一预设调用模式,在所述第一预设调用模式下,线程对数据维度为第一数据维度和/或数据类型为第一数据类型的数据执行所述封装运算单元的一次运算。
9.一种生成CUDA程序的方法,其特征在于,包括:
获取CUDA程序的源代码,其中,所述CUDA程序的源代码是基于对第一存储访问模板、第一函数调用模板以及至少一个封装运算单元的调用生成的;其中,所述第一存储访问模板为存储访问库中多个存储访问模板中的一个存储访问模板,所述存储访问模板包括用于实现数据访问的代码模块;所述代码模块包括用于调用封装运算单元的计算参数;所述第一函数调用模板为函数调用库中多个函数调用模板中的一个函数调用模板;所述函数调用模板包括用于调用封装运算单元的计算参数;所述封装运算单元用于实现特定的运算功能;
对所述CUDA程序的源代码进行编译处理,得到可执行文件。
10.根据权利要求9所述的方法,其特征在于,所述第一存储访问模板包括适用于第一运算类型和/或第一数据类型情况下的数据访问的代码模块。
11.根据权利要求9或10所述的方法,其特征在于,所述第一存储访问模板用于实现第一预设访问模式,在所述第一预设访问模式下,线程对第一运算类型和/或第一数据类型的数据读写性能达到特定条件。
12.根据权利要求10所述的方法,其特征在于,所述第一存储访问模板的代码模块用于调用所述至少一个封装运算单元的第一计算参数。
13.根据权利要求10所述的方法,其特征在于,所述数据访问包括以下至少一种:从全局存储器中访问所述封装运算单元的输入数据,以自动变量的方式将所述封装运算单元的中间数据存储在寄存器中,将所述封装运算单元的输出数据存储在全局存储器中;或者,从全局存储器中访问所述封装运算单元的输入数据,以数组的方式将所述封装运算单元的中间数据存储在共享存储器中;将所述封装运算单元的输出数据存储在全局存储器中。
14.根据权利要求10所述的方法,其特征在于,所述第一运算类型包括以下任意一种:向量运算、卷积运算、矩阵运算。
15.根据权利要求9所述的方法,其特征在于,所述第一函数调用模板包括第一核函数的调用配置。
16.根据权利要求15所述的方法,其特征在于,所述第一核函数的调用配置包括下列中的至少一种:第一线程网格尺寸、第一线程块的尺寸、第一线程流配置和第一动态共享存储配置。
17.根据权利要求15所述的方法,其特征在于,所述第一函数调用模板用于实现第一预设调用模式,在所述第一预设调用模式下,线程对第一数据维度和/或第一数据类型的数据执行所述封装运算单元的一次运算。
18.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求9至17任意一项所述的方法。
19.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求9至17任意一项所述的方法。