From a0e23696e2c6206201dc4df4673d952bf04506d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=9C=E5=B0=B1=E5=89=81=E9=B2=A2=E9=98=9F?= <t202410486994124@eduxiji.net> Date: Sat, 31 Aug 2024 11:11:10 +0000 Subject: [PATCH] Upload New File --- include/verfiy.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 include/verfiy.h diff --git a/include/verfiy.h b/include/verfiy.h new file mode 100644 index 0000000..1e980a4 --- /dev/null +++ b/include/verfiy.h @@ -0,0 +1,45 @@ +#ifndef __VERFIY_HEADER__ +#define __VERFIY_HEADER__ + + +void conv2dcpu(_Float16* pin, _Float16* pwei, _Float16* pout, int n, int c, int h, int w, int k, int r, int s, int u, int v, int p, int q) +{ + int oh = (h + 2*p - r)/u + 1; + int ow = (w + 2*q - s)/v + 1; + + #pragma unroll + for(int nNum = 0; nNum < n; nNum++) + { + for(int kNum = 0; kNum< k; kNum++) + { + for(int i=0; i<oh; i++) + { + for(int j = 0; j< ow; j++) + { + double sum = 0.0; + int posh = i*u - p; + int posw = j*v - q; + + for(int cNum = 0; cNum < c; cNum++) + { + for(int khNum = 0; khNum < r; khNum++) + { + for(int kwNum = 0; kwNum < s; kwNum++) + { + int posh_ori = posh + khNum; + int posw_ori = posw + kwNum; + if(posw_ori >= 0 && posh_ori >= 0 && posw_ori < w && posh_ori < h) + { + sum += (double)(pin[nNum*c*h*w + cNum*(w*h)+ posh_ori*w + posw_ori] * pwei[kNum*r*s*c + cNum*r*s + khNum*s + kwNum]); + } + } + } + } + + pout[nNum*k*oh*ow + kNum*oh*ow + i*ow + j] = (_Float16)sum; + } + } + } + } +} +#endif \ No newline at end of file -- GitLab