可否贴一下报错的源码?
可否贴一下报错的源码?
#include "mlu.h"
__mlu_entry__ void CmlpFloatMCPipeline_mlu(float* out_data, int16_t* in_data, int8_t* filter_data,int* in_channel,int* in_height,int* in_width,int* out_channel) {
int in_data_num=in_channel[0]*in_height[0]*in_width[0];
int filter_data_num= in_channel[0]*in_height[0]*in_width[0]*out_channel[0];
int out_data_num=out_channel[0];
int per_in_data_num=in_channel[0]*in_height[0]*in_width[0]*32;
int per_out_data_num=64;
int per_filter_data_num=in_channel[0]*64;
int loops_nums=filter_data_num/per_filter_data_num;
int remain_nums=(filter_data_num-per_filter_data_num*loops_nums)/4096;
int POS=0;
__nram__ float nram_out_data[2*64];
__nram__ int16_t nram_in_data[5000];
__wram__ int8_t wram_filter_data[4096*64];
__memcpy(nram_in_data,in_data,in_data_num*sizeof(int16_t),GDRAM2NRAM);
//L0
__memcpy(wram_filter_data,filter_data,per_filter_data_num*sizeof(int8_t),GDRAM2WRAM);
printf("第一个filter:%d\n",wram_filter_data[0]);
//C0
__bang_mlp(nram_out_data, nram_in_data, wram_filter_data, 64, per_filter_data_num, POS);
printf("第一个out:%f\n",nram_out_data[0]);
//L1
__memcpy(wram_filter_data,filter_data+ per_filter_data_num, per_filter_data_num*sizeof(int8_t),GDRAM2WRAM);
int loops;
for(loops=2;loops<loops_nums;loops++){
//Si-2
__memcpy(out_data+(loops-2)* per_out_data_num,nram_out_data+((loops-2)%2)* per_out_data_num, per_out_data_num*sizeof(float),NRAM2GDRAM);
//Ci-1
__bang_mlp(nram_out_data +((loops-1)%2)*per_out_data_num, nram_in_data, wram_filter_data , 64, per_filter_data_num, POS);
//Li
__memcpy(wram_filter_data,filter_data+(loops)* per_filter_data_num, per_filter_data_num*sizeof(int8_t),GDRAM2WRAM);
}
//Sn-1
__memcpy(out_data+(loops_nums-2)* per_out_data_num,nram_out_data+((loops_nums-2)%2)* per_out_data_num, per_out_data_num*sizeof(float),NRAM2GDRAM);
//Cn
__bang_mlp(nram_out_data +(loops_nums-1)%2*per_out_data_num, nram_in_data, wram_filter_data +((loops_nums-1)%2)* per_filter_data_num , per_filter_data_num, per_filter_data_num, POS);
//Li
//Sn
__memcpy(out_data+(loops_nums-1)* per_out_data_num,nram_out_data+((loops_nums-1)%2)* per_out_data_num, per_out_data_num*sizeof(float),NRAM2GDRAM);
}
请登录后评论