AMD がオープンソースで開発する ROCclr (Radeon Open Compute Common Language Runtime) と ROCm-OpenCL-Runtime レポジトリの developブランチが更新され、そこに VanGogh, Navi24, Rembrandt の GPUID (GFX IP) を追加するコミットが含まれていた。
半分メモ書き。
Index
VanGogh, Navi24, Rembrandt
Subject: [PATCH] SWDEV-290306 - [LNX][Navi24][mainline]clinfo test failed on Navi24 Add Navi 24 support --- {"gfx1030", "gfx1030", true, true, false, 10, 3, 0, NONE, NONE, 2, 32, 1, 256, 64 * Ki, 32}, {"gfx1031", "gfx1031", true, true, false, 10, 3, 1, NONE, NONE, 2, 32, 1, 256, 64 * Ki, 32}, {"gfx1032", "gfx1032", true, true, false, 10, 3, 2, NONE, NONE, 2, 32, 1, 256, 64 * Ki, 32}, + {"gfx1034", "gfx1034", true, false, false, 10, 3, 4, NONE, NONE, 2, 32, 1, 256, 64 * Ki, 32}
Subject: [PATCH] SWDEV-267762 - add RMB(gfx1035) to deviceQuery --- + /* Navi21 */ { "gfx1030", "gfx1030", 4, 32, 1, 256, 64 * Ki, 32, 10, 3 }, + /* Navi22 */ { "gfx1031", "gfx1031", 4, 32, 1, 256, 64 * Ki, 32, 10, 3 }, + /* Navi23 */ { "gfx1032", "gfx1032", 4, 32, 1, 256, 64 * Ki, 32, 10, 3 }, + /* Van Gogh */ { "gfx1033", "gfx1033", 4, 32, 1, 256, 64 * Ki, 32, 10, 3 }, + /* Rembrandt */{ "gfx1035", "gfx1035", 4, 32, 1, 256, 64 * Ki, 32, 10, 3 },
Navi24 と Rembrandt APU については、オープンソースドライバー (Mesa, Linux Kernel) には出てきていないコードネームではあるが、
タイミングからして Beige Goby に GPUID: gfx1034 、Yellow Carp に GPUID: gfx1035 が該当するのではないかと推測した以上、Beige Goby = Navi24 、Yellow Carp = Rembrandt と考えない訳にはいかないだろう。
両方の Device (PCI) ID か、ASICごとに割り振られる external_rev_id
が判明すればそれが合っているかを確かめられるが。
既に 2つの DeviceID が用意されている Yellow Carp APU ファミリー | Coelacanth’s Dream
AMDGPU KFD に GPUID 情報が追加される
各種 ROCmソフトウェアを動作させるためのドライバー、インターフェイスとなる AMDGPU KFD (Kernel Fusion Driver) に、GPUID (GFX IP バージョン) を sysfs (/sys/class/kfd/kfd/topology/node/*)
に出力される GPU 情報に追加されるパッチが投稿された。
Cyan Skilfish = gfx1013
"xx_xx_xx", major, minor, stepping
のフォーマットで記述されており、Cyan Skilfish の GPUID は 10_01_03, gfx1013
となっていた。現時点では RDNA APU は Cyan Skilfish と gfx1013 のみであるため、この組み合わせは納得行く。
Cyan Skilfish
static const struct kfd_device_info cyan_skillfish_device_info = { .asic_family = CHIP_CYAN_SKILLFISH, .asic_name = "cyan_skillfish", + .gfx_version = 100103, .max_pasid_bits = 16, .max_no_of_hqd = 24, .doorbell_size = 8,
気になるのは Beige Goby と Yellow Carp で、それらの GPUID も追加されたのだが Beige Goby は gfx1035 、Yellow Carp は VanGogh と同じ gfx1033 とされている。
上では gfx1035 は Rembrandt の GPUID とされ、LLVM へのパッチでも gfx1035 は APU だとされており、自分は Beige Goby が dGPU だと解釈している。
LLVM に新たな RDNA 2 APU の GPUID、gfx1035 が追加される | Coelacanth’s Dream
Beige Goby
static const struct kfd_device_info beige_goby_device_info = { .asic_family = CHIP_BEIGE_GOBY, .asic_name = "beige_goby", + .gfx_version = 100305, .max_pasid_bits = 16, .max_no_of_hqd = 24, .doorbell_size = 8,
Yellow Carp
static const struct kfd_device_info yellow_carp_device_info = { .asic_family = CHIP_YELLOW_CARP, .asic_name = "yellow_carp", + .gfx_version = 100303, .max_pasid_bits = 16, .max_no_of_hqd = 24, .doorbell_size = 8,
Beige Goby = Navi24, Yellow Carp = Rembrandt
この点はパッチのレビューを行った AMD の Felix Kuehling 氏にも指摘されており、氏によれば Beige Goby は GPUID: gfx1034 、Yellow Carp は GPUID: gfx1035 であり、それぞれ Navi24 、Rembrandt のものと一致する。LLVM の情報と矛盾も起きないため、氏の言う内容が正しく、また Beige Goby = Navi24 、Yellow Carp = Rembrandt ということなのだろう。
I don't see Beige Goby in the Thunk's gfxip_lookup_table. I think it should be 10.3.4. Please check (I'll provide some useful internal links offline). --- In the thunk I see 10.3.5 for Yellow Carp.
GPUID | Arch | Codename |
---|---|---|
gfx908 | CDNA | Arcturus/MI100 |
gfx90a | CDNA 2 | Aldebaran/MI200 |
gfx940 1 | ? | ? |
gfx90c | Vega | Renoir/Lucienne/Cezanne (Green Sardine)2 |
gfx1010 | RDNA | Navi10 |
gfx1011 | RDNA | Navi12 |
gfx1012 | RDNA | Navi14 |
gfx1013 | RDNA | Cyan Skilfish ? (APU, Navi10-base, Support RayTracing Inst)3 |
gfx1030 | RDNA 2 | Sienna Cichlid/Navi21 |
gfx1031 | RDNA 2 | Navy Flounder/Navi22 |
gfx1032 | RDNA 2 | Dimgrey Cavefish/Navi23 |
gfx1033 | RDNA 2 | VanGogh (APU) |
gfx1034 | RDNA 2 | Beige Goby/Navi24 |
gfx1035 | RDNA 2 | Yellow Carp/Rembrandt (APU) |