ctest395.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/time.h>
  4. void kernel_cpu(int *A0,int *A1,int *A2,int *A3,int *A4,int *A5,float *B0,float *B1,float *B2,float *B3,float *B4,float *B5,int N){
  5. for(int i=0;i<N;i++){
  6. A0[i] = A1[i];
  7. B0[i] = B5[i]-B4[i]-B3[i]*B4[i];
  8. B1[i] = B5[i]+B4[i];
  9. B2[i] = B3[i]*B5[i]+B4[i];
  10. }
  11. }
  12. int main(int argc,char **argv) {
  13. int size=939148;
  14. int intBytes = size*sizeof(int);
  15. int floatBytes = size*sizeof(float);
  16. int *A0;
  17. A0 = (int *)malloc(intBytes);
  18. int *A1;
  19. A1 = (int *)malloc(intBytes);
  20. int *A2;
  21. A2 = (int *)malloc(intBytes);
  22. int *A3;
  23. A3 = (int *)malloc(intBytes);
  24. int *A4;
  25. A4 = (int *)malloc(intBytes);
  26. int *A5;
  27. A5 = (int *)malloc(intBytes);
  28. float *B0;
  29. B0 = (float *)malloc(floatBytes);
  30. float *B1;
  31. B1 = (float *)malloc(floatBytes);
  32. float *B2;
  33. B2 = (float *)malloc(floatBytes);
  34. float *B3;
  35. B3 = (float *)malloc(floatBytes);
  36. float *B4;
  37. B4 = (float *)malloc(floatBytes);
  38. float *B5;
  39. B5 = (float *)malloc(floatBytes);
  40. for(int i=0;i<939148;i++){
  41. A0[i] = 96+i+1;
  42. A1[i] = 20+i+1;
  43. A2[i] = 32*i+1;
  44. A3[i] = 5+i+1;
  45. A4[i] = 67*i+1;
  46. A5[i] = 48+i+1;
  47. B0[i] = 32.3723369883*i+1;
  48. B1[i] = 82.3792709453*i+1;
  49. B2[i] = 19.0370097142+i+1;
  50. B3[i] = 2.58473921903*i+1;
  51. B4[i] = 97.5977505797*i+1;
  52. B5[i] = 37.042346218+i+1;
  53. }
  54. struct timeval time0,time1;
  55. gettimeofday(&time0,NULL);
  56. FILE *file_for_block_of_interest = fopen("./profile_in_block.txt","w");
  57. if(file_for_block_of_interest) {
  58. char Buf[2] = "1";
  59. fwrite(Buf, 1, 1, file_for_block_of_interest);
  60. fclose(file_for_block_of_interest);}
  61. kernel_cpu(A0,A1,A2,A3,A4,A5,B0,B1,B2,B3,B4,B5,939148);
  62. file_for_block_of_interest = fopen("./profile_in_block.txt","w");
  63. if(file_for_block_of_interest) {
  64. char Buf[2] = "0";
  65. fwrite(Buf, 1, 1, file_for_block_of_interest);
  66. fclose(file_for_block_of_interest);}
  67. gettimeofday(&time1,NULL);
  68. double totaltime10 = (time1.tv_sec*1000000.0 + time1.tv_usec) - (time0.tv_sec*1000000.0 + time0.tv_usec);
  69. fprintf(stderr, "CPU time: %lf msecs ", (totaltime10)/1000.0F);
  70. free(A0);
  71. free(A1);
  72. free(A2);
  73. free(A3);
  74. free(A4);
  75. free(A5);
  76. free(B0);
  77. free(B1);
  78. free(B2);
  79. free(B3);
  80. free(B4);
  81. free(B5);
  82. printf("\n");return 0; }