diff options
author | Robin Nehls <nehls@mi.fu-berlin.de> | 2011-05-21 14:53:01 +0200 |
---|---|---|
committer | Robin Nehls <nehls@mi.fu-berlin.de> | 2011-05-21 14:53:01 +0200 |
commit | ef62382005c5f9c97bc472b73cd13e87778b7adf (patch) | |
tree | f5db2bb4a6c3aa1afbde7d518829224271e96cff | |
parent | 4d877a521588edf342c36c41c1437158c6617621 (diff) | |
parent | c630a1b07403339ab3ce74cc10798cd0353230ad (diff) | |
download | manycore-ef62382005c5f9c97bc472b73cd13e87778b7adf.tar.gz manycore-ef62382005c5f9c97bc472b73cd13e87778b7adf.tar.bz2 manycore-ef62382005c5f9c97bc472b73cd13e87778b7adf.zip |
merged cacheRows and added my own version
-rw-r--r-- | cacheRows.c | 52 | ||||
-rw-r--r-- | cacheRows2.c | 33 |
2 files changed, 61 insertions, 24 deletions
diff --git a/cacheRows.c b/cacheRows.c index 08b8142..c75be89 100644 --- a/cacheRows.c +++ b/cacheRows.c @@ -3,31 +3,35 @@ #include <stdlib.h> #define MEASURE_METHOD optmemmeasure -#define FIELD_SIZE 20000 +#define RUNS 10000 +#define MIN_OFFSET 1 +#define MAX_OFFSET 512 +#define OFFSETS (MAX_OFFSET - MIN_OFFSET) +#define FIELD_TYPE uint8_t + +void measure(int offset,FIELD_TYPE *field){ + void *lowerAddress = field + offset; + int i; + + for(i=MIN_OFFSET;i <= MAX_OFFSET;i++){ + uint64_t time = MEASURE_METHOD(lowerAddress,i*sizeof(FIELD_TYPE)); + //if (time > 128 && time < 10000) + fprintf(stdout,"%d %lld \r\n",i,time); + } +} int main(int argc, char* argv[]) { - - char *field = malloc(FIELD_SIZE); - int i,j; - uint64_t time=0; - - // fill array with crap - for (i=0;i < FIELD_SIZE; ++i) { - field[i]=(i+2342) % 255; - } - - for(i=0; i<FIELD_SIZE; ++i) { - time=optmemmeasure(field,i); - if (time < 1000) - fprintf(stdout,"%d %lld\n",i,time); - - // scrambeled eggs - for (j=0;j<FIELD_SIZE-1;++j) { - field[i]=(field[i]*field[i+1]) % 255; - } - field[FIELD_SIZE-1] = (field[FIELD_SIZE-1]*field[0]) % 255; - } - - return 0; + + //uint64_t *results = malloc(sizeof(uint64_t)*RUNS*OFFSETS); + FIELD_TYPE *field = malloc(sizeof(FIELD_TYPE)*(MAX_OFFSET+1)); + int i=0; + + //for(i=0;i < RUNS;i++){ + //fprintf(stdout,"RUN: %d \r\n",i); + measure(0,field); + //} + + + return 0; } diff --git a/cacheRows2.c b/cacheRows2.c new file mode 100644 index 0000000..08b8142 --- /dev/null +++ b/cacheRows2.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include "inlineasm.h" +#include <stdlib.h> + +#define MEASURE_METHOD optmemmeasure +#define FIELD_SIZE 20000 + +int main(int argc, char* argv[]) { + + char *field = malloc(FIELD_SIZE); + int i,j; + uint64_t time=0; + + // fill array with crap + for (i=0;i < FIELD_SIZE; ++i) { + field[i]=(i+2342) % 255; + } + + for(i=0; i<FIELD_SIZE; ++i) { + time=optmemmeasure(field,i); + if (time < 1000) + fprintf(stdout,"%d %lld\n",i,time); + + // scrambeled eggs + for (j=0;j<FIELD_SIZE-1;++j) { + field[i]=(field[i]*field[i+1]) % 255; + } + field[FIELD_SIZE-1] = (field[FIELD_SIZE-1]*field[0]) % 255; + } + + return 0; +} + |