Advertisement
Guest User

Untitled

a guest
Mar 26th, 2011
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. #include <omp.h>
  5.  
  6. int L, N, I;
  7. float * inputs;
  8. float * temp;
  9. float * weights;
  10.  
  11. void printVector (const float *p, const int N) {
  12.     for (int i=0; i<N; i++)
  13.     printf("%f\n",p[i]);
  14. }
  15.  
  16. float activation(float x)
  17. {
  18.   return x;
  19. }
  20.  
  21. int main(int argc, char *argv[])
  22. {
  23.     if(argc < 4)
  24.         printf("Usage: openmp <layers> <neurons&inputs>\n");
  25.     else
  26.     {
  27.         L = atoi(argv[1]);
  28.         N = atoi(argv[2]);
  29.         I = atoi(argv[2]);
  30.         inputs = (float*)malloc(I*sizeof(float));
  31.         temp = (float*)malloc(N*I*sizeof(float));
  32.         weights = (float*)malloc(L*I*N*sizeof(float));
  33.         // and fill with some arbitrary values
  34.        
  35.        
  36.         for (int i=0; i<I; i++)
  37.         {
  38.             inputs[i] = 0;
  39.         }
  40.  
  41.         for (int i=0; i<L*N*I; i++)
  42.         {
  43.             weights[i] = 0;
  44.         }
  45.        
  46.         for(int j=0;j<L;j++)
  47.         {
  48.           #pragma omp parallel for
  49.           for (int i=0; i<I*N; i++)
  50.           {
  51.               temp[i] = inputs[i%I] * weights[j*N*I+i];
  52.           }
  53.          
  54.           #pragma omp parallel for
  55.           for(int k=0;k<N;k++)
  56.           {
  57.               float sum = 0;
  58.              
  59.               for(int l=0;l<I;l++)
  60.               {
  61.                 sum += temp[k*I+l];
  62.               }
  63.              
  64.               inputs[k] = activation(sum);
  65.           }
  66.         }
  67.         //printVector (dataY,N);
  68.  
  69.         free(inputs);
  70.         free(temp);
  71.         free(weights);
  72.     }
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement