summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryves <steve.harrison@gmx.net>2011-05-21 12:55:43 +0200
committeryves <steve.harrison@gmx.net>2011-05-21 12:55:43 +0200
commit2c650b096b7040abb50ac3fb85b4c68a57a4b1e5 (patch)
tree5777ca401515db10d74789f0042e552f6660bf90
parentd116bcada2a2ecb57182ff757cdaa272ac760dd5 (diff)
downloadmanycore-2c650b096b7040abb50ac3fb85b4c68a57a4b1e5.tar.gz
manycore-2c650b096b7040abb50ac3fb85b4c68a57a4b1e5.tar.bz2
manycore-2c650b096b7040abb50ac3fb85b4c68a57a4b1e5.zip
new tries for cache row
-rw-r--r--cacheRows.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/cacheRows.c b/cacheRows.c
index 239c3c7..b784ee3 100644
--- a/cacheRows.c
+++ b/cacheRows.c
@@ -3,23 +3,31 @@
#include <stdlib.h>
#define MEASURE_METHOD optmemmeasure
-#define RUNS 1024
-#define FIELD_TYPE uint8_t
+#define RUNS 1000
+#define MIN_OFFSET 1
+#define MAX_OFFSET 128
+#define OFFSETS = MAX_OFFSET - MIN_OFFSET
+#define FIELD_TYPE uint32_t
int main(int argc, char* argv[]) {
- uint64_t *results = malloc(sizeof(uint64_t)*RUNS);
- FIELD_TYPE *field = malloc(sizeof(FIELD_TYPE)*RUNS);
+ //uint64_t *results = malloc(sizeof(uint64_t)*RUNS*OFFSETS);
+ FIELD_TYPE *field = malloc(sizeof(FIELD_TYPE)*RUNS*OFFSETS);
int i=0;
-
for(i=0;i <= RUNS;i++){
- MEASURE_METHOD(field,1); // reload cacheline
- results[i] = MEASURE_METHOD(field,i*sizeof(FIELD_TYPE));
+ measure(i*OFFSETS,field);
}
- for(i=0;i <= RUNS; i++){
- printf("%d %ld\r\n",i,results[i]);
- }
+
return 0;
}
+
+void measure(int offset,FIELD_TYPE *field){
+ int lowerAddress = field + sizeof(FIELD_TYPE)*offset;
+
+ for(i=MIN_OFFSET;i <= MAX_OFFSET;i++){
+ unit64_t time = MEASURE_METHOD((void*)lowerAddress,i*sizeof(FIELD_TYPE));
+ fprintf(stdout,"%d %lld",i,time);
+ }
+}