Új hozzászólás Aktív témák

  • bjasq99

    tag

    Ha valaki elmerülne kicsit az rdna 4 részleteiben, az rdna 4 instruction set manualból:
    A dinamikus regiszter foglalás egy két részlete:

    3.3.3. Dynamic VGPR Allocation & Deallocation Compute Shaders may be launched in a mode where they can dynamically allocate and deallocate VGPRs; dynamic VGPRs is not supported for graphics-shaders. Waves must be launched in "dynamic VGPR" mode to be granted this ability; without it instructions requesting to alter the VGPR allocation size are ignored. Dynamic VGPRs are supported only for wave32, not wave64. Dynamic-VGPR workgroups take over a WGP (no mixing of dynamic and non-dynamic VGPR waves on a WGP): if any workgroup is using dynamic VGPRs, only dynamic VGPR enabled workgroups or waves may be running on that WGP. DVGPR workgroups take over a WGP when the workgroup is launched in WGP-mode, and take over a CU when launched in CU-mode. VGPRs are allocated/deallocated in blocks of 16 or 32 VGPRs (configurable) and are added to or removed from the highest numbered VGPRs, keeping the range of available logical VGPRs contiguous starting from VGPR0.
    Waves may allocate up to a maximum of 8 blocks of VGPRs and have a minimum of one block. Block Size The VGPR block size is configurable to be 16-VGPRs with a maximum allocation of 128 VGPRs per wave, or 32-VGPRs with a maximum allocation of 256 VGPRs per wave. This block-size is a chip-wide config; it cannot be modified per draw or dispatch. "Blocks" are also called "segments" in some contexts. Waves using block-size of 16-VGPRs must not access VGPRs above 127 - results are unpredictable. Waves in dynamic VGPR mode are initialized with one VGPR-block allocated.

Új hozzászólás Aktív témák