Coelacanth's Dream

RadeonSI で gfx1036、gfx1037 のサポートが進められる

AMD のソフトウェアエンジニア Marek Olšák 氏より、RadeonSI (OpenGL) ドライバーに GC_10_3_6 (gfx1036)GC_10_3_7 (gfx1037) のサポートを追加するパッチ、マージリクエストが投稿されている。

GC_10_3_6 (gfx1036), GC_10_3_7 (gfx1037)

APU/GPU としてのファミリーは AMDGPUドライバー同様、GC_10_3_6 GC_10_3_7 とされ、チップとしてのファミリーはそれぞれ gfx1036 , gfx1037 として識別される。
新たな RDNA 2 APU の IPブロック ―― GC 10.3.7, DCN 3.1.6, VCN 3.1.1 | Coelacanth’s Dream さらなる RDNA 2 APU の IPブロック ―― GC 10.3.6, DCN 3.1.5, VCN 3.1.2 | Coelacanth’s Dream

  #define FAMILY_NV      0x8F
  #define FAMILY_VGH     0x90
  #define FAMILY_YC      0x92
 +#define FAMILY_GC_10_3_6  0x95
 +#define FAMILY_GC_10_3_7  0x97
	
  // AMDGPU_FAMILY_IS(familyId, familyName)
  #define FAMILY_IS(f, fn)     (f == FAMILY_##fn)
 @@ -111,6 +113,10 @@
	
  #define AMDGPU_YELLOW_CARP_RANGE 0x01, 0xFF
	
 +#define AMDGPU_GFX1036_RANGE    0x01, 0xFF
 +
 +#define AMDGPU_GFX1037_RANGE    0x01, 0xFF

現時点では、FAMILY_GC_10_3_6FAMILY_GC_10_3_7 ともに CHIP_GFX1036 として認識される。

 +   case FAMILY_GC_10_3_6:
 +      identify_chip(GFX1036);
 +      break;
 +   case FAMILY_GC_10_3_7:
 +      identify_chip2(GFX1037, GFX1036);
 +      break;

ac_get_llvm_processor_name() において、GPUID が他 RDNA 2 APU/dGPU とまとめて gfx1030 とされているが、これは ISAレベルではそれらに差が無いからではないかと思われる。
後に投稿されたパッチで当該部分が更新され、LLVM で定義されている GPUID がそれぞれに適用されるようになった。LLVM のメジャーバージョンで正式な GPUID を使うか、gfx1030 を使うか分岐しているため、LLVM のリリースに合わせる意味合いが強かったとされる。1

 @@ -179,6 +179,7 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
     case CHIP_BEIGE_GOBY:
     case CHIP_VANGOGH:
     case CHIP_YELLOW_CARP:
 +   case CHIP_GFX1036:
        return "gfx1030";
     default:

今回、gfx1036gfx1037 、ひいては CHIP_GFX1036 サポート追加にあたって明かされた情報は少なく、他 RDNA 2 APU と同様に、RB+ (Render Backend Plus) をサポートし、Pixel Shader のバッファとして用いられる PC Lines (Paramater Cache Line) は 256本とされている。
RADVドライバーに NGGカリングが実装 | Coelacanth’s Dream

また、今回で AMDGPUドライバーだけでなく、Mesa3D (RadeonSI, RADV) においても従来のようなコードネームがやはり廃止されることが確定した。
RDNA 2 dGPU で用いられたような 色+魚 のコードネームも、ランダムな組み合わせで決定したという話があり、それであれば DeviceID を検出に用いない RadeonSI, RADV においても、IPバージョンや GPUID を元にした名前でサポートを進めた方が効率的なのだろう。


  1. amd: update LLVM names, add env var to parse IBs in files, fix register shadowing (!15209) · Merge requests · Mesa / mesa · GitLab ↩︎