Changes between Version 15 and Version 16 of GcnInstrsDs


Ignore:
Timestamp:
12/24/15 00:00:19 (8 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsDs

    v15 v16  
    8080The M0 register holds maximum size of a GDS memory in bits 0-15,
    8181that can be accessed by kernel, and a GDS base offset (in bytes) in bits 16-31.</p>
    82 <p>Any DS instruction return data in order (including D_SWIZZLE) and increments LGKM_CNT.
     82<p>Any DS instruction return data in order (including DS_SWIZZLE_B32) and increments LGKM_CNT.
    8383Any operation increments LGKM by one, and decremented by one if it will be finished.</p>
    8484<p>List of the instructions by opcode:</p>
     
    12751275UINT64* V = (UINT64*)(DS + A)
    12761276*V = *V &amp; *(UINT64*)(DS + B) // atomic operation</code></p>
     1277<h4>DS_APPEND</h4>
     1278<p>Opcode: 62 (0x3e) for GCN 1.0/1.1; 190 (0xbe) GCN 1.2<br />
     1279Syntax: DS_APPEND VDST [OFFSET:OFFSET]<br />
     1280Description: Append entries to buffer. This instruction increments 32-bit value in
     1281LDS/GDS at address OFFSET&amp;~3 by number of the active threads, and
     1282store previous value from LDS/GDS at this same address into VDST.
     1283Operation:<br />
     1284<code>UINT32* V = (UINT32*)(DS + (OFFSET&amp;~3))
     1285VDST = *V   // scalar operation
     1286*V += BITCOUNT(EXEC)  // scalar operation</code></p>
     1287<h4>DS_CONSUME</h4>
     1288<p>Opcode: 61 (0x3d) for GCN 1.0/1.1; 189 (0xbd) GCN 1.2<br />
     1289Syntax: DS_CONSUME VDST [OFFSET:OFFSET]<br />
     1290Description: Consume entries to buffer. This instruction increments 32-bit value in
     1291LDS/GDS at address OFFSET&amp;~3 by number of the active threads, and
     1292store previous value from LDS/GDS at this same address into VDST.
     1293Operation:<br />
     1294<code>UINT32* V = (UINT32*)(DS + (OFFSET&amp;~3))
     1295VDST = *V   // scalar operation
     1296*V -= BITCOUNT(EXEC)  // scalar operation</code></p>
    12771297<h4>DS_CMPST_B32</h4>
    12781298<p>Opcode: 16 (0x10)<br />