home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / arch / 9238 < prev    next >
Encoding:
Text File  |  1992-09-07  |  5.9 KB  |  139 lines

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!gumby!wupost!cs.utexas.edu!convex!hamrick
  3. From: hamrick@convex.com (Ed Hamrick)
  4. Subject: Re: alpha and vector processing...
  5. Message-ID: <1992Sep04.211955.22449@convex.com>
  6. Sender: usenet@convex.com (news access account)
  7. Nntp-Posting-Host: convex1.convex.com
  8. Organization: CONVEX Computer Corporation, Richardson, Tx., USA
  9. References: <1992Sep4.120503.1@uwovax.uwo.ca>
  10. Date: Fri, 04 Sep 1992 21:19:55 GMT
  11. X-Disclaimer: This message was written by a user at CONVEX Computer
  12.               Corp. The opinions expressed are those of the user and
  13.               not necessarily those of CONVEX.
  14. Lines: 123
  15.  
  16. > From: brent@uwovax.uwo.ca (Brent Sterner)
  17. >    Not sure why this crossed my mind, but I'm curious about how well
  18. > the alpha architecture might support vector processing.  I'm familiar
  19. > with the vector processing concepts as implemented for VAX 6000 and
  20. > 9000 systems, as well as the implementation on the Cyber 2000.  Can
  21. > anyone comment on alpha futures in this direction?  Thanks,  b.
  22.  
  23. Here are several tidbits from the Alpha Architecture Reference Manual:
  24.  
  25. A.1
  26.  
  27.     ... For Alpha, this means eventual 128-bit wide data paths. ...
  28.  
  29.     1. Small (first-level) cache sizes will likely be in the range
  30.        2 KB to 64 KB
  31.  
  32.     2. Small cache block sizes will likely be 16, 32, 64, or 128 bytes
  33.  
  34.     3. Large (second- or third-level) cache sizes will likely be in
  35.        the range 128 KB to 8 MB
  36.  
  37.     4. Large cache block sizes will likely be 32, 64, 128, or 256 bytes
  38.  
  39. A.3.1
  40.  
  41.     ... In some implementations, a series of writes that completely
  42.     fill a cache block may be a factor of 10 faster than a series of
  43.     writes that partially fill a cache block, when that cache block
  44.     would give a read miss. ...
  45.  
  46.     ... Implementors should give first priority to fast reads of aligned
  47.     octawords and second priority to fast writes of full cache blocks.
  48.     Partial-quadword writes need not have a fast repetition rate.
  49.  
  50. A.3.2
  51.  
  52.     ... <stuff about cache misses> ... Such accesses will likely be a
  53.     factor of 30 slower than cache hits. ...
  54.  
  55. A.3.4
  56.  
  57.     ... To avoid overrunning memory bandwidth, sequences of more than
  58.     eight quadword Loads or Stores should be broken up with intervening
  59.     instructions (if there is any useful work to be done).
  60.  
  61.     For consecutive reads, implementors should give first priority to
  62.     prefetching ascending cache blocks, and second priority to absorbing
  63.     up to eight consecutive quadword Loads (aligned on a 64-byte boundary)
  64.     without stalling.
  65.  
  66.     For consecutive writes, implementors should give first priority to
  67.     avoiding read overhead for fully written aligned cache blocks, and
  68.     second priority to absorbing up to eight consecutive quadword
  69.     Stores (aligned on a 64-byte boundary) without stalling.
  70.  
  71. A.3.5
  72.  
  73.     1. Assume that at most two FETCH instructions can be outstanding at
  74.        once ...
  75.  
  76.     2. Assume, for maximum efficiency, that there should be about 64
  77.        unrelated memory access instructions (load or store) between a
  78.        FETCH and the first actual data access to the prefetched data. ...
  79.  
  80.     4. Assume that FETCH is worthwhile if, on average, at least half the
  81.        data in a block will be accessed.  Assume FETCH_M is worthwhile if,
  82.        on average, at least half the data in a block will be modified.
  83.  
  84.     5. Treat FETCH as a vector load.  If a piece of code could usefully
  85.        prefetch 4 operands, launch the first two prefetches, do about
  86.        128 memory references worth of work, then launch the next two
  87.        prefetches, do about 128 more memory references worth of work,
  88.        then start using the 4 sets of prefetched data.
  89.  
  90.     6. Treat FETCH as having the same effect on a cache as a series of
  91.        64 quadword loads.  If the loads would displace useful data, so
  92.        will FETCH.  If two sets of loads from specific addresses will
  93.        thrash in a direct-mapped cache, so will two FETCH instructions
  94.        using the same pair of addresses.
  95.  
  96. How well will the Alpha architecture do on problems well-mapped to vector
  97. architectures?
  98.  
  99. Two types of vector codes will run well on Alpha - small problems with
  100. small data sets that have a good cache hit rate, and large problems with
  101. unity-stride memory access patterns.
  102.  
  103. Codes that will run very poorly (10x speed degradation) have non-unity
  104. stride memory accesses or scatter/gather memory accesses.
  105.  
  106. Long-term (25 years from now <grin>), Alpha will be faced with the problem
  107. of having a BazillionHz processor that spends all of it's time waiting on
  108. memory loads and stores to complete.  The limiting factor for performance
  109. on vector codes (most accesses being cache misses) will be the limited
  110. number of registers in the architecture.  Since there are only 32 floating
  111. point registers, the architecture is limited to 32 outstanding floating-point
  112. loads to the memory system.  The key question is, 25 years from now, will
  113. main memory be more than 32 cycles away (or 64, or 256, or 1024)?
  114.  
  115. Vector applications that ran well on the VAX-6000 vector unit and/or the
  116. VAX-9000 vector unit will run fairly well on high-end Alpha systems, assuming
  117. DEC does enough tuning of the generated code for Alpha.  Applications that
  118. ran poorly on these systems will also run poorly on high-end Alpha systems.
  119.  
  120. I believe the vector units on the VAX-6000 and VAX-9000 were failures and
  121. dropped by DEC because of the limited need in the market for vector units
  122. that only run well from cache or with unity-stride accesses.
  123.  
  124. DEC has clearly designed the Alpha architecture for applications with
  125. data accesses that have good cache hit rates.  Vector architectures tend
  126. to excel on applications with poor cache hit rates.
  127.  
  128. It's puzzling why Cray chose Alpha for their first MPP product (Y-MP
  129. add-on array processor), given Alpha's weaknesses on traditional vector
  130. applications.  It's possible that Cray is doing this to offset their
  131. rather weak scalar performance and lack of a scalar cache.
  132.  
  133. All in all, the Alpha seems to be an excellent piece of work by DEC to
  134. transition the VAX product line to new technology, but it isn't very
  135. well suited to vector processing problems.
  136.  
  137. Regards,
  138. Ed Hamrick
  139.