hey, something fun!

keeping pipelines full and carefully scheduling when cache
will be flushed is another.  not as performance-killing as branching,
perhaps, but equally tedious to do by hand.  one very cool thing
about the ultrasparc (and likely many other processors) is that it
could schedule 4 instructions at once: an int op, a float op, a load and
a store.  of course, main memory access is terrible, but if you could figure
out how to equally divide time between int and float ops, you could
make a killing.  also useful are the many different graphics ops that
can be repurposed with some heavy-handed engineering.

i *believe* that some sparc cpus from the wayback machine could
renumber some of their registers with a single (quick) instruction.

some cute tricks ca. 1991:

use the 4x4 matrix multiplier (also known as the instruction that rotates and
translates sets of points in 3-space) on an SGI to do arbitrary matrix
calculations, in 4x4 chunks.  i think that this is common now.

for efficient graphics updating, there is usually a ginormous pile of very
fast ram sitting around that can be manhandled into dealing with partial 
results.
older sgi's have tons of ram like this.  this should be commonly done, if it 
isn't.

and of course: stare at the instruction list provided by the manufacturer for
a long time to see if there are any weird instructions that could be used in
not-quite-as-intended ways.  some of these can be found on the GPU, if there
is one.

probably modern graphics cards on pc's should be busy doing anything other than
graphics, since they're so overpowered and are connected to the cpu via such
an extremely fast channel.  your monitor might look weird for awhile (or not), 
but
man, you should be able to calculate like a mofo.

and just to reiterate the earlier branching comment: if you see an "if" 
anywhere in
your code, just imagine that you're causing yourself a very painful slowdown if 
it's
true on the order of 50% of the time, false 50% of the time.  and if it's 
almost always
true or false, think about how to get rid of it or minimize the number of times 
it gets
evaluated (or at the very least, how to advise the compiler to advise the cpu 
that it
will be true or false most of the time).

s.




      
____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  
http://tools.search.yahoo.com/newsearch/category.php?category=shopping
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to