home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / sys / super / 1190 < prev    next >
Encoding:
Text File  |  1993-01-23  |  3.7 KB  |  80 lines

  1. Newsgroups: comp.sys.super
  2. Path: sparky!uunet!pgroup!lfm
  3. From: lfm@pgroup.com (Larry Meadows)
  4. Subject: i860 performance (was: Re: World's Most Powerful Computing Sites)
  5. Message-ID: <C19s04.3yF@pgroup.com>
  6. Date: Fri, 22 Jan 1993 19:12:03 GMT
  7. References: <1993Jan20.232809.29241@nas.nasa.gov> <1993Jan21.165159.10149@meiko.com> <1993Jan22.015827.26653@nas.nasa.gov>
  8. Organization: The Portland Group, Portland, OR
  9. Lines: 69
  10.  
  11. In article <1993Jan22.015827.26653@nas.nasa.gov> fineberg@nas.nasa.gov writes:
  12. >In article <1993Jan21.165159.10149@meiko.com>, richard@meiko.com (Richard Cownie) writes:
  13. >|> 
  14. >|> I have to disagree with you there.  I know of *some* applications where
  15. >|> the i860 can achieve a good fraction of claimed peak speed, e.g. on
  16. >|> a double-precision matrix multiply you can do over 35MFLOPS, against
  17. >|> a peak rate claimed as 40MFLOPS (or sometimes 60MFLOPS, because you can do
  18. >|> 2 adds for each multiply).  In any case, it's well over 50% of peak.
  19. >|> 
  20. >|> If a T800 transputer can achieve 50% of 4.4MFLOPS on a matrix multiply,
  21. >|> or indeed *anything* useful, I'd be interested to hear about it.
  22. >|> 
  23. >|> Performance on big compiled Fortran programs is another kettle of fish,
  24. >|> and here I'd agree that peak performance figures are not much help.
  25. >|> -- 
  26. >|> Richard Cownie (a.k.a. Tich), Meiko Scientific Corp 
  27. >|> email: richard@meiko.com
  28. >|> phone: 617-890-7676
  29. >|> fax:   617-890-5042       
  30. >
  31. >I don't know too many people that write assembly code, and that is what you
  32. >need to do to get 35 MFLOPs.  As far as I'm concerned, assembly coded
  33. >benchnmarks are useless.  And if you can't get more than 60% of peak on an
  34. >assembly coded matrix multiply, that is bad (when Intel quotes peak speeds
  35. >on its system it uses the 60MFLOPs number, or 75 for the Paragon). The best I
  36. >have ever seen on an i860 was 10-15Mflops, and that was because the compiler
  37. >had stuck in some special vector subroutines in my code where it recognized
  38. >a daxpy operation.  I don't know what the transputer is capable of, but I would
  39. >be surprised if it can't do 75-90% of peak for a useless assembly coded 
  40. >benchmark.
  41. >
  42. >Sam
  43.  
  44. Well, I was going to stay out of this, but now I can't.
  45.  
  46. 1. The iPSC/860 compiler will get around 27 mflops on fortran-coded matrix
  47. multiply.  Yes, it does replace your daxpy with hand-coded routines.
  48.  
  49. 2. Rating the i860 at 60/75 is absurd (yes, I know Intel does it that way).
  50. At most, I'd rate it at 40/50, since d.p. multiply can only be done every other
  51. cycle.  And the compiler isn't really good at doing dual-mode instructions, so
  52. often 20/25 is close to the truth.
  53.  
  54. 3. Aside from the difficulty of automatically generating dual-mode code, the
  55. other problem with the i860 is memory bandwidth.  Consider the daxpy:
  56.  
  57.     b(i) = b(i) + s * a(i)
  58.  
  59. 2 vectors must be fetched, and one vector stored.  At 2 clocks per 64-bit
  60. word, the absolute best that can be done here is 6 clocks, if all the results
  61. come from main memory rather than "vector registers" (cache).  So,
  62.  
  63. (40e6 cycles-per-second / 6 cycles) * 2 f.p.-ops = 13.3 mflops
  64.  
  65. Unfortunately, the iPSC/860 board actually takes 3 cycles for a write, so
  66. the count for the loop is really 7 cycles, or around 11.4 mflops
  67.  
  68. The i860-XP should be somewhat better, since it can theoretically 
  69. issue a 128-bit load every other clock.  Of course, everything needs to
  70. be properly aligned, and the multiply is still 2 clocks.  So around 4-5
  71. clocks for a daxpy element is more likely.
  72.  
  73. The problem is that peak mflops performance doesn't give the whole story --
  74. memory bandwidth is much more important.  Perhaps machines should be
  75. rated by how long it takes to do a vector add, or some such measure; then
  76. "super-vector" performance occurs when values can be left in vector registers.
  77. -- 
  78. Larry Meadows        The Portland Group
  79. lfm@pgroup.com
  80.