Commit 9f366748 authored by Martin Mareš's avatar Martin Mareš

Access: Drobná vylepšení grafítka

parent f113bb3a
#!/usr/bin/perl
my $min_mem = 8; # Minimum memory block size (KB)
my $max_mem = 65536; # Maximum memory block size (KB), must fit in physical memory
my $max_mem = 262144; # Maximum memory block size (KB), must fit in physical memory
my @item_sizes = (16,64,128,1024,4096); # Sizes of items
my @randomized = (0,1); # Try randomized accesses?
my @modify = (0,1); # Try read-write accesses?
......@@ -46,13 +46,25 @@ for my $f ("access.c", "Makefile") {
-f $f or symlink "../$f", $f or die;
}
### Get machine name and the description of caches ###
### Get machine description, including layout of caches ###
my $machine = `hostname`;
chomp $machine;
$machine .= " Array" if $array;
$machine .= " HugePages" if $huge;
$machine = "($machine)";
my $hostname = `hostname`;
chomp $hostname;
my $cpu = `grep -m1 '^model name[[:space:]]\\+:' /proc/cpuinfo`;
chomp $cpu;
$cpu =~ s{^model name\s+:\s*}{};
$cpu = " $cpu ";
$cpu =~ s{\(tm\)|\(r\)}{}gi;
$cpu =~ s{ (Intel|AMD|CPU|Processor) }{ }g;
$cpu =~ s{ @.*}{};
$cpu =~ s{\s+}{ }g;
$cpu =~ s{^\s+|\s+$}{}g;
my @options = ();
push @options, ($array ? "Array" : "List");
push @options, "HugePages" if $huge;
$machine = '(' . join(" ", @options) . ')';
our $c;
my @caches = ();
......@@ -71,15 +83,13 @@ for $c (</sys/devices/system/cpu/cpu0/cache/index*>) {
my $w = rd("ways_of_associativity");
my $s = rd("size");
my $t = rd("type");
my $L = rd("coherency_line_size");
my $line = ($L == $prev_L) ? "" : " (${L}B line)";
$t =~ s/(.).*/$1/;
$t =~ s/U//;
$t eq "I" and next;
push @caches, "L$l$t $s $w-way$line";
push @caches, "L$l$t:$s/$w-way";
$prev_L = $L;
}
$machine .= " [" . join(", ", @caches) . "]";
$machine .= " $hostname [" . join(" ", $cpu, @caches) . "]";
### Profiling ###
......@@ -154,10 +164,10 @@ print GP <<EOF ;
set terminal png large size 1024,768
set logscale x 2
set key left
set xlabel "data set size [KB]"
set xlabel "data set size [KiB]"
set ylabel "time per access [ns]"
set grid
set yrange [1:50] # Change if necessary
set yrange [0:15] # Change if necessary
EOF
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment