はじめに
いつものように、
を眺めていたら、GB20C なるものが追加されていることに気が付きました。
そして、その前に、GB20B なるものも追加されていました。
ということで、今回は、GB20B/GB20C について、記録に残します。
GB20B に関しては、575.51.02 で追加されたようです。
GB20B の GPU_IMPLEMENTATION は、GB10B の 0x0B と同じようです。
GB10B との違いは、GB10B は、
{ BLACKWELL_A, ENG_GR(0) },
{ BLACKWELL_CHANNEL_GPFIFO_A, ENG_KERNEL_FIFO },
{ BLACKWELL_COMPUTE_A, ENG_GR(0) },
{ BLACKWELL_COMPUTE_A, ENG_GR(1) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(0) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(1) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(2) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(3) },
{ BLACKWELL_INLINE_TO_MEMORY_A, ENG_GR(0) },
に対して、GB20B は、
{ BLACKWELL_B, ENG_GR(0) },
{ BLACKWELL_B, ENG_GR(1) },
{ BLACKWELL_B, ENG_GR(2) },
{ BLACKWELL_B, ENG_GR(3) },
{ BLACKWELL_CHANNEL_GPFIFO_A, ENG_KERNEL_FIFO },
{ BLACKWELL_CHANNEL_GPFIFO_B, ENG_KERNEL_FIFO },
{ BLACKWELL_COMPUTE_B, ENG_GR(0) },
{ BLACKWELL_COMPUTE_B, ENG_GR(1) },
{ BLACKWELL_COMPUTE_B, ENG_GR(2) },
{ BLACKWELL_COMPUTE_B, ENG_GR(3) },
{ BLACKWELL_COMPUTE_B, ENG_GR(4) },
{ BLACKWELL_COMPUTE_B, ENG_GR(5) },
{ BLACKWELL_COMPUTE_B, ENG_GR(6) },
{ BLACKWELL_COMPUTE_B, ENG_GR(7) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(0) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(1) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(2) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(3) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(0) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(1) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(2) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(3) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(4) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(5) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(6) },
{ BLACKWELL_DMA_COPY_B, ENG_CE(7) },
{ BLACKWELL_INLINE_TO_MEMORY_A, ENG_GR(0) },
{ BLACKWELL_INLINE_TO_MEMORY_A, ENG_GR(1) },
{ BLACKWELL_INLINE_TO_MEMORY_A, ENG_GR(2) },
{ BLACKWELL_INLINE_TO_MEMORY_A, ENG_GR(3) },
{ BLACKWELL_USERMODE_A, ENG_GPU },
です。BLACKWELL_B と BLACKWELL_A の違いは、
- BLACKWELL_A : Data Center
- BLACKWELL_B : Desk Top
です。つまり、GB20Bは、Desk Top用GPUになります。
GB202 - GB207 との違いは、
{ BLACKWELL_DMA_COPY_A, ENG_CE(0) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(1) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(2) },
{ BLACKWELL_DMA_COPY_A, ENG_CE(3) },
と
{ NVCB70_DISPLAY, ENG_KERNEL_DISPLAY },
{ NVCB71_DISP_SF_USER, ENG_KERNEL_DISPLAY },
{ NVCB73_DISP_CAPABILITIES, ENG_KERNEL_DISPLAY },
{ NVCB7A_CURSOR_IMM_CHANNEL_PIO, ENG_KERNEL_DISPLAY },
{ NVCB7B_WINDOW_IMM_CHANNEL_DMA, ENG_KERNEL_DISPLAY },
{ NVCB7D_CORE_CHANNEL_DMA, ENG_KERNEL_DISPLAY },
{ NVCB7E_WINDOW_CHANNEL_DMA, ENG_KERNEL_DISPLAY },
が2組あることです。
BLACKWELL_DMA_COPY_A_ENG_CE(0:3) は、Data Center 用の Copy Engine です。
GB20C
GB20C に関しては、580.65.06 で追加されたようです。
一方、GB20C の GPU_IMPLEMENTATION は、0x0C なので GB10B や GB20B とは違うようです。
GB20B と比べてみたら、同じでした。
ここによると、GB20C の GPU_ARCHTECTURE は、GB2XX です。
case HAL_IMPL_GB20B:
{
*gpuArch = GPU_ARCHITECTURE_BLACKWELL_GB2XX;
*gpuImpl = GPU_IMPLEMENTATION_GB20B;
break;
}
GB10B / GB20B / GB20C のChiphalは、同じ
ここによると、GB10B / GB20B / GB20C のChiphalは、同じです。
ここによると、GB20C の GPU_ARCHTECTURE は、GB2XX です。
case HAL_IMPL_GB20C:
{
*gpuArch = GPU_ARCHITECTURE_BLACKWELL_GB2XX;
*gpuImpl = GPU_IMPLEMENTATION_GB20C;
break;
}
おわりに
調べて分かったこと
- GB20B/GB20C は、GB2xx系。ただし、BLACKWELL_A_COPY_CE が付いている!
そして、ここによると、GB10BとGB20Bは、Integrated GPU である。
if (parent_gpu->rm_info.gpuArch == NV2080_CTRL_MC_ARCH_INFO_ARCHITECTURE_GB100 &&
parent_gpu->rm_info.gpuImplementation ==
NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB10B)
parent_gpu->is_integrated_gpu = true;
if (parent_gpu->rm_info.gpuArch == NV2080_CTRL_MC_ARCH_INFO_ARCHITECTURE_GB200 &&
parent_gpu->rm_info.gpuImplementation ==
NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB20B)
parent_gpu->is_integrated_gpu = true;
Xの投稿で確認すると、下記のように、GB20B は、GPU die for laptop SoC になっています。
Guess:
— Wild_C (@_wildc) 2025年5月6日
GB102 → B200A (single-die Blackwell DC)
GB10B → GPU die for GB10 in DGX Spark
GB110 → B300
GB112 → B300A
GB20B → GPU die for laptop SoC
追記)、2025.09.05
GB20BとGB20Cの arch は、0x1B なので、Desktop GPUになりますね。
// GB207
else if(arch == 0x1B && impl == 0x7)
{
pChipHal->__nvoc_HalVarIdx = 73;
}
// GB20B
else if(arch == 0x1B && impl == 0xB)
{
pChipHal->__nvoc_HalVarIdx = 74;
}
// GB20C
else if(arch == 0x1B && impl == 0xC)
{
pChipHal->__nvoc_HalVarIdx = 75;
}