Coelacanth's Dream

LLVM に新たな RDNA 3 APU の GPUID、gfx1150 と gfx1151 が追加される

AMD の Jay Foad 氏により、LLVM に AMD の新たな RDNA 3 APU となる GPUID、gfx1150/gfx1151 を追加するパッチが公開された。

AMD GPU における GPUID のフォーマット ({major}.{minor}.{patch}) において、gfx1150/gfx1151 は従来の RDNA 3/GFX11 APU/dGPU からマイナーバージョンが上がった形となる。

gfx1150/gfx1151

gfx1150/gfx1151llvm/docs/AMDGPUUsage.rst に追加された記述から APU とされている。

    +     ``gfx1150``                 ``amdgcn``   APU   - cumode          - Architected                   *TBA*
    +                                                    - wavefrontsize64   flat
    +                                                                        scratch                       .. TODO::
    +                                                                      - Packed
    +                                                                        work-item                       Add product
    +                                                                        IDs                             names.
    +
    +     ``gfx1151``                 ``amdgcn``   APU   - cumode          - Architected                   *TBA*
    +                                                    - wavefrontsize64   flat
    +                                                                        scratch                       .. TODO::
    +                                                                      - Packed
    +                                                                        work-item                       Add product
    +                                                                        IDs                             names.
    +

現状、gfx1150/gfx1151 に従来の RDNA 3/GFX11 から追加された新命令や新機能は無いことになっている。言い換えれば、Phoenix APU (gfx1103) と同様に dGPU と同じ命令をサポートする。
ただ、RDNA 3/GFX11 に共通して存在していた FeatureVALUTransUseHazard の問題が gfx1150/gfx1151 では修正されている。
また、gfx1151 では FeatureGFX11FullVGPRs が有効になっている。FeatureGFX11FullVGPRs は SIMDユニットが追加のベクタレジスタを持つことを示す機能フラグであり、通常のベクタレジスタサイズは SIMDユニットあたり 128KiB だが、FeatureGFX11FullVGPRs が有効な場合は 192KiB となる。
FeatureGFX11FullVGPRsRDNA 3/GFX11 では一部の GPUID でのみ有効であり、これまでは Navi31/gfx1100Navi32/gfx1101 だけだった。
このことから gfx1151 は GPU 性能を重視した APU となるのではないかという推測が立てられる。

    def FeatureVALUTransUseHazard : SubtargetFeature<"valu-trans-use-hazard",
      "HasVALUTransUseHazard",
      "true",
      "Hazard when TRANS instructions are closely followed by a use of the result"
    >;
    @@ -1309,26 +1309,37 @@ def FeatureISAVersion11_Common : FeatureSet<
        FeatureImageInsts,
        FeaturePackedTID,
        FeatureVcmpxPermlaneHazard,
    -   FeatureVALUTransUseHazard,
        FeatureMADIntraFwdBug]>;
     
    -def FeatureISAVersion11_0_0 : FeatureSet<
    +def FeatureISAVersion11_0_Common : FeatureSet<
       !listconcat(FeatureISAVersion11_Common.Features,
    +    [FeatureVALUTransUseHazard])>;
    +
    +def FeatureISAVersion11_0_0 : FeatureSet<
    +  !listconcat(FeatureISAVersion11_0_Common.Features,
         [FeatureGFX11FullVGPRs,
          FeatureUserSGPRInit16Bug])>;
     
     def FeatureISAVersion11_0_1 : FeatureSet<
    -  !listconcat(FeatureISAVersion11_Common.Features,
    +  !listconcat(FeatureISAVersion11_0_Common.Features,
         [FeatureGFX11FullVGPRs])>;
     
     def FeatureISAVersion11_0_2 : FeatureSet<
    -  !listconcat(FeatureISAVersion11_Common.Features,
    +  !listconcat(FeatureISAVersion11_0_Common.Features,
         [FeatureUserSGPRInit16Bug])>;
     
     def FeatureISAVersion11_0_3 : FeatureSet<
    +  !listconcat(FeatureISAVersion11_0_Common.Features,
    +    [])>;
    +
    +def FeatureISAVersion11_5_0 : FeatureSet<
       !listconcat(FeatureISAVersion11_Common.Features,
         [])>;
     
    +def FeatureISAVersion11_5_1 : FeatureSet<
    +  !listconcat(FeatureISAVersion11_Common.Features,
    +    [FeatureGFX11FullVGPRs])>;
    +

参考リンク