Hi Folks,
I have a question related to generating the frequency vector profile.
Suppose that I use the updated sim-fast to generate the *.bb.gz files,
shall I run the benchmarks till completion, which may take days, to do
that? Is there any study that shows how much accuracy I loose if I run
each benchmark, say, for 100B instructions?
Thanks
Hello,
I have gathered the simpoints, and received this output
3595 0
1545 1
2357 2
478 3
1696 4
975 5
4256 6
4690 7
2140 8
588 9
3895 10
819 11
1614 12
3541 13
1953 14
2913 15
1007 16
1028 17
1176 18
1092 19
From what I gather, at 10million intervals, simpoint 0 fast forwards
to 3595*10m, which gives 35.95billion. However, Sim-out order does not
allow me to fast forwad pass 2.14million. I changed the c.file to
accept doubles, and removed the conditional statement to not throw an
error for fastfwd > 2.14 million.
However, when I simulate, the output still says I am fast forwarding
to 2.14 million. Has anyone experienced this? Thanks
Foley
All of your weighted projections should follow a formula such as the CPI example, where the metric to be weighted must be defined in terms of samples per instruction. With CPI, this is cycles per instruction, and with your example you can use Energy Per Instruction. This is necessary, because the weighting is computed based on the SimPoint sample space, which is based on instructions:
"The reason for this is that the simulated samples are collected for intervals based on a constant number of instructions"
However you say that you also want to compute projected metrics for a cumulative stat such as overall Energy. To extend the CPI example, let's propose that you wish to compute the projected overall cycle time of a simulation. From the projected CPI you can simply multiply by the number of dynamic instructions in the entire benchmark to get the number of cycles projected to execute.
To summarize for your case: you will need a means of measuring Energy-Per-Instruction, Energy-Delay-Product-Per-Instruction and Energy-Delay-squared-Product-Per-Instruction. For some of these you may need to base your sample over a region of instructions and then divide by the number of instructions to get a normalized metric. Then you use the weighting formula to get an overall metric that is weighted to project the behavior of your entire program. Last, multiply by the number of dynamic instructions to get the projected metric desired for your entire benchmark.
I had a doubt about using weights with multiple simpoints for SPEC
benchmarks. The webpage
(http://www.cse.ucsd.edu/~calder/simpoint/sim-points-FAQ.htm)
discusses the same for IPC/CPI. I am evaluating Energy, Energy Per
Instruction, Energy-Delay-Product and Energy-Delay-squared-Product. I
have multiple simpoints of a benchmark and I want to calculate the
effective value of each of these metrics using the weights. Could
someone help me out?
Hi all:
I had a doubt about using weights with multiple simpoints for SPEC
benchmarks. The webpage
(http://www.cse.ucsd.edu/~calder/simpoint/sim-points-FAQ.htm)
discusses the same for IPC/CPI. I am evaluating Energy, Energy Per
Instruction, Energy-Delay-Product and Energy-Delay-squared-Product. I
have multiple simpoints of a benchmark and I want to calculate the
effective value of each of these metrics using the weights. Could
someone help me out?
Thanks & Regards,
Shruti
Hi all, I'm working on a study where I suspect there's a great deal of overlap between clusters due to vector components that add noise to the process. It sounds like multinomial clustering may be able to help remove vector components that make it difficult to perform clustering. Is any of the experimental multinomial code for Simpoint available for download?
> Hi,
>
> I have two questions regarding the distance printed in the labels file.
>
> a. Is the distance in the label file correspond to the Euclidean
> distance between vestors?
It is the Euclidean distance between that vector and its cluster center.
> b. Is the distance calculated between the centroid of the cluster and
> other vectors in the cluster?
Yes.
> I believe in k-means the centroid need not map to an actual point in the
> data set. Some clusters did not have a zero distance value so I guessed
> the distance would have been calculated with respect to the centroid
> chosen by k-means.
That's right.
- greg
Hi,
I have two questions regarding the distance printed in the labels file.
a. Is the distance in the label file correspond to the Euclidean
distance between vestors?
b. Is the distance calculated between the centroid of the cluster and
other vectors in the cluster? I believe in k-means the centroid need
not map to an actual point in the data set. Some clusters did not have
a zero distance value so I guessed the distance would have been
calculated with respect to the centroid chosen by k-means.
Thanks in advance,
Sreekumar
> "error while loading shared libraries: libstdc++.so.6 : cannot open
> shared object file: No such file or directory"
This sounds like a compiler problem, not a SimPoint problem. Can you
successfully compile and run the following "hello world" C++ program?
//////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
int main() {
cout << "hi\n";
return 0;
}
//////////////////////////////////////////////////////////////////////
If not, consult your system administrator. :) You may need to set
LD_LIBRARY_PATH
If so, verify that the same compiler is used to build "hello world"
and SimPoint.
-jeremy
All,
I am getting the following error while trying to run simpoint
"error while loading shared libraries: libstdc++.so.6 : cannot open
shared object file: No such file or directory"
Although the file is there and I have included it in all possible
directories. Can you please tell me what I am doing wrong or which
path should I include it into
Thanks.
Best Regards
Abhishek
The SimPoint parser is really set up to parse one line at a time, there is
no way to spread vectors across multiple lines and have SimPoint read
them.
How long are the vectors you are having difficulty with, in terms of
number of characters on a line? The maximum SimPoint will read is
currently set at 1024 * 1024 - 1 = 1,048,575 characters per line. You can
adjust this in the file analysiscode/FVParser.cpp, in the method
nextLine() -- just increase the constant BUF_SIZE to accomodate what you
need.
Also, I have attached a patch to the SimPoint 3.1 codebase that should fix
this problem, though it might make parsing a little slower.
Are you using a sparse representation, so that you do not put counts of
zero explicitly in the vector? If you're not using one, a sparse
representation would probably fix the problem you are seeing.
Also, if you have a lot of spaces on a line that describes a vector, you
would want to eliminate all unnecessary spaces.
- Greg Hamerly
On Tue, 23 May 2006, olszewski_marek wrote:
> Hi,
>
> I've got two counter acting constraints when generating my own custom
> vectors for Simpoint to work on. 1) My vector generating code runs
> out of memory when I decrease the interval size, and 2) I get the
> above error in Simpoint when I increase it.
>
> Is there a way to specify a vector on more than one line?
>
> Thanks,
>
> Marek
>
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
Hi,
I've got two counter acting constraints when generating my own custom
vectors for Simpoint to work on. 1) My vector generating code runs
out of memory when I decrease the interval size, and 2) I get the
above error in Simpoint when I increase it.
Is there a way to specify a vector on more than one line?
Thanks,
Marek
> Additionally, since Excel can't create XYZ bubble charts, do you know of any
> easy to use, free software that can plot data in three dimensions? Ideally
> it would have to look professional so it could be used in industry
> publications.
We used Matlab for the 3D projected-vector graphs you can find in some
of our publications. Gnuplot works too, but the results aren't as
pretty.
-jeremy
Great, thanks! I'll let you know if either approach works and what the differences between the two are.
Additionally, since Excel can't create XYZ bubble charts, do you know of any easy to use, free software that can plot data in three dimensions? Ideally it would have to look professional so it could be used in industry publications.
> I'd like to know how to take an existing clustering and without
> changing the clusters themselves I would like to project the cluster
> centerpoints onto lower dimensions (3 or 2 ideally) to help visualize
> the size and relative proximity of clusters chosen. Is there a way to
> set the dimensionality used in the random linear projection without
> altering the clusters chosen? Or alternatively, is there a way to
> load an existing vector file and reproject to lower dimensions?
You can load a vector file and reproject it to lower dimensions with
SimPoint. Just re-run SimPoint with "-k 1 -iters 1" to effectively
disable clustering, and tell SimPoint to project to 2 or 3 dimensions
with the "-dim" option, and tell it to save the projected vectors with
the "-saveVectorsTxtFmt" option. You can use these low-dimensionality
reprojected vectors with the cluster assignments from your initial
SimPoint run to visualize how vectors are assigned to clusters.
This technique can't be used to reproject the cluster centers, since
the cluster centers in the original clustering run used a different
projection matrix, and cluster centers are defined in the projected
space. It should be possible [although I haven't tried] to save the
projected vectors and centers from the original clustering run, and
then use the technique above to project the already-projected vectors
and centers to 2 or 3 dimensions.
So with the first idea, the original vectors are being projected
twice, once to a higher dimensionality for clustering, then to a lower
dimensionality for visualization. With the second idea, the original
vectors are projected once to a higher dimensionality for clustering,
then the resulting projected vectors are projected again for
visualization.
> I'd like to know how to take an existing clustering and without
> changing the clusters themselves I would like to project the cluster
> centerpoints onto lower dimensions (3 or 2 ideally) to help visualize
> the size and relative proximity of clusters chosen. Is there a way to
> set the dimensionality used in the random linear projection without
> altering the clusters chosen? Or alternatively, is there a way to
> load an existing vector file and reproject to lower dimensions?
You can load a vector file and reproject it to lower dimensions with
SimPoint. Just re-run SimPoint with "-k 1 -iters 1" to effectively
disable clustering, and tell SimPoint to project to 2 or 3 dimensions
with the "-dim" option, and tell it to save the projected vectors with
the "-saveVectorsTxtFmt" option. You can use these low-dimensionality
reprojected vectors with the cluster assignments from your initial
SimPoint run to visualize how vectors are assigned to clusters.
This technique can't be used to reproject the cluster centers, since
the cluster centers in the original clustering run used a different
projection matrix, and cluster centers are defined in the projected
space. It should be possible [although I haven't tried] to save the
projected vectors and centers from the original clustering run, and
then use the technique above to project the already-projected vectors
and centers to 2 or 3 dimensions.
So with the first idea, the original vectors are being projected
twice, once to a higher dimensionality for clustering, then to a lower
dimensionality for visualization. With the second idea, the original
vectors are projected once to a higher dimensionality for clustering,
then the resulting projected vectors are projected again for
visualization.
-jeremy
Hello all, and thanks for your efforts on this project.
I'd like to know how to take an existing clustering and without
changing the clusters themselves I would like to project the cluster
centerpoints onto lower dimensions (3 or 2 ideally) to help visualize
the size and relative proximity of clusters chosen. Is there a way to
set the dimensionality used in the random linear projection without
altering the clusters chosen? Or alternatively, is there a way to
load an existing vector file and reproject to lower dimensions?
Thanks,
Robert
This campaign is about Human beings, Democracy, UNHCR, Refugees, The Iraqis,
Islam, Kurds, Human rights, Respect, Money, Donations, Angelina Jolie,
Pavarotti, Giorgio Armani, Donors, Peace, History, Campaigns and about you if
you care about these words.
Hi there,
I am SAM, an Iraqi refugee living in Lebanon at the moment; I have spent the
last 10 years of my life as a refugee registered with the UNHCR in Beirut. The
last 4 years, I have spent as an activist for peace and human rights (especially
refugees and asylum seekers) on the Internet; I'm also books author and ebooks
publisher. I have launched many campaigns to improve our situation as refugees
in Lebanon and hopefully bring more understanding to our problems worldwide. I
helped make many changes and improvements at the UNHCR office in Beirut; I used
the Internet as the field for my activities (you can read more about that in my
free ebook 'MY CAMPAIGNS'). All my ebooks are free and could be download from my
sites.
This is my newest campaign, it's about the illegal and humiliating actions of
the UNHCR, who using photos of refugees as banners and human-buttons to collect
money. This is an abuse of the dignity and humanity of the refugees and must
stop immediately and a clear public apology present by The United Nations High
Commissioner for Refugees. My friends, I am talking about the pictures you can
see here: http://xthost.info/unhcrlebanon/human-buttons.htm
Also you can read my new campaign 'Urgent, we need smile' here:
http://www.xmail.net/lebanon/email_me.htm
For more info about UNHCR and life of refugees you can read my free ebooks. I
invite you as fellow humans and members of the world community to support my
campaign by reading my article on my site and see the human-buttons. The
campaign is to support and improve the UNHCR http://www.unhcr.org especially
after the last scandals in the UN and UNHCR, just for example:
http://www.mizzima.com/archives/news-in-2005/news-in-april/12-April05-22.htm
"We make demonstration and fast because the UNHCR office in Cairo did nothing
for our problem..." http://news.bbc.co.uk/2/hi/africa/4440730.stm
Together we will build better world.
You could reach me fast via this form: http://lebanon.atspace.com/email_me.htm
and if you like to know more about me, you can google for my name 'osam
altaee'.
Thanks
THE TRUTH WARRIOR
http://www.pcpages.com/unhcrhttp://www.unhcr.us
We just posted SimPoint 3.2, which has the following fixes in it:
- fixed compile bug on 64 bit machines (i.e. AMD64 and PPC/OSX)
- unrolled inner k-means loop for added performance
- added our own random number generator (in Utilities.h), so we get
consistent random numbers across platforms
- removed some old code in Datapoint/Dataset classes that are not
currently being used (e.g. computing early indexes)
The new version can be found at the SimPoint website at:
http://www.cse.ucsd.edu/~calder/simpoint/
If there are any issues, please let us know.
I don't have the information to answer that question.
And from this table, another question is whether the first interval of execution is 0 based on Simpoint3.1 or 1 based on Simpoint 2.0? (Because I don¡¯t know which scheme was used to generate the table, Simpoint3.1 or Simpoint2.0?)
The "early" results are based on code earlier than version 3.0, so the intervals start counting with 1.
Like ¡®swim-ref¡¯, I should fast-forward 5 * 100 million instructions based on Simpoint3.1, or fast-forward (5-1) * 100 million = 400 million instructions based on Simpoint2.0
(2)Can I use Simpoint3.1 to produce the single simpoint for the benchmark? For example, I set maxK=1 to get a single simpoint:
And from this table, another question is whether the first interval of execution is 0 based on Simpoint3.1 or 1 based on Simpoint 2.0? (Because I don¡¯t know which scheme was used to generate the table, Simpoint3.1 or Simpoint2.0?)
Like ¡®swim-ref¡¯, I should fast-forward 5 * 100 million instructions based on Simpoint3.1, or fast-forward (5-1) * 100
million = 400 million instructions based on Simpoint2.0
(2)Can I use Simpoint3.1 to produce the single simpoint for the benchmark? For example, I set maxK=1 to get a single simpoint:
Hello Friends,
I am a new comer to this group.
I am wondering if there are any scripts that can be used to SPEC2K ? How
can I use the information collected from the SimPoint to the SimpleScalar ?
Thanks.
Best.
Chris.
Hi,
I just wanted to let you know that I have experienced some problems
compiling the newest update of SimPoint on an AMD64 64 bit build of
linux. I also tried it on a similiar 32 bit version with no problems.
I tested it on the 64 bit machine with gcc versions:
g++ (GCC) 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
g++-3.4 (GCC) 3.4.5 20050809 (prerelease) (Ubuntu 3.4.4-6ubuntu8)
g++-3.3 (GCC) 3.3.6 (Ubuntu 1:3.3.6-8ubuntu1)
They all fail with the following error:
make[1]: Leaving directory
`/home/jpoe/Simulation/SimPoint.3.1/analysiscode'
make[1]: Entering directory
`/home/jpoe/Simulation/SimPoint.3.1/analysiscode'
/usr/bin/g++-3.4 -Wall -pedantic -pedantic-errors -O3 -c -o
CmdLineParser.o CmdLineParser.cpp
CmdLineParser.cpp: In static member function `static void
CmdLineParser::printExplanationPretty(const CmdLineOption*, unsigned
int, std::ostream&, unsigned int)':
CmdLineParser.cpp:168: error: no matching function for call to
`min(unsigned int, long unsigned int)'
CmdLineParser.cpp:170: warning: comparison is always false due to
limited range of data type
CmdLineParser.cpp:172: warning: comparison is always false due to
limited range of data type
make[1]: *** [CmdLineParser.o] Error 1
make[1]: Leaving directory
`/home/jpoe/Simulation/SimPoint.3.1/analysiscode'
make: *** [Simpoint] Error 2
I hope this is of some use to you,
James
The PIN folks have just released a new version of PinPoints that works
with SimPoint 3.0. You can find more information at:
http://rogue.colorado.edu/Pin/PinPoints/
-- Brad
We have posted a new version SimPoint.3.1 on the SimPoint webpage.
Hsien-Hsin confirmed that it fixed this problem.
Thanks,
Brad
--- In simpoint@yahoogroups.com, "Hsien-Hsin Sean Lee"
<h_h_lee@y...> wrote:
>
> Hi Brad,
>
> These are the versions I have tried, they all stopped at compiling
> CmdLineParser.cpp and spitted out the following message I attached
> below. The gcc versions I used to manage to compile successfully
are
> gcc version 3.4.2 20041017 and gcc version 2.95.3 20010315. One
of my
> students tried gcc 2.95.x (or 2.96.x) on an old machine, while it
> compiled Logger.h, but then it seemed to fail to link all object
files
> together. Let me find out the exact gcc version he was using and
> let you know.
>
> gcc version 3.2 20020903
> gcc version 3.2.2 20030222
> gcc version 3.2.3 20030502
> gcc version 3.3.2 20031022
> gcc version 3.3.3 20040412
>
> ------------------------------------------------------------------
> g++ -Wall -pedantic -pedantic-errors -O3 -c -o CmdLineParser.o
> CmdLineParser.cpp
> In file included from Utilities.h:87,
> from CmdLineParser.h:88,
> from CmdLineParser.cpp:73:
> Logger.h: In constructor `NullStream::NullStream()':
> Logger.h:101: no matching function for call to
`std::basic_ostream<char,
> std::char_traits<char> >::basic_ostream()'
> /usr/include/c++/3.2.2/iosfwd:61: candidates are:
std::basic_ostream<char,
> std::char_traits<char> >::basic_ostream(const
std::basic_ostream<char,
> std::char_traits<char> >&)
> /usr/include/c++/3.2.2/ostream:72:
> std::basic_ostream<_CharT,
> _Traits>::basic_ostream(std::basic_streambuf<_CharT, _Traits>*)
> [with _CharT
> = char, _Traits = std::char_traits<char>]
> make: *** [CmdLineParser.o] Error 1
>
>
>
> --- In simpoint@yahoogroups.com, "bradcalder_ucsd" <calder@c...>
>
> wrote:
> > --- In simpoint@yahoogroups.com, "Hsien-Hsin Sean Lee"
> > <h_h_lee@y...> wrote:
> > >
> > > It looks like SimPoint-3.0 requires gcc 3.4.2 to build it
> > > successfully. I tried several earlier version (from, 2.95 to
3.3),
> > > they all failed in the constructor (init) of NullStream
defined in
> > > Logger.h.
> >
> > Hsien-Hsin
> >
> >
> > Can you provide more information?
> >
> > Can you send the gcc version, OS version, and the exact output
of
> > the compilation with the error? Thanks!
> >
> >
> > I just tried it out and it compiles and runs with gcc version
2.95
> > and 2.96. The versions are below (one on linux and the other on
> > solaris) work fine here.
> >
> > Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
> > gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113)
> >
> > Reading specs from /usr/local/gcc-2.95.3/lib/gcc-lib/sparc-sun-
> > solaris2.8/2.95.3/specs
> > gcc version 2.95.3 20010315 (release)
> >
> > -- Brad
Hi Brad,
These are the versions I have tried, they all stopped at compiling
CmdLineParser.cpp and spitted out the following message I attached
below. The gcc versions I used to manage to compile successfully are
gcc version 3.4.2 20041017 and gcc version 2.95.3 20010315. One of my
students tried gcc 2.95.x (or 2.96.x) on an old machine, while it
compiled Logger.h, but then it seemed to fail to link all object files
together. Let me find out the exact gcc version he was using and
let you know.
gcc version 3.2 20020903
gcc version 3.2.2 20030222
gcc version 3.2.3 20030502
gcc version 3.3.2 20031022
gcc version 3.3.3 20040412
------------------------------------------------------------------
g++ -Wall -pedantic -pedantic-errors -O3 -c -o CmdLineParser.o
CmdLineParser.cpp
In file included from Utilities.h:87,
from CmdLineParser.h:88,
from CmdLineParser.cpp:73:
Logger.h: In constructor `NullStream::NullStream()':
Logger.h:101: no matching function for call to `std::basic_ostream<char,
std::char_traits<char> >::basic_ostream()'
/usr/include/c++/3.2.2/iosfwd:61: candidates are: std::basic_ostream<char,
std::char_traits<char> >::basic_ostream(const std::basic_ostream<char,
std::char_traits<char> >&)
/usr/include/c++/3.2.2/ostream:72:
std::basic_ostream<_CharT,
_Traits>::basic_ostream(std::basic_streambuf<_CharT, _Traits>*)
[with _CharT
= char, _Traits = std::char_traits<char>]
make: *** [CmdLineParser.o] Error 1
--- In simpoint@yahoogroups.com, "bradcalder_ucsd" <calder@c...>
wrote:
> --- In simpoint@yahoogroups.com, "Hsien-Hsin Sean Lee"
> <h_h_lee@y...> wrote:
> >
> > It looks like SimPoint-3.0 requires gcc 3.4.2 to build it
> > successfully. I tried several earlier version (from, 2.95 to 3.3),
> > they all failed in the constructor (init) of NullStream defined in
> > Logger.h.
>
> Hsien-Hsin
>
>
> Can you provide more information?
>
> Can you send the gcc version, OS version, and the exact output of
> the compilation with the error? Thanks!
>
>
> I just tried it out and it compiles and runs with gcc version 2.95
> and 2.96. The versions are below (one on linux and the other on
> solaris) work fine here.
>
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
> gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113)
>
> Reading specs from /usr/local/gcc-2.95.3/lib/gcc-lib/sparc-sun-
> solaris2.8/2.95.3/specs
> gcc version 2.95.3 20010315 (release)
>
> -- Brad
--- In simpoint@yahoogroups.com, "Hsien-Hsin Sean Lee"
<h_h_lee@y...> wrote:
>
> It looks like SimPoint-3.0 requires gcc 3.4.2 to build it
> successfully. I tried several earlier version (from, 2.95 to 3.3),
> they all failed in the constructor (init) of NullStream defined in
> Logger.h.
Hsien-Hsin
Can you provide more information?
Can you send the gcc version, OS version, and the exact output of
the compilation with the error? Thanks!
I just tried it out and it compiles and runs with gcc version 2.95
and 2.96. The versions are below (one on linux and the other on
solaris) work fine here.
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113)
Reading specs from /usr/local/gcc-2.95.3/lib/gcc-lib/sparc-sun-
solaris2.8/2.95.3/specs
gcc version 2.95.3 20010315 (release)
-- Brad
--- In simpoint@yahoogroups.com, "Hsien-Hsin Sean Lee" <h_h_lee@y...>
wrote:
>
> It looks like SimPoint-3.0 requires gcc 3.4.2 to build it
> successfully. I tried several earlier version (from, 2.95 to 3.3),
> they all failed in the constructor (init) of NullStream defined in
> Logger.h.
Hi Hsien-Hsin
We will look into this, since it should be compatible with recent
versions of gcc you mention. Thanks for pointing this out.
-- Brad
It looks like SimPoint-3.0 requires gcc 3.4.2 to build it
successfully. I tried several earlier version (from, 2.95 to 3.3),
they all failed in the constructor (init) of NullStream defined in
Logger.h.