aboutsummaryrefslogtreecommitdiff
path: root/testn.c
diff options
context:
space:
mode:
Diffstat (limited to 'testn.c')
-rw-r--r--testn.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/testn.c b/testn.c
new file mode 100644
index 0000000..84815aa
--- /dev/null
+++ b/testn.c
@@ -0,0 +1,42 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#define ROWS 1024
+#define COLS 64
+#define VFL 6291456
+#ifndef OFF
+#define OFF 0
+#endif
+
+char arr[ROWS*4][(COLS+OFF)*4] __attribute__((aligned(4096)));
+char arr2[VFL];
+
+int main() {
+ int i, j, k;
+ time_t t;
+ volatile int xor;
+ srand(0x42069);
+ // init array with random values
+ for (i = 0; i < ROWS; i++) {
+ for (j = 0; j < COLS; j++) {
+ arr[i][j] = rand()%255;
+ }
+ }
+
+ // "flush" 6MiB cache
+ // for(i = 0; i < VFL; i++)arr2[i] = i*i;
+ // for(i = 0; i < VFL; i++)arr2[i] += 1;
+
+ // mem barrier
+ __sync_synchronize();
+ t = clock();
+ for (i = 1; i < ROWS; i++) {
+ for (j = 0; j < COLS; j++) {
+ arr[i][j] *= arr[i-1][j];
+ xor ^= arr[i][j];
+ }
+ }
+ t = clock() - t;
+ printf("%ld",t);
+}
+